We can access this value through gl_shader_program. Signed-off-by: Lionel Landwerlin <lionel.g.landwer...@intel.com> Cc: Jason Ekstrand <ja...@jlekstrand.net> --- src/mesa/drivers/dri/i965/brw_compiler.h | 1 - src/mesa/drivers/dri/i965/brw_cs.c | 1 - src/mesa/drivers/dri/i965/brw_gs.c | 1 - src/mesa/drivers/dri/i965/brw_tcs.c | 1 - src/mesa/drivers/dri/i965/brw_tes.c | 1 - src/mesa/drivers/dri/i965/brw_vs.c | 5 +---- src/mesa/drivers/dri/i965/brw_wm.c | 4 +--- src/mesa/drivers/dri/i965/gen7_l3_state.c | 5 ++++- 8 files changed, 6 insertions(+), 13 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_compiler.h b/src/mesa/drivers/dri/i965/brw_compiler.h index 445c166..437528b 100644 --- a/src/mesa/drivers/dri/i965/brw_compiler.h +++ b/src/mesa/drivers/dri/i965/brw_compiler.h @@ -344,7 +344,6 @@ struct brw_stage_prog_data { GLuint nr_params; /**< number of float params/constants */ GLuint nr_pull_params; - unsigned nr_image_params; unsigned curb_read_length; unsigned total_scratch; diff --git a/src/mesa/drivers/dri/i965/brw_cs.c b/src/mesa/drivers/dri/i965/brw_cs.c index 4e746fe..febf53a 100644 --- a/src/mesa/drivers/dri/i965/brw_cs.c +++ b/src/mesa/drivers/dri/i965/brw_cs.c @@ -106,7 +106,6 @@ brw_codegen_cs_prog(struct brw_context *brw, prog_data.base.image_param = rzalloc_array(NULL, struct brw_image_param, cs->base.NumImages); prog_data.base.nr_params = param_count; - prog_data.base.nr_image_params = cs->base.NumImages; brw_nir_setup_glsl_uniforms(cp->program.Base.nir, prog, &cp->program.Base, &prog_data.base, true); diff --git a/src/mesa/drivers/dri/i965/brw_gs.c b/src/mesa/drivers/dri/i965/brw_gs.c index 741216c..486416a 100644 --- a/src/mesa/drivers/dri/i965/brw_gs.c +++ b/src/mesa/drivers/dri/i965/brw_gs.c @@ -128,7 +128,6 @@ brw_codegen_gs_prog(struct brw_context *brw, prog_data.base.base.image_param = rzalloc_array(NULL, struct brw_image_param, gs->NumImages); prog_data.base.base.nr_params = param_count; - prog_data.base.base.nr_image_params = gs->NumImages; brw_nir_setup_glsl_uniforms(gp->program.Base.nir, prog, &gp->program.Base, &prog_data.base.base, diff --git a/src/mesa/drivers/dri/i965/brw_tcs.c b/src/mesa/drivers/dri/i965/brw_tcs.c index 7e6c69a..88df595 100644 --- a/src/mesa/drivers/dri/i965/brw_tcs.c +++ b/src/mesa/drivers/dri/i965/brw_tcs.c @@ -216,7 +216,6 @@ brw_codegen_tcs_prog(struct brw_context *brw, prog_data.base.base.image_param = rzalloc_array(NULL, struct brw_image_param, tcs->NumImages); - prog_data.base.base.nr_image_params = tcs->NumImages; brw_nir_setup_glsl_uniforms(nir, shader_prog, &tcp->program.Base, &prog_data.base.base, diff --git a/src/mesa/drivers/dri/i965/brw_tes.c b/src/mesa/drivers/dri/i965/brw_tes.c index 87ada17..88739b9 100644 --- a/src/mesa/drivers/dri/i965/brw_tes.c +++ b/src/mesa/drivers/dri/i965/brw_tes.c @@ -161,7 +161,6 @@ brw_codegen_tes_prog(struct brw_context *brw, prog_data.base.base.image_param = rzalloc_array(NULL, struct brw_image_param, tes->NumImages); prog_data.base.base.nr_params = param_count; - prog_data.base.base.nr_image_params = tes->NumImages; prog_data.base.cull_distance_mask = ((1 << tep->program.Base.CullDistanceArraySize) - 1) << diff --git a/src/mesa/drivers/dri/i965/brw_vs.c b/src/mesa/drivers/dri/i965/brw_vs.c index ba7315e..c242190 100644 --- a/src/mesa/drivers/dri/i965/brw_vs.c +++ b/src/mesa/drivers/dri/i965/brw_vs.c @@ -123,9 +123,6 @@ brw_codegen_vs_prog(struct brw_context *brw, */ int param_count = vp->program.Base.nir->num_uniforms / 4; - if (vs) - prog_data.base.base.nr_image_params = vs->base.NumImages; - /* vec4_visitor::setup_uniform_clipplane_values() also uploads user clip * planes as uniforms. */ @@ -137,7 +134,7 @@ brw_codegen_vs_prog(struct brw_context *brw, rzalloc_array(NULL, const gl_constant_value *, param_count); stage_prog_data->image_param = rzalloc_array(NULL, struct brw_image_param, - stage_prog_data->nr_image_params); + vs ? vs->base.NumImages : 0); stage_prog_data->nr_params = param_count; if (prog) { diff --git a/src/mesa/drivers/dri/i965/brw_wm.c b/src/mesa/drivers/dri/i965/brw_wm.c index 6ffe7c8..1af6bf7 100644 --- a/src/mesa/drivers/dri/i965/brw_wm.c +++ b/src/mesa/drivers/dri/i965/brw_wm.c @@ -106,8 +106,6 @@ brw_codegen_wm_prog(struct brw_context *brw, * by the state cache. */ int param_count = fp->program.Base.nir->num_uniforms / 4; - if (fs) - prog_data.base.nr_image_params = fs->base.NumImages; /* The backend also sometimes adds params for texture size. */ param_count += 2 * ctx->Const.Program[MESA_SHADER_FRAGMENT].MaxTextureImageUnits; prog_data.base.param = @@ -116,7 +114,7 @@ brw_codegen_wm_prog(struct brw_context *brw, rzalloc_array(NULL, const gl_constant_value *, param_count); prog_data.base.image_param = rzalloc_array(NULL, struct brw_image_param, - prog_data.base.nr_image_params); + fs ? fs->base.NumImages : 0); prog_data.base.nr_params = param_count; if (prog) { diff --git a/src/mesa/drivers/dri/i965/gen7_l3_state.c b/src/mesa/drivers/dri/i965/gen7_l3_state.c index ad70491..92e8788 100644 --- a/src/mesa/drivers/dri/i965/gen7_l3_state.c +++ b/src/mesa/drivers/dri/i965/gen7_l3_state.c @@ -51,10 +51,13 @@ get_pipeline_state_l3_weights(const struct brw_context *brw) for (unsigned i = 0; i < ARRAY_SIZE(stage_states); i++) { const struct gl_shader_program *prog = brw->ctx._Shader->CurrentProgram[stage_states[i]->stage]; + const struct gl_linked_shader *shader = + prog ? prog->_LinkedShaders[stage_states[i]->stage] : NULL; const struct brw_stage_prog_data *prog_data = stage_states[i]->prog_data; needs_dc |= (prog && prog->NumAtomicBuffers) || - (prog_data && (prog_data->total_scratch || prog_data->nr_image_params)); + (shader && shader->NumImages) || + (prog_data && prog_data->total_scratch); needs_slm |= prog_data && prog_data->total_shared; } -- 2.9.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev