[Mesa-dev] [PATCH 06/10] mesa: support inactive uniforms in glUniform* functions
Tapani
tapani.palli at intel.com
Mon May 19 21:59:47 PDT 2014
On 05/19/2014 08:09 PM, Ian Romanick wrote:
> On 04/09/2014 02:56 AM, Tapani Pälli wrote:
>> Support inactive uniforms that have explicit location set in
>> glUniform* functions.
>>
>> Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
>> ---
>> src/mesa/main/uniform_query.cpp | 15 +++++++++++++++
>> 1 file changed, 15 insertions(+)
>>
>> diff --git a/src/mesa/main/uniform_query.cpp b/src/mesa/main/uniform_query.cpp
>> index 5f1af08..e33800a 100644
>> --- a/src/mesa/main/uniform_query.cpp
>> +++ b/src/mesa/main/uniform_query.cpp
>> @@ -253,6 +253,21 @@ validate_uniform_parameters(struct gl_context *ctx,
>> return false;
>> }
>>
>> + /* If the driver storage pointer in remap table is -1, we ignore silently.
>> + *
>> + * GL_ARB_explicit_uniform_location spec says:
>> + * "What happens if Uniform* is called with an explicitly defined
>> + * uniform location, but that uniform is deemed inactive by the
>> + * linker?
>> + *
>> + * RESOLVED: The call is ignored for inactive uniform variables and
>> + * no error is generated."
>> + *
>> + */
>> + if (ctx->Extensions.ARB_explicit_uniform_location &&
>> + shProg->UniformRemapTable[location] == (gl_uniform_storage *) -1)
>> + return false;
>> +
> Do we actually need to check
> ctx->Extensions.ARB_explicit_uniform_location? It seems like
> UniformRemapTable will only have -1 in it for that case, right?
Yes, the extension check can be removed.
>> _mesa_uniform_split_location_offset(shProg, location, loc, array_index);
>>
>> if (shProg->UniformStorage[*loc].array_elements == 0 && count > 1) {
>>
More information about the mesa-dev
mailing list