[Mesa-dev] [PATCH 3/3] mesa: remove LowerShaderSharedVariables

Marek Olšák maraeo at gmail.com
Wed Nov 9 12:12:41 UTC 2016


From: Marek Olšák <marek.olsak at amd.com>

always true for compute shaders
---
 src/compiler/glsl/linker.cpp             | 2 +-
 src/mesa/drivers/dri/i965/brw_compiler.c | 3 ---
 src/mesa/main/mtypes.h                   | 3 ---
 src/mesa/state_tracker/st_extensions.c   | 3 ---
 4 files changed, 1 insertion(+), 10 deletions(-)

diff --git a/src/compiler/glsl/linker.cpp b/src/compiler/glsl/linker.cpp
index aceea8d..0d18279 100644
--- a/src/compiler/glsl/linker.cpp
+++ b/src/compiler/glsl/linker.cpp
@@ -4672,21 +4672,21 @@ link_varyings_and_uniforms(unsigned first, unsigned last,
       if (prog->_LinkedShaders[i] == NULL)
          continue;
 
       const struct gl_shader_compiler_options *options =
          &ctx->Const.ShaderCompilerOptions[i];
 
       if (options->LowerBufferInterfaceBlocks)
          lower_ubo_reference(prog->_LinkedShaders[i],
                              options->ClampBlockIndicesToArrayBounds);
 
-      if (options->LowerShaderSharedVariables)
+      if (i == MESA_SHADER_COMPUTE)
          lower_shared_reference(prog->_LinkedShaders[i],
                                 &prog->Comp.SharedSize);
 
       lower_vector_derefs(prog->_LinkedShaders[i]);
       do_vec_index_to_swizzle(prog->_LinkedShaders[i]->ir);
    }
 
    return true;
 }
 
diff --git a/src/mesa/drivers/dri/i965/brw_compiler.c b/src/mesa/drivers/dri/i965/brw_compiler.c
index 18145be..9387d64 100644
--- a/src/mesa/drivers/dri/i965/brw_compiler.c
+++ b/src/mesa/drivers/dri/i965/brw_compiler.c
@@ -149,15 +149,12 @@ brw_compiler_create(void *mem_ctx, const struct gen_device_info *devinfo)
       compiler->glsl_compiler_options[i].ClampBlockIndicesToArrayBounds = true;
    }
 
    compiler->glsl_compiler_options[MESA_SHADER_TESS_CTRL].EmitNoIndirectInput = false;
    compiler->glsl_compiler_options[MESA_SHADER_TESS_EVAL].EmitNoIndirectInput = false;
    compiler->glsl_compiler_options[MESA_SHADER_TESS_CTRL].EmitNoIndirectOutput = false;
 
    if (compiler->scalar_stage[MESA_SHADER_GEOMETRY])
       compiler->glsl_compiler_options[MESA_SHADER_GEOMETRY].EmitNoIndirectInput = false;
 
-   compiler->glsl_compiler_options[MESA_SHADER_COMPUTE]
-      .LowerShaderSharedVariables = true;
-
    return compiler;
 }
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index 08f72e0..5e98040 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -2931,23 +2931,20 @@ struct gl_shader_compiler_options
     *   - preferring DP4 instructions (rather than MUL/MAD) for
     *     matrix * vector operations, such as position transformation.
     */
    GLboolean OptimizeForAOS;
 
    GLboolean LowerBufferInterfaceBlocks; /**< Lower UBO and SSBO access to intrinsics. */
 
    /** Clamp UBO and SSBO block indices so they don't go out-of-bounds. */
    GLboolean ClampBlockIndicesToArrayBounds;
 
-   GLboolean LowerShaderSharedVariables; /**< Lower compute shader shared
-                                          *   variable access to intrinsics. */
-
    const struct nir_shader_compiler_options *NirOptions;
 };
 
 
 /**
  * Occlusion/timer query object.
  */
 struct gl_query_object
 {
    GLenum Target;      /**< The query target, when active */
diff --git a/src/mesa/state_tracker/st_extensions.c b/src/mesa/state_tracker/st_extensions.c
index 8d3eee6..ef926e4 100644
--- a/src/mesa/state_tracker/st_extensions.c
+++ b/src/mesa/state_tracker/st_extensions.c
@@ -301,23 +301,20 @@ void st_init_limits(struct pipe_screen *screen,
             MIN2(screen->get_shader_param(screen, sh,
                                           PIPE_SHADER_CAP_MAX_INSTRUCTIONS),
                  65536);
       else
          options->MaxUnrollIterations =
             screen->get_shader_param(screen, sh,
                                   PIPE_SHADER_CAP_MAX_UNROLL_ITERATIONS_HINT);
 
       options->LowerCombinedClipCullDistance = true;
       options->LowerBufferInterfaceBlocks = true;
-
-      if (sh == PIPE_SHADER_COMPUTE)
-         options->LowerShaderSharedVariables = true;
    }
 
    c->LowerTessLevel = true;
    c->LowerCsDerivedVariables = true;
    c->PrimitiveRestartForPatches =
       screen->get_param(screen, PIPE_CAP_PRIMITIVE_RESTART_FOR_PATCHES);
 
    c->MaxCombinedTextureImageUnits =
          _min(c->Program[MESA_SHADER_VERTEX].MaxTextureImageUnits +
               c->Program[MESA_SHADER_TESS_CTRL].MaxTextureImageUnits +
-- 
2.7.4



More information about the mesa-dev mailing list