[ES] Implemented bindings for ES 3.1 (2/2)

Implemented core functionality:
- KHR_shader_atomic_counters
- KHR_shader_image_load_store
- KHR_shader_storage_buffer_object
- KHR_stencil_texturing
- KHR_texture_gather
- KHR_texture_storage_multisample
- KHR_vertex_attrib_binding
This commit is contained in:
thefiddler 2014-08-14 00:22:07 +02:00
parent dcca1d77ac
commit a706a78cf5
10 changed files with 319 additions and 2 deletions

View file

@ -249,6 +249,13 @@
<None Include="Specifications\GL2\ES\3.1\KHR_explicit_uniform_location.xml" />
<None Include="Specifications\GL2\ES\3.1\KHR_framebuffer_no_attachments.xml" />
<None Include="Specifications\GL2\ES\3.1\KHR_program_interface_queries.xml" />
<None Include="Specifications\GL2\ES\3.1\KHR_shader_atomic_counters.xml" />
<None Include="Specifications\GL2\ES\3.1\KHR_shader_image_load_store.xml" />
<None Include="Specifications\GL2\ES\3.1\KHR_shader_storage_buffer_object.xml" />
<None Include="Specifications\GL2\ES\3.1\KHR_stencil_texturing.xml" />
<None Include="Specifications\GL2\ES\3.1\KHR_texture_gather.xml" />
<None Include="Specifications\GL2\ES\3.1\KHR_texture_storage_multisample.xml" />
<None Include="Specifications\GL2\ES\3.1\KHR_vertex_attrib_binding.xml" />
</ItemGroup>
<ItemGroup>
<None Include="Specifications\GL2\signatures.xml">

View file

@ -5,8 +5,10 @@
<enum name="BufferTarget">
<use token="GL_DISPATCH_INDIRECT_BUFFER"/>
</enum>
<enum name="GetPName">
<enum name="GetProgramParameterName">
<use token="GL_COMPUTE_WORK_GROUP_SIZE" />
</enum>
<enum name="GetPName">
<uso token="GL_DISPATCH_INDIRECT_BUFFER_BINDING"/>
<use token="GL_MAX_COMPUTE_UNIFORM_BLOCKS"/>
<use token="GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS"/>

View file

@ -2,9 +2,41 @@
<signatures version="2">
<replace name="gles2" version="3.1">
<function name="UseProgramStages" extension="Core">
<function name="CreateShaderProgramv">
<param name="type"><type>ShaderType</type></param>
</function>
<function name="GetProgramPipelineiv">
<param name="pname"><type>ProgramPipelineParameter</type></param>
</function>
<function name="UseProgramStages">
<param name="stages"><type>ProgramStageMask</type></param>
</function>
</replace>
<add name="gles2" version="3.1">
<enum name="GetPName">
<use token="PROGRAM_PIPELINE_BINDING" />
</enum>
<enum name="GetProgramParameterName">
<use token="PROGRAM_SEPARABLE" />
</enum>
<enum name="ProgramParameterName">
<use token="PROGRAM_SEPARABLE" />
</enum>
<enum name="ProgramPipelineParameter">
<use token="ACTIVE_PROGRAM" />
<use token="VERTEX_SHADER" />
<use token="FRAGMENT_SHADER" />
<use token="COMPUTE_SHADER" />
<use token="VALIDATE_STATUS" />
<use token="INFO_LOG_LENGTH" />
</enum>
<enum name="ProgramStageMask">
<use token="VERTEX_SHADER_BIT" />
<use token="FRAGMENT_SHADER_BIT" />
<use token="COMPUTE_SHADER_BIT" />
<use token="ALL_SHADER_BITS" />
</enum>
</add>
</signatures>

View file

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8" ?>
<signatures version="2">
<add name="gles2" version="3.1">
<enum name="ActiveUniformType">
<use token="UNSIGNED_INT_ATOMIC_COUNTER" />
</enum>
<enum name="BufferTarget">
<use token="GL_ATOMIC_COUNTER_BUFFER"/>
</enum>
<enum name="GetIndexedPName">
<use token="GL_ATOMIC_COUNTER_BUFFER_START"/>
<use token="GL_ATOMIC_COUNTER_BUFFER_SIZE"/>
</enum>
<enum name="GetPName">
<use token="GL_ATOMIC_COUNTER_BUFFER_BINDING"/>
<use token="GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS"/>
<use token="GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS"/>
<use token="GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS"/>
<use token="GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS"/>
<use token="GL_MAX_VERTEX_ATOMIC_COUNTERS"/>
<use token="GL_MAX_FRAGMENT_ATOMIC_COUNTERS"/>
<use token="GL_MAX_COMPUTE_ATOMIC_COUNTERS"/>
<use token="GL_MAX_COMBINED_ATOMIC_COUNTERS"/>
<use token="GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE"/>
<use token="GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS"/>
</enum>
<enum name="GetProgramParameterName">
<use token="GL_ACTIVE_ATOMIC_COUNTER_BUFFERS"/>
</enum>
<enum name="ActiveVariableType">
<use token="UNSIGNED_INT_ATOMIC_COUNTER" />
</enum>
</add>
</signatures>

View file

@ -0,0 +1,80 @@
<?xml version="1.0" encoding="UTF-8" ?>
<signatures version="2">
<replace name="gles2" version="3.1">
<function name="BindImageTexture">
<param name="access"><type>TextureAccess</type></param>
<param name="format"><type>SizedInternalFormat</type></param>
</function>
<function name="GetBooleani_v">
<param name="target"><type>GetIndexedPName</type></param>
</function>
<function name="MemoryBarrier">
<param name="barriers"><type>MemoryBarrierMask</type></param>
</function>
<function name="MemoryBarrierByRegion">
<param name="barriers"><type>MemoryBarrierRegionMask</type></param>
</function>
</replace>
<add name="gles2" version="3.1">
<enum name="ActiveUniformType">
<use token="GL_IMAGE_2D"/>
<use token="GL_IMAGE_3D"/>
<use token="GL_IMAGE_CUBE"/>
<use token="GL_IMAGE_2D_ARRAY"/>
<use token="GL_INT_IMAGE_2D"/>
<use token="GL_INT_IMAGE_3D"/>
<use token="GL_INT_IMAGE_CUBE"/>
<use token="GL_INT_IMAGE_2D_ARRAY"/>
<use token="GL_UNSIGNED_INT_IMAGE_2D"/>
<use token="GL_UNSIGNED_INT_IMAGE_3D"/>
<use token="GL_UNSIGNED_INT_IMAGE_CUBE"/>
<use token="GL_UNSIGNED_INT_IMAGE_2D_ARRAY"/>
</enum>
<enum name="GetPName">
<use token="GL_MAX_VERTEX_IMAGE_UNIFORMS"/>
<use token="GL_MAX_FRAGMENT_IMAGE_UNIFORMS"/>
<use token="GL_MAX_COMPUTE_IMAGE_UNIFORMS"/>
<use token="GL_MAX_COMBINED_IMAGE_UNIFORMS"/>
<use token="GL_IMAGE_BINDING_NAME"/>
<use token="GL_IMAGE_BINDING_LEVEL"/>
<use token="GL_IMAGE_BINDING_LAYERED"/>
<use token="GL_IMAGE_BINDING_LAYER"/>
<use token="GL_IMAGE_BINDING_ACCESS"/>
<use token="GL_IMAGE_BINDING_FORMAT"/>
</enum>
<enum name="GetTextureParameterName">
<use token="GL_IMAGE_FORMAT_COMPATIBILITY_TYPE"/>
</enum>
<enum name="MemoryBarrierMask">
<use token="GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT"/>
<use token="GL_ELEMENT_ARRAY_BARRIER_BIT"/>
<use token="GL_UNIFORM_BARRIER_BIT"/>
<use token="GL_TEXTURE_FETCH_BARRIER_BIT"/>
<use token="GL_SHADER_IMAGE_ACCESS_BARRIER_BIT"/>
<use token="GL_COMMAND_BARRIER_BIT"/>
<use token="GL_PIXEL_BUFFER_BARRIER_BIT"/>
<use token="GL_TEXTURE_UPDATE_BARRIER_BIT"/>
<use token="GL_BUFFER_UPDATE_BARRIER_BIT"/>
<use token="GL_FRAMEBUFFER_BARRIER_BIT"/>
<use token="GL_TRANSFORM_FEEDBACK_BARRIER_BIT"/>
<use token="GL_ATOMIC_COUNTER_BARRIER_BIT"/>
<use token="GL_ALL_BARRIER_BITS"/>
</enum>
<enum name="MemoryBarrierRegionMask">
<use token="GL_ATOMIC_COUNTER_BARRIER_BIT"/>
<use token="GL_FRAMEBUFFER_BARRIER_BIT"/>
<use token="GL_SHADER_IMAGE_ACCESS_BARRIER_BIT"/>
<use token="GL_TEXTURE_FETCH_BARRIER_BIT"/>
<use token="GL_UNIFORM_BARRIER_BIT"/>
<use token="GL_ALL_BARRIER_BITS"/>
</enum>
<enum name="TextureAccess">
<use token="READ_ONLY" />
<use token="WRITE_ONLY" />
<use token="READ_WRITE" />
</enum>
</add>
</signatures>

View file

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8" ?>
<signatures version="2">
<add name="gles2" version="3.1">
<enum name="BufferTarget">
<use token="SHADER_STORAGE_BUFFER" />
</enum>
<enum name="GetPName">
<use token="SHADER_STORAGE_BUFFER_BINDING" />
<use token="GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS"/>
<use token="GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS"/>
<use token="GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS"/>
<use token="GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS"/>
<use token="GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS"/>
<use token="GL_MAX_SHADER_STORAGE_BLOCK_SIZE"/>
<use token="GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT"/>
<use token="GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES"/>
</enum>
<enum name="GetIndexedPName">
<use token="SHADER_STORAGE_BUFFER_START" />
<use token="SHADER_STORAGE_BUFFER_SIZE" />
</enum>
<enum name="MemoryBarrierMask">
<use token="SHADER_STORAGE_BARRIER_BIT" />
</enum>
<enum name="MemoryBarrierRegionMask">
<use token="SHADER_STORAGE_BARRIER_BIT" />
</enum>
</add>
</signatures>

View file

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8" ?>
<?xml version="1.0" encoding="UTF-8" ?>
<signatures version="2">
<add name="gles2" version="3.1">
<enum name="PixelFormat">
<use token="STENCIL_INDEX" />
</enum>
<enum name="TextureParameterName">
<use token="DEPTH_STENCIL_TEXTURE_MODE" />
</enum>
</add>
</signatures>

View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
<signatures version="2">
<add name="gles2" version="3.1">
<enum name="GetPName">
<use token="MAX_PROGRAM_TEXTURE_GATHER_OFFSET" />
<use token="MIN_PROGRAM_TEXTURE_GATHER_OFFSET" />
</enum>
</add>
</signatures>

View file

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8" ?>
<signatures version="2">
<replace name="gles2" version="3.1">
<function name="TexStorage2DMultisample">
<param name="target"><type>TextureTargetMultisample2d</type></param>
<param name="internalformat"><type>SizedInternalFormat</type></param>
</function>
<function name="GetMultisample">
<param name="pname"><type>GetMultisamplePName</type></param>
</function>
<function name="GetTexLevelParameter">
<param name="target"><type>TextureTarget</type></param>
<param name="pname"><type>GetTextureParameterName</type></param>
</function>
</replace>
<add name="gles2" version="3.1">
<enum name="ActiveUniformType">
<use token="GL_SAMPLER_2D_MULTISAMPLE"/>
<use token="GL_INT_SAMPLER_2D_MULTISAMPLE"/>
<use token="GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE"/>
</enum>
<enum name="EnableCap">
<use token="GL_SAMPLE_MASK" />
</enum>
<enum name="GetIndexedPName">
<use token="GL_SAMPLE_MASK_VALUE" />
</enum>
<enum name="GetPName">
<use token="GL_MAX_SAMPLE_MASK_WORDS"/>
<use token="GL_MAX_COLOR_TEXTURE_SAMPLES"/>
<use token="GL_MAX_DEPTH_TEXTURE_SAMPLES"/>
<use token="GL_MAX_INTEGER_SAMPLES"/>
<use token="GL_TEXTURE_BINDING_2D_MULTISAMPLE"/>
</enum>
<enum name="GetMultisamplePName">
<use token="GL_SAMPLE_POSITION" />
</enum>
<enum name="GetTextureParameterName">
<use token="GL_TEXTURE_SAMPLES" />
<use token="GL_TEXTURE_FIXED_SAMPLE_LOCATIONS"/>
<use token="GL_TEXTURE_WIDTH"/>
<use token="GL_TEXTURE_HEIGHT"/>
<use token="GL_TEXTURE_DEPTH"/>
<use token="GL_TEXTURE_INTERNAL_FORMAT"/>
<use token="GL_TEXTURE_RED_SIZE"/>
<use token="GL_TEXTURE_GREEN_SIZE"/>
<use token="GL_TEXTURE_BLUE_SIZE"/>
<use token="GL_TEXTURE_ALPHA_SIZE"/>
<use token="GL_TEXTURE_DEPTH_SIZE"/>
<use token="GL_TEXTURE_STENCIL_SIZE"/>
<use token="GL_TEXTURE_SHARED_SIZE"/>
<use token="GL_TEXTURE_RED_TYPE"/>
<use token="GL_TEXTURE_GREEN_TYPE"/>
<use token="GL_TEXTURE_BLUE_TYPE"/>
<use token="GL_TEXTURE_ALPHA_TYPE"/>
<use token="GL_TEXTURE_DEPTH_TYPE"/>
<use token="GL_TEXTURE_COMPRESSED"/>
</enum>
<enum name="TextureTargetMultisample2d">
<use token="GL_TEXTURE_2D_MULTISAMPLE" />
</enum>
</add>
</signatures>

View file

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8" ?>
<signatures version="2">
<replace name="gles2" version="3.1">
<function name="VertexAttribFormat" extension="Core">
<param name="type"><type>VertexAttribType</type></param>
</function>
<function name="VertexAttribIFormat" extension="Core">
<param name="type"><type>VertexAttribIntegerType</type></param>
</function>
</replace>
<add name="gles2" version="3.1">
<enum name="VertexAttribType">
<use token="BYTE" />
<use token="UNSIGNED_BYTE" />
<use token="SHORT" />
<use token="UNSIGNED_SHORT" />
<use token="INT" />
<use token="UNSIGNED_INT" />
<use token="FIXED" />
<use token="FLOAT" />
<use token="HALF_FLOAT" />
<use token="UNSIGNED_INT_2_10_10_10_REV" />
<use token="INT_2_10_10_10_REV" />
</enum>
<enum name="VertexAttribIntegerType">
<use token="BYTE" />
<use token="UNSIGNED_BYTE" />
<use token="SHORT" />
<use token="UNSIGNED_SHORT" />
<use token="INT" />
<use token="UNSIGNED_INT" />
</enum>
</add>
</signatures>