[Mesa-dev] [PATCH 11/11] glsl: Reject linking shaders with too many uniform blocks.

Brian Paul brianp at vmware.com
Thu Jul 26 09:27:40 PDT 2012


On 07/26/2012 10:17 AM, Eric Anholt wrote:
> Brian Paul<brianp at vmware.com>  writes:
>
>> On 07/20/2012 04:33 PM, Eric Anholt wrote:
>>> Part of fixing piglit maxblocks.
>>> ---
>>>    src/glsl/linker.cpp |   34 ++++++++++++++++++++++++++++++++++
>>>    1 file changed, 34 insertions(+)
>>>
>>> diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp
>>> index bfdde40..f4e578f 100644
>>> --- a/src/glsl/linker.cpp
>>> +++ b/src/glsl/linker.cpp
>>> @@ -2324,6 +2324,12 @@ check_resources(struct gl_context *ctx, struct gl_shader_program *prog)
>>>          0          /* FINISHME: Geometry shaders. */
>>>       };
>>>
>>> +   const unsigned max_uniform_blocks[MESA_SHADER_TYPES] = {
>>> +      ctx->Const.VertexProgram.MaxUniformBlocks,
>>> +      ctx->Const.FragmentProgram.MaxUniformBlocks,
>>> +      ctx->Const.GeometryProgram.MaxUniformBlocks,
>>> +   };
>>> +
>>>       for (unsigned i = 0; i<   MESA_SHADER_TYPES; i++) {
>>>          struct gl_shader *sh = prog->_LinkedShaders[i];
>>>
>>> @@ -2348,6 +2354,34 @@ check_resources(struct gl_context *ctx, struct gl_shader_program *prog)
>>>          }
>>>       }
>>>
>>> +   unsigned blocks[] = {0, 0, 0};
>>
>> Should that be:
>>      unsigned blocks[MESA_SHADER_TYPES] = { 0, 0, 0 };
>
> I've changed it to just blocks[MESA_SHADER_TYPES] = { 0 } since trailing
> entries get zero-filled.

Looks good.

-Brian



More information about the mesa-dev mailing list