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

Samuel Iglesias Gonsálvez siglesias at igalia.com
Fri Jul 31 00:31:10 PDT 2015


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?

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
> > 
> 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20150731/45799cba/attachment-0001.sig>


More information about the mesa-dev mailing list