ping?
On 24 May 2016 at 06:43, Dave Airlie <[email protected]> wrote: > From: Dave Airlie <[email protected]> > > The GL4.5 spec quote seems clear on this: > "The value -1 will be returned by either command if an error occurs, > if name does not identify an active variable on programInterface, > or if name identifies an active variable that does not have a valid > location assigned, as described above." > > This fixes: > GL45-CTS.program_interface_query.output-built-in > > Signed-off-by: Dave Airlie <[email protected]> > --- > src/mesa/main/shader_query.cpp | 20 +++++++++++++++++--- > 1 file changed, 17 insertions(+), 3 deletions(-) > > diff --git a/src/mesa/main/shader_query.cpp b/src/mesa/main/shader_query.cpp > index c8c3df4..467e9b7 100644 > --- a/src/mesa/main/shader_query.cpp > +++ b/src/mesa/main/shader_query.cpp > @@ -884,6 +884,13 @@ _mesa_program_resource_location_index(struct > gl_shader_program *shProg, > if (!res || !(res->StageReferences & (1 << MESA_SHADER_FRAGMENT))) > return -1; > > + /* From OpenGL 4.5 spec, 7.3 Program Objects > + * "The value -1 will be returned by either command... > + * ... or if name identifies an active variable that does not have a > + * valid location assigned. > + */ > + if (RESOURCE_VAR(res)->location == -1) > + return -1; > return RESOURCE_VAR(res)->index; > } > > @@ -1238,12 +1245,19 @@ _mesa_program_resource_prop(struct gl_shader_program > *shProg, > default: > goto invalid_operation; > } > - case GL_LOCATION_INDEX: > + case GL_LOCATION_INDEX: { > + int tmp; > if (res->Type != GL_PROGRAM_OUTPUT) > goto invalid_operation; > - *val = RESOURCE_VAR(res)->index; > + tmp = program_resource_location(shProg, res, > + _mesa_program_resource_name(res), > + 0); > + if (tmp == -1) > + *val = -1; > + else > + *val = RESOURCE_VAR(res)->index; > return 1; > - > + } > case GL_NUM_COMPATIBLE_SUBROUTINES: > if (res->Type != GL_VERTEX_SUBROUTINE_UNIFORM && > res->Type != GL_FRAGMENT_SUBROUTINE_UNIFORM && > -- > 2.5.5 > > _______________________________________________ > mesa-dev mailing list > [email protected] > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
