st/mesa: Set EmitNoIndirectSampler if GLSLVersion < 400.
authorKenneth Graunke <kenneth@whitecape.org>
Wed, 26 Jun 2019 04:00:46 +0000 (21:00 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 27 Jun 2019 05:54:52 +0000 (22:54 -0700)
This patch changes the code which sets EmitNoIndirectSampler to check
the core profile GLSL version, rather than the ARB_gpu_shader5 extension
enable.  st/mesa exposes ARB_gpu_shader5 if GLSLVersion (in core
profiles) or GLSLVersionCompat (in compat profiles) >= 400.

The Intel drivers do not currently expose ARB_gpu_shader5 in compat
profiles.  But the backend can absolutely handle indirect samplers.
Looking at the core profile version number should be a good indication
of what the driver supports.

Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
src/mesa/state_tracker/st_context.c

index e60962388cb04491665d44ca3cadf9faaeee9c50..fbf44ef352c250c5aae205d8f634c18fec25309a 100644 (file)
@@ -689,7 +689,7 @@ st_create_context_priv(struct gl_context *ctx, struct pipe_context *pipe,
    ctx->Const.ShaderCompilerOptions[MESA_SHADER_VERTEX].EmitNoSat =
       !st->has_shader_model3;
 
-   if (!ctx->Extensions.ARB_gpu_shader5) {
+   if (ctx->Const.GLSLVersion < 400) {
       for (i = 0; i < MESA_SHADER_STAGES; i++)
          ctx->Const.ShaderCompilerOptions[i].EmitNoIndirectSampler = true;
    }