[Mesa-dev] [PATCH v4 (part2) 52/56] mesa: Add getters for the GL_ARB_shader_storage_buffer_object max constants

Tapani Pälli tapani.palli at intel.com
Fri Jul 31 00:37:05 PDT 2015



On 07/31/2015 10:31 AM, Samuel Iglesias Gonsálvez wrote:
> On Fri, 2015-07-31 at 09:26 +0300, Tapani Pälli wrote:
>>
>> On 07/24/2015 08:30 AM, Samuel Iglesias Gonsálvez wrote:
>>>
>>> On 23/07/15 08:42, Samuel Iglesias Gonsalvez wrote:
>>>> v2:
>>>> - Add tessellation shader constants support
>>>>
>>>> Signed-off-by: Samuel Iglesias Gonsalvez <siglesias at igalia.com>
>>>> ---
>>>>    src/mesa/main/get.c              |  1 +
>>>>    src/mesa/main/get_hash_params.py | 14 ++++++++++++++
>>>>    2 files changed, 15 insertions(+)
>>>>
>>>> diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c
>>>> index 56cc3f2..a75bea9 100644
>>>> --- a/src/mesa/main/get.c
>>>> +++ b/src/mesa/main/get.c
>>>> @@ -414,6 +414,7 @@ EXTRA_EXT(ARB_clip_control);
>>>>    EXTRA_EXT(EXT_polygon_offset_clamp);
>>>>    EXTRA_EXT(ARB_framebuffer_no_attachments);
>>>>    EXTRA_EXT(ARB_tessellation_shader);
>>>> +EXTRA_EXT(ARB_shader_storage_buffer_object);
>>>>
>>>>    static const int
>>>>    extra_ARB_color_buffer_float_or_glcore[] = {
>>>> diff --git a/src/mesa/main/get_hash_params.py
>>>> b/src/mesa/main/get_hash_params.py
>>>> index 2cf06d6..f810155 100644
>>>> --- a/src/mesa/main/get_hash_params.py
>>>> +++ b/src/mesa/main/get_hash_params.py
>>>> @@ -373,6 +373,20 @@ descriptor=[
>>>>      [ "UNIFORM_BUFFER_OFFSET_ALIGNMENT",
>>>> "CONTEXT_INT(Const.UniformBufferOffsetAlignment),
>>>> extra_ARB_uniform_buffer_object" ],
>>>>      [ "UNIFORM_BUFFER_BINDING", "LOC_CUSTOM, TYPE_INT, 0,
>>>> extra_ARB_uniform_buffer_object" ],
>>>>
>>>> +  # GL_ARB_shader_storage_buffer_object
>>>> +  [ "MAX_VERTEX_SHADER_STORAGE_BLOCKS",
>>>> "CONTEXT_INT(Const.Program[MESA_SHADER_VERTEX].MaxShaderStorageBl
>>>> ocks), extra_ARB_shader_storage_buffer_object" ],
>>>> +  [ "MAX_GEOMETRY_SHADER_STORAGE_BLOCKS",
>>>> "CONTEXT_INT(Const.Program[MESA_SHADER_FRAGMENT].MaxShaderStorage
>>>> Blocks), extra_ARB_shader_storage_buffer_object" ],
>>>> +  [ "MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS",
>>>> "CONTEXT_INT(Const.Program[MESA_SHADER_TESS_CTRL].MaxShaderStorag
>>>> eBlocks), extra_ARB_shader_storage_buffer_object" ],
>>>> +  [ "MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS",
>>>> "CONTEXT_INT(Const.Program[MESA_SHADER_TESS_EVAL].MaxShaderStorag
>>>> eBlocks), extra_ARB_shader_storage_buffer_object" ],
>>>> +  [ "MAX_FRAGMENT_SHADER_STORAGE_BLOCKS",
>>>> "CONTEXT_INT(Const.Program[MESA_SHADER_FRAGMENT].MaxShaderStorage
>>>> Blocks), extra_ARB_shader_storage_buffer_object" ],
>>>> +  [ "MAX_COMPUTE_SHADER_STORAGE_BLOCKS",
>>>> "CONTEXT_INT(Const.Program[MESA_SHADER_COMPUTE].MaxShaderStorageB
>>>> locks), extra_ARB_shader_storage_buffer_object" ],
>>>> +  [ "MAX_COMBINED_SHADER_STORAGE_BLOCKS",
>>>> "CONTEXT_INT(Const.MaxCombinedShaderStorageBlocks),
>>>> extra_ARB_shader_storage_buffer_object" ],
>>>> +  [ "MAX_SHADER_STORAGE_BLOCK_SIZE",
>>>> "CONTEXT_INT(Const.MaxShaderStorageBlockSize),
>>>> extra_ARB_shader_storage_buffer_object" ],
>>>> +  [ "MAX_SHADER_STORAGE_BUFFER_BINDINGS",
>>>> "CONTEXT_INT(Const.MaxShaderStorageBufferBindings),
>>>> extra_ARB_shader_storage_buffer_object" ],
>>>> +  [ "MAX_COMBINED_SHADER_OUTPUT_RESOURCES",
>>>> "CONTEXT_INT(Const.MaxCombinedImageUnitsAndFragmentOutputs),
>>>> extra_ARB_shader_storage_buffer_object" ],
>>>> +  [ "SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT",
>>>> "CONTEXT_INT(Const.ShaderStorageBufferOffsetAlignment),
>>>> extra_ARB_shader_storage_buffer_object" ],
>>>> +  [ "SHADER_STORAGE_BUFFER_BINDING", "LOC_CUSTOM, TYPE_INT, 0,
>>>> extra_ARB_shader_storage_buffer_object" ],
>>>> +
>>>
>>> While I was writing ARB_shader_storage_buffer_object support for
>>> GLES
>>> 3.1, I realized that this patch misplaced these lines. They should
>>> be at
>>> the end of the file (inside "Enums restricted to OpenGL Core
>>> profile"
>>> section).
>>>
>>> Later, one of the GLES 3.1 patches will move the corresponding
>>> constants
>>> to "Enums in OpenGL Core profile and ES 3.1" section.
>>>
>>> I can send another version of this patch with that fixed, if you
>>> want.
>>
>> Why not directly move these to "Enums in OpenGL Core profile and ES
>> 3.1"
>> section?
>>
>
> Not all constants are defined in GLES 3.1. However, what I can do is to
> merge the GLES 3.1 patch to this one, so we have one patch with all the
> support.
>
> Does this sounds good to you?

Sounds perfect!

> Sam
>
>>> Sam
>>>
>>>>    # GL_ARB_vertex_shader
>>>>      [ "MAX_VERTEX_UNIFORM_COMPONENTS_ARB",
>>>> "CONTEXT_INT(Const.Program[MESA_SHADER_VERTEX].MaxUniformComponen
>>>> ts), extra_ARB_vertex_shader" ],
>>>>      [ "MAX_VARYING_FLOATS_ARB", "LOC_CUSTOM, TYPE_INT, 0,
>>>> extra_ARB_vertex_shader" ],
>>>>
>>> _______________________________________________
>>> mesa-dev mailing list
>>> mesa-dev at lists.freedesktop.org
>>> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
>>>
>>


More information about the mesa-dev mailing list