[Mesa-dev] [PATCH 07/23] mesa: glGetProgramResourceLocationIndex
Tapani Pälli
tapani.palli at intel.com
Tue Mar 17 22:45:22 PDT 2015
On 03/17/2015 04:20 PM, Ilia Mirkin wrote:
> On Tue, Mar 17, 2015 at 5:13 AM, Tapani Pälli <tapani.palli at intel.com> wrote:
>>
>>
>> On 03/16/2015 08:08 PM, Ilia Mirkin wrote:
>>>
>>> On Fri, Mar 13, 2015 at 4:37 AM, Tapani Pälli <tapani.palli at intel.com>
>>> wrote:
>>>> +/**
>>>> + * Returns output index for dual source blending.
>>>> + */
>>>> GLint GLAPIENTRY
>>>> _mesa_GetProgramResourceLocationIndex(GLuint program, GLenum
>>>> programInterface,
>>>> const GLchar *name)
>>>> {
>>>> - return -1;
>>>> + GET_CURRENT_CONTEXT(ctx);
>>>> + struct gl_shader_program *shProg =
>>>> + lookup_linked_program(program,
>>>> "glGetProgramResourceLocationIndex");
>>>> +
>>>> + if (!shProg || invalid_array_element_syntax(name))
>>>> + return -1;
>>>> +
>>>> + /* From the GL_ARB_program_interface_query spec:
>>>> + *
>>>> + * "For GetProgramResourceLocationIndex, <programInterface> must be
>>>> + * PROGRAM_OUTPUT."
>>>> + */
>>>
>>>
>>> And presumably it must be a program with a fragment shader (which
>>> might not be there for a no-rast or compute pipeline).
>>
>>
>> spec says that -1 is returned:
>>
>> "If <program> has been successfully linked but contains no fragment shader,
>> no error will be generated but -1 will be returned."
>>
>> this is what happens with the implementation.
>
> Can you explain how the current implementation takes care of that?
>
My earlier suggestion for this was that
_mesa_program_resource_location_index returns -1 because resource cannot
be found. But now I see that one could call this for any output of any
stage and then it would likely return 0 or whatever is the uninitialized
state of ir_variable::data.index. Will have to fix this, thanks for
spotting this!
// Tapani
More information about the mesa-dev
mailing list