On Wed, May 6, 2015 at 2:36 AM, Tapani Pälli <tapani.pa...@intel.com> wrote: > Increases pass rate of ES31-CTS.*program_interface_query* tests > when run with MESA_EXTENSION_OVERRIDE='GL_ARB_compute_shader'. Many > of the negative tests that happen to use compute stage in queries > start passing. > > Signed-off-by: Tapani Pälli <tapani.pa...@intel.com> > --- > src/mesa/main/shader_query.cpp | 22 ++++++++++++++++------ > 1 file changed, 16 insertions(+), 6 deletions(-) > > diff --git a/src/mesa/main/shader_query.cpp b/src/mesa/main/shader_query.cpp > index d2ca49b..6e46553 100644 > --- a/src/mesa/main/shader_query.cpp > +++ b/src/mesa/main/shader_query.cpp > @@ -809,6 +809,8 @@ stage_from_enum(GLenum ref) > return MESA_SHADER_GEOMETRY; > case GL_REFERENCED_BY_FRAGMENT_SHADER: > return MESA_SHADER_FRAGMENT; > + case GL_REFERENCED_BY_COMPUTE_SHADER: > + return MESA_SHADER_COMPUTE; > default: > assert(!"shader stage not supported"); > return MESA_SHADER_STAGES; > @@ -824,6 +826,10 @@ is_resource_referenced(struct gl_shader_program *shProg, > struct gl_program_resource *res, > GLuint index, uint8_t stage) > { > + /* First, check if we even have such a stage active. */ > + if (!shProg->_LinkedShaders[stage]) > + return false; > + > if (res->Type == GL_ATOMIC_COUNTER_BUFFER) > return RESOURCE_ATC(res)->StageReferences[stage]; > > @@ -979,6 +985,9 @@ _mesa_program_resource_prop(struct gl_shader_program > *shProg, > case GL_NUM_ACTIVE_VARIABLES: > case GL_ACTIVE_VARIABLES: > return get_buffer_property(shProg, res, prop, val, caller); > + case GL_REFERENCED_BY_COMPUTE_SHADER: > + if (!ctx->Extensions.ARB_compute_shader) > + goto invalid_enum;
Please use _mesa_has_compute_shaders(ctx) here -- the condition is more complex than just the ext check to determine if you actually have compute support. With that fixed, Reviewed-by: Ilia Mirkin <imir...@alum.mit.edu> > case GL_REFERENCED_BY_VERTEX_SHADER: > case GL_REFERENCED_BY_GEOMETRY_SHADER: > case GL_REFERENCED_BY_FRAGMENT_SHADER: > @@ -1015,17 +1024,18 @@ _mesa_program_resource_prop(struct gl_shader_program > *shProg, > case GL_IS_PER_PATCH: > case GL_REFERENCED_BY_TESS_CONTROL_SHADER: > case GL_REFERENCED_BY_TESS_EVALUATION_SHADER: > - /* GL_ARB_compute_shader */ > - case GL_REFERENCED_BY_COMPUTE_SHADER: > default: > - _mesa_error(ctx, GL_INVALID_ENUM, "%s(%s prop %s)", caller, > - _mesa_lookup_enum_by_nr(res->Type), > - _mesa_lookup_enum_by_nr(prop)); > - return 0; > + goto invalid_enum; > } > > #undef VALIDATE_TYPE > > +invalid_enum: > + _mesa_error(ctx, GL_INVALID_ENUM, "%s(%s prop %s)", caller, > + _mesa_lookup_enum_by_nr(res->Type), > + _mesa_lookup_enum_by_nr(prop)); > + return 0; > + > invalid_operation: > _mesa_error(ctx, GL_INVALID_OPERATION, "%s(%s prop %s)", caller, > _mesa_lookup_enum_by_nr(res->Type), > -- > 2.1.0 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev