This patch is Reviewed-by: Ian Romanick <ian.d.roman...@intel.com>
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 <marek.ol...@amd.com> > > 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, > options->EmitNoIndirectOutput, > diff --git a/src/mesa/state_tracker/st_extensions.c > b/src/mesa/state_tracker/st_extensions.c > index 238e279..6cc7ca9 100644 > --- a/src/mesa/state_tracker/st_extensions.c > +++ b/src/mesa/state_tracker/st_extensions.c > @@ -256,22 +256,20 @@ void st_init_limits(struct pipe_screen *screen, > pc->MaxLocalParams = MIN2(pc->MaxParameters, MAX_PROGRAM_LOCAL_PARAMS); > pc->MaxEnvParams = MIN2(pc->MaxParameters, MAX_PROGRAM_ENV_PARAMS); > > if (screen->get_shader_param(screen, sh, PIPE_SHADER_CAP_INTEGERS)) { > pc->LowInt.RangeMin = 31; > pc->LowInt.RangeMax = 30; > pc->LowInt.Precision = 0; > pc->MediumInt = pc->HighInt = pc->LowInt; > } > > - options->EmitNoNoise = TRUE; > - > /* TODO: make these more fine-grained if anyone needs it */ > options->MaxIfDepth = > screen->get_shader_param(screen, sh, > PIPE_SHADER_CAP_MAX_CONTROL_FLOW_DEPTH); > options->EmitNoLoops = > !screen->get_shader_param(screen, sh, > PIPE_SHADER_CAP_MAX_CONTROL_FLOW_DEPTH); > > options->EmitNoCont = > !screen->get_shader_param(screen, sh, > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev