Re: [Mesa-dev] [PATCH 14/14] mesa: remove gl_shader_compiler_options::EmitNoNoise

2016-10-18 Thread Nicolai Hähnle

Patches 5-12, 14 are

Reviewed-by: Nicolai Hähnle 

Those inline-explosion tests have been bugging me as well, but 
realistically speaking, the compiler needs to be at least robust enough 
to just not blow up and instead refuse compilation before any work on 
proper subroutines.


Cheers,
Nicolai

On 17.10.2016 15:39, Marek Olšák wrote:

From: Marek Olšák 

it's always true
---
 src/mesa/drivers/dri/i915/i915_context.c | 1 -
 src/mesa/drivers/dri/i965/brw_compiler.c | 1 -
 src/mesa/main/mtypes.h   | 1 -
 src/mesa/program/ir_to_mesa.cpp  | 3 +--
 src/mesa/state_tracker/st_extensions.c   | 2 --
 5 files changed, 1 insertion(+), 7 deletions(-)

diff --git a/src/mesa/drivers/dri/i915/i915_context.c 
b/src/mesa/drivers/dri/i915/i915_context.c
index a7604a1..05a2ad1 100644
--- a/src/mesa/drivers/dri/i915/i915_context.c
+++ b/src/mesa/drivers/dri/i915/i915_context.c
@@ -253,21 +253,20 @@ i915CreateContext(int api,

/* FINISHME: Are there other options that should be enabled for software
 * FINISHME: vertex shaders?
 */
ctx->Const.ShaderCompilerOptions[MESA_SHADER_VERTEX].EmitNoIndirectSampler =
   true;

struct gl_shader_compiler_options *const fs_options =
   & ctx->Const.ShaderCompilerOptions[MESA_SHADER_FRAGMENT];
fs_options->MaxIfDepth = 0;
-   fs_options->EmitNoNoise = true;
fs_options->EmitNoPow = true;
fs_options->EmitNoIndirectInput = true;
fs_options->EmitNoIndirectOutput = true;
fs_options->EmitNoIndirectUniform = true;
fs_options->EmitNoIndirectTemp = true;
fs_options->EmitNoIndirectSampler = true;

ctx->Const.MaxDrawBuffers = 1;
ctx->Const.QueryCounterBits.SamplesPassed = 0;

diff --git a/src/mesa/drivers/dri/i965/brw_compiler.c 
b/src/mesa/drivers/dri/i965/brw_compiler.c
index 27cbd40..4fcc51b 100644
--- a/src/mesa/drivers/dri/i965/brw_compiler.c
+++ b/src/mesa/drivers/dri/i965/brw_compiler.c
@@ -116,21 +116,20 @@ brw_compiler_create(void *mem_ctx, const struct 
gen_device_info *devinfo)
   devinfo->gen >= 8 && env_var_as_boolean("INTEL_SCALAR_GS", true);
compiler->scalar_stage[MESA_SHADER_FRAGMENT] = true;
compiler->scalar_stage[MESA_SHADER_COMPUTE] = true;

/* We want the GLSL compiler to emit code that uses condition codes */
for (int i = 0; i < MESA_SHADER_STAGES; i++) {
   compiler->glsl_compiler_options[i].MaxUnrollIterations = 32;
   compiler->glsl_compiler_options[i].MaxIfDepth =
  devinfo->gen < 6 ? 16 : UINT_MAX;

-  compiler->glsl_compiler_options[i].EmitNoNoise = true;
   compiler->glsl_compiler_options[i].EmitNoIndirectInput = true;
   compiler->glsl_compiler_options[i].EmitNoIndirectUniform = false;
   compiler->glsl_compiler_options[i].LowerCombinedClipCullDistance = true;

   bool is_scalar = compiler->scalar_stage[i];

   compiler->glsl_compiler_options[i].EmitNoIndirectOutput = is_scalar;
   compiler->glsl_compiler_options[i].EmitNoIndirectTemp = is_scalar;
   compiler->glsl_compiler_options[i].OptimizeForAOS = !is_scalar;

diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index 701f055..f2ecd6e 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -2990,21 +2990,20 @@ struct gl_pipeline_shader_state
 };

 /**
  * Compiler options for a single GLSL shaders type
  */
 struct gl_shader_compiler_options
 {
/** Driver-selectable options: */
GLboolean EmitNoLoops;
GLboolean EmitNoCont;  /**< Emit CONT opcode? */
-   GLboolean EmitNoNoise; /**< Emit NOISE opcodes? */
GLboolean EmitNoPow;   /**< Emit POW opcodes? */
GLboolean EmitNoSat;   /**< Emit SAT opcodes? */
GLboolean LowerCombinedClipCullDistance; /** Lower gl_ClipDistance and
   * gl_CullDistance together from
   * float[8] to vec4[2]
   **/

/**
 * \name Forms of indirect addressing the driver cannot do.
 */
diff --git a/src/mesa/program/ir_to_mesa.cpp b/src/mesa/program/ir_to_mesa.cpp
index d0e83cc..be10432 100644
--- a/src/mesa/program/ir_to_mesa.cpp
+++ b/src/mesa/program/ir_to_mesa.cpp
@@ -2989,22 +2989,21 @@ _mesa_ir_link_shader(struct gl_context *ctx, struct 
gl_shader_program *prog)
options, ctx->Const.NativeIntegers)
   || progress;

 progress = lower_quadop_vector(ir, true) || progress;

 if (options->MaxIfDepth == 0)
progress = lower_discard(ir) || progress;

 progress = lower_if_to_cond_assign(ir, options->MaxIfDepth) || 
progress;

-if (options->EmitNoNoise)
-   progress = lower_noise(ir) || progress;
+ progress = lower_noise(ir) || progress;

 /* If there are forms of indirect addressing that the driver
  * cannot handle, perform the lowering pass.
  */
 if (options->Emi

Re: [Mesa-dev] [PATCH 14/14] mesa: remove gl_shader_compiler_options::EmitNoNoise

2016-10-17 Thread Ian Romanick
This patch is

Reviewed-by: Ian Romanick 

If we ever want to support the noise built-in functions, we'll have to
implement them as functions... that will get inlined. :)

On 10/17/2016 06:39 AM, Marek Olšák wrote:
> From: Marek Olšák 
> 
> it's always true
> ---
>  src/mesa/drivers/dri/i915/i915_context.c | 1 -
>  src/mesa/drivers/dri/i965/brw_compiler.c | 1 -
>  src/mesa/main/mtypes.h   | 1 -
>  src/mesa/program/ir_to_mesa.cpp  | 3 +--
>  src/mesa/state_tracker/st_extensions.c   | 2 --
>  5 files changed, 1 insertion(+), 7 deletions(-)
> 
> diff --git a/src/mesa/drivers/dri/i915/i915_context.c 
> b/src/mesa/drivers/dri/i915/i915_context.c
> index a7604a1..05a2ad1 100644
> --- a/src/mesa/drivers/dri/i915/i915_context.c
> +++ b/src/mesa/drivers/dri/i915/i915_context.c
> @@ -253,21 +253,20 @@ i915CreateContext(int api,
>  
> /* FINISHME: Are there other options that should be enabled for software
>  * FINISHME: vertex shaders?
>  */
> 
> ctx->Const.ShaderCompilerOptions[MESA_SHADER_VERTEX].EmitNoIndirectSampler =
>true;
>  
> struct gl_shader_compiler_options *const fs_options =
>& ctx->Const.ShaderCompilerOptions[MESA_SHADER_FRAGMENT];
> fs_options->MaxIfDepth = 0;
> -   fs_options->EmitNoNoise = true;
> fs_options->EmitNoPow = true;
> fs_options->EmitNoIndirectInput = true;
> fs_options->EmitNoIndirectOutput = true;
> fs_options->EmitNoIndirectUniform = true;
> fs_options->EmitNoIndirectTemp = true;
> fs_options->EmitNoIndirectSampler = true;
>  
> ctx->Const.MaxDrawBuffers = 1;
> ctx->Const.QueryCounterBits.SamplesPassed = 0;
>  
> diff --git a/src/mesa/drivers/dri/i965/brw_compiler.c 
> b/src/mesa/drivers/dri/i965/brw_compiler.c
> index 27cbd40..4fcc51b 100644
> --- a/src/mesa/drivers/dri/i965/brw_compiler.c
> +++ b/src/mesa/drivers/dri/i965/brw_compiler.c
> @@ -116,21 +116,20 @@ brw_compiler_create(void *mem_ctx, const struct 
> gen_device_info *devinfo)
>devinfo->gen >= 8 && env_var_as_boolean("INTEL_SCALAR_GS", true);
> compiler->scalar_stage[MESA_SHADER_FRAGMENT] = true;
> compiler->scalar_stage[MESA_SHADER_COMPUTE] = true;
>  
> /* We want the GLSL compiler to emit code that uses condition codes */
> for (int i = 0; i < MESA_SHADER_STAGES; i++) {
>compiler->glsl_compiler_options[i].MaxUnrollIterations = 32;
>compiler->glsl_compiler_options[i].MaxIfDepth =
>   devinfo->gen < 6 ? 16 : UINT_MAX;
>  
> -  compiler->glsl_compiler_options[i].EmitNoNoise = true;
>compiler->glsl_compiler_options[i].EmitNoIndirectInput = true;
>compiler->glsl_compiler_options[i].EmitNoIndirectUniform = false;
>compiler->glsl_compiler_options[i].LowerCombinedClipCullDistance = 
> true;
>  
>bool is_scalar = compiler->scalar_stage[i];
>  
>compiler->glsl_compiler_options[i].EmitNoIndirectOutput = is_scalar;
>compiler->glsl_compiler_options[i].EmitNoIndirectTemp = is_scalar;
>compiler->glsl_compiler_options[i].OptimizeForAOS = !is_scalar;
>  
> diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
> index 701f055..f2ecd6e 100644
> --- a/src/mesa/main/mtypes.h
> +++ b/src/mesa/main/mtypes.h
> @@ -2990,21 +2990,20 @@ struct gl_pipeline_shader_state
>  };
>  
>  /**
>   * Compiler options for a single GLSL shaders type
>   */
>  struct gl_shader_compiler_options
>  {
> /** Driver-selectable options: */
> GLboolean EmitNoLoops;
> GLboolean EmitNoCont;  /**< Emit CONT opcode? */
> -   GLboolean EmitNoNoise; /**< Emit NOISE opcodes? */
> GLboolean EmitNoPow;   /**< Emit POW opcodes? */
> GLboolean EmitNoSat;   /**< Emit SAT opcodes? */
> GLboolean LowerCombinedClipCullDistance; /** Lower gl_ClipDistance and
>* gl_CullDistance together from
>* float[8] to vec4[2]
>**/
>  
> /**
>  * \name Forms of indirect addressing the driver cannot do.
>  */
> diff --git a/src/mesa/program/ir_to_mesa.cpp b/src/mesa/program/ir_to_mesa.cpp
> index d0e83cc..be10432 100644
> --- a/src/mesa/program/ir_to_mesa.cpp
> +++ b/src/mesa/program/ir_to_mesa.cpp
> @@ -2989,22 +2989,21 @@ _mesa_ir_link_shader(struct gl_context *ctx, struct 
> gl_shader_program *prog)
> options, 
> ctx->Const.NativeIntegers)
>  || progress;
>  
>progress = lower_quadop_vector(ir, true) || progress;
>  
>if (options->MaxIfDepth == 0)
>   progress = lower_discard(ir) || progress;
>  
>progress = lower_if_to_cond_assign(ir, options->MaxIfDepth) || 
> progress;
>  
> -  if (options->EmitNoNoise)
> - progress = lower_noise(ir) || progress;
> + progress = lower_noise(ir) || progress;
>  
>/* If there are forms of indirect addressi

[Mesa-dev] [PATCH 14/14] mesa: remove gl_shader_compiler_options::EmitNoNoise

2016-10-17 Thread Marek Olšák
From: Marek Olšák 

it's always true
---
 src/mesa/drivers/dri/i915/i915_context.c | 1 -
 src/mesa/drivers/dri/i965/brw_compiler.c | 1 -
 src/mesa/main/mtypes.h   | 1 -
 src/mesa/program/ir_to_mesa.cpp  | 3 +--
 src/mesa/state_tracker/st_extensions.c   | 2 --
 5 files changed, 1 insertion(+), 7 deletions(-)

diff --git a/src/mesa/drivers/dri/i915/i915_context.c 
b/src/mesa/drivers/dri/i915/i915_context.c
index a7604a1..05a2ad1 100644
--- a/src/mesa/drivers/dri/i915/i915_context.c
+++ b/src/mesa/drivers/dri/i915/i915_context.c
@@ -253,21 +253,20 @@ i915CreateContext(int api,
 
/* FINISHME: Are there other options that should be enabled for software
 * FINISHME: vertex shaders?
 */
ctx->Const.ShaderCompilerOptions[MESA_SHADER_VERTEX].EmitNoIndirectSampler =
   true;
 
struct gl_shader_compiler_options *const fs_options =
   & ctx->Const.ShaderCompilerOptions[MESA_SHADER_FRAGMENT];
fs_options->MaxIfDepth = 0;
-   fs_options->EmitNoNoise = true;
fs_options->EmitNoPow = true;
fs_options->EmitNoIndirectInput = true;
fs_options->EmitNoIndirectOutput = true;
fs_options->EmitNoIndirectUniform = true;
fs_options->EmitNoIndirectTemp = true;
fs_options->EmitNoIndirectSampler = true;
 
ctx->Const.MaxDrawBuffers = 1;
ctx->Const.QueryCounterBits.SamplesPassed = 0;
 
diff --git a/src/mesa/drivers/dri/i965/brw_compiler.c 
b/src/mesa/drivers/dri/i965/brw_compiler.c
index 27cbd40..4fcc51b 100644
--- a/src/mesa/drivers/dri/i965/brw_compiler.c
+++ b/src/mesa/drivers/dri/i965/brw_compiler.c
@@ -116,21 +116,20 @@ brw_compiler_create(void *mem_ctx, const struct 
gen_device_info *devinfo)
   devinfo->gen >= 8 && env_var_as_boolean("INTEL_SCALAR_GS", true);
compiler->scalar_stage[MESA_SHADER_FRAGMENT] = true;
compiler->scalar_stage[MESA_SHADER_COMPUTE] = true;
 
/* We want the GLSL compiler to emit code that uses condition codes */
for (int i = 0; i < MESA_SHADER_STAGES; i++) {
   compiler->glsl_compiler_options[i].MaxUnrollIterations = 32;
   compiler->glsl_compiler_options[i].MaxIfDepth =
  devinfo->gen < 6 ? 16 : UINT_MAX;
 
-  compiler->glsl_compiler_options[i].EmitNoNoise = true;
   compiler->glsl_compiler_options[i].EmitNoIndirectInput = true;
   compiler->glsl_compiler_options[i].EmitNoIndirectUniform = false;
   compiler->glsl_compiler_options[i].LowerCombinedClipCullDistance = true;
 
   bool is_scalar = compiler->scalar_stage[i];
 
   compiler->glsl_compiler_options[i].EmitNoIndirectOutput = is_scalar;
   compiler->glsl_compiler_options[i].EmitNoIndirectTemp = is_scalar;
   compiler->glsl_compiler_options[i].OptimizeForAOS = !is_scalar;
 
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index 701f055..f2ecd6e 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -2990,21 +2990,20 @@ struct gl_pipeline_shader_state
 };
 
 /**
  * Compiler options for a single GLSL shaders type
  */
 struct gl_shader_compiler_options
 {
/** Driver-selectable options: */
GLboolean EmitNoLoops;
GLboolean EmitNoCont;  /**< Emit CONT opcode? */
-   GLboolean EmitNoNoise; /**< Emit NOISE opcodes? */
GLboolean EmitNoPow;   /**< Emit POW opcodes? */
GLboolean EmitNoSat;   /**< Emit SAT opcodes? */
GLboolean LowerCombinedClipCullDistance; /** Lower gl_ClipDistance and
   * gl_CullDistance together from
   * float[8] to vec4[2]
   **/
 
/**
 * \name Forms of indirect addressing the driver cannot do.
 */
diff --git a/src/mesa/program/ir_to_mesa.cpp b/src/mesa/program/ir_to_mesa.cpp
index d0e83cc..be10432 100644
--- a/src/mesa/program/ir_to_mesa.cpp
+++ b/src/mesa/program/ir_to_mesa.cpp
@@ -2989,22 +2989,21 @@ _mesa_ir_link_shader(struct gl_context *ctx, struct 
gl_shader_program *prog)
options, ctx->Const.NativeIntegers)
   || progress;
 
 progress = lower_quadop_vector(ir, true) || progress;
 
 if (options->MaxIfDepth == 0)
progress = lower_discard(ir) || progress;
 
 progress = lower_if_to_cond_assign(ir, options->MaxIfDepth) || 
progress;
 
-if (options->EmitNoNoise)
-   progress = lower_noise(ir) || progress;
+ progress = lower_noise(ir) || progress;
 
 /* If there are forms of indirect addressing that the driver
  * cannot handle, perform the lowering pass.
  */
 if (options->EmitNoIndirectInput || options->EmitNoIndirectOutput
 || options->EmitNoIndirectTemp || options->EmitNoIndirectUniform)
   progress =
 
lower_variable_index_to_cond_assign(prog->_LinkedShaders[i]->Stage, ir,
 options->EmitNoIndirectInput,