From 4016f08854a41b50d7636fc5e3cf0dfab5029cab Mon Sep 17 00:00:00 2001 From: Timothy Arceri Date: Thu, 20 Oct 2016 16:30:56 +1100 Subject: [PATCH] glsl/st/mesa: use common system values read field MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit And set system values read directly in shader_info. st/mesa changes where: Reviewed-by: Marek Olšák Reviewed-by: Jason Ekstrand --- src/compiler/glsl/ir_set_program_inouts.cpp | 4 ++-- src/compiler/shader_info.c | 1 - src/mesa/main/mtypes.h | 1 - src/mesa/program/prog_to_nir.c | 1 - src/mesa/program/program.c | 4 ++-- src/mesa/program/programopt.c | 2 +- src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 4 ++-- src/mesa/state_tracker/st_mesa_to_tgsi.c | 2 +- 8 files changed, 8 insertions(+), 11 deletions(-) diff --git a/src/compiler/glsl/ir_set_program_inouts.cpp b/src/compiler/glsl/ir_set_program_inouts.cpp index d8c4d709217..ec589c776d0 100644 --- a/src/compiler/glsl/ir_set_program_inouts.cpp +++ b/src/compiler/glsl/ir_set_program_inouts.cpp @@ -124,7 +124,7 @@ mark(struct gl_program *prog, ir_variable *var, int offset, int len, prog->info.fs.uses_sample_qualifier |= var->data.sample; } } else if (var->data.mode == ir_var_system_value) { - prog->SystemValuesRead |= bitfield; + prog->info.system_values_read |= bitfield; } else { assert(var->data.mode == ir_var_shader_out); if (is_patch_generic) { @@ -432,7 +432,7 @@ do_set_program_inouts(exec_list *instructions, struct gl_program *prog, prog->info.outputs_read = 0; prog->info.patch_inputs_read = 0; prog->info.patch_outputs_written = 0; - prog->SystemValuesRead = 0; + prog->info.system_values_read = 0; if (shader_stage == MESA_SHADER_FRAGMENT) { prog->info.fs.uses_sample_qualifier = false; prog->info.fs.uses_discard = false; diff --git a/src/compiler/shader_info.c b/src/compiler/shader_info.c index fcda73a1d91..83e40cbedc8 100644 --- a/src/compiler/shader_info.c +++ b/src/compiler/shader_info.c @@ -30,6 +30,5 @@ copy_shader_info(const struct gl_shader_program *shader_prog, { shader_info *info = &sh->Program->info; - info->system_values_read = sh->Program->SystemValuesRead; info->uses_texture_gather = sh->Program->UsesGather; } diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index 67910de6126..fc216d011b9 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -1923,7 +1923,6 @@ struct gl_program struct shader_info info; GLbitfield64 SecondaryOutputsWritten; /**< Subset of OutputsWritten outputs written with non-zero index. */ - GLbitfield SystemValuesRead; /**< Bitmask of SYSTEM_VALUE_x inputs used */ GLbitfield TexturesUsed[MAX_COMBINED_TEXTURE_IMAGE_UNITS]; /**< TEXTURE_x_BIT bitmask */ GLbitfield SamplersUsed; /**< Bitfield of which samplers are used */ GLbitfield ShadowSamplers; /**< Texture units used for shadow sampling. */ diff --git a/src/mesa/program/prog_to_nir.c b/src/mesa/program/prog_to_nir.c index 3c62456106c..08df05dc776 100644 --- a/src/mesa/program/prog_to_nir.c +++ b/src/mesa/program/prog_to_nir.c @@ -1051,7 +1051,6 @@ prog_to_nir(const struct gl_program *prog, s->info->num_abos = 0; s->info->num_ssbos = 0; s->info->num_images = 0; - s->info->system_values_read = prog->SystemValuesRead; s->info->uses_texture_gather = false; s->info->uses_clip_distance_out = false; s->info->separate_shader = false; diff --git a/src/mesa/program/program.c b/src/mesa/program/program.c index 4915a09170f..3b7745b905a 100644 --- a/src/mesa/program/program.c +++ b/src/mesa/program/program.c @@ -521,8 +521,8 @@ _mesa_get_min_invocations_per_fragment(struct gl_context *ctx, if (prog->info.fs.uses_sample_qualifier && !ignore_sample_qualifier) return MAX2(_mesa_geometric_samples(ctx->DrawBuffer), 1); - if (prog->SystemValuesRead & (SYSTEM_BIT_SAMPLE_ID | - SYSTEM_BIT_SAMPLE_POS)) + if (prog->info.system_values_read & (SYSTEM_BIT_SAMPLE_ID | + SYSTEM_BIT_SAMPLE_POS)) return MAX2(_mesa_geometric_samples(ctx->DrawBuffer), 1); else if (ctx->Multisample.SampleShading) return MAX2(ceil(ctx->Multisample.MinSampleShadingValue * diff --git a/src/mesa/program/programopt.c b/src/mesa/program/programopt.c index b4bbbdae76b..1b50b5b7a0e 100644 --- a/src/mesa/program/programopt.c +++ b/src/mesa/program/programopt.c @@ -596,7 +596,7 @@ _mesa_program_fragment_position_to_sysval(struct gl_program *prog) return; prog->info.inputs_read &= ~BITFIELD64_BIT(VARYING_SLOT_POS); - prog->SystemValuesRead |= 1 << SYSTEM_VALUE_FRAG_COORD; + prog->info.system_values_read |= 1 << SYSTEM_VALUE_FRAG_COORD; for (i = 0; i < prog->NumInstructions; i++) { struct prog_instruction *inst = prog->Instructions + i; diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp index 61c3557b7d0..5b53c40485d 100644 --- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp +++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp @@ -6170,7 +6170,7 @@ st_translate_program( /* Declare misc input registers */ { - GLbitfield sysInputs = proginfo->SystemValuesRead; + GLbitfield sysInputs = proginfo->info.system_values_read; for (i = 0; sysInputs; i++) { if (sysInputs & (1 << i)) { @@ -6520,7 +6520,7 @@ get_mesa_program_tgsi(struct gl_context *ctx, /* This must be done before the uniform storage is associated. */ if (shader->Stage == MESA_SHADER_FRAGMENT && (prog->info.inputs_read & VARYING_BIT_POS || - prog->SystemValuesRead & (1 << SYSTEM_VALUE_FRAG_COORD))) { + prog->info.system_values_read & (1 << SYSTEM_VALUE_FRAG_COORD))) { static const gl_state_index wposTransformState[STATE_LENGTH] = { STATE_INTERNAL, STATE_FB_WPOS_Y_TRANSFORM }; diff --git a/src/mesa/state_tracker/st_mesa_to_tgsi.c b/src/mesa/state_tracker/st_mesa_to_tgsi.c index 18948d6a2c1..9dc8f224ba3 100644 --- a/src/mesa/state_tracker/st_mesa_to_tgsi.c +++ b/src/mesa/state_tracker/st_mesa_to_tgsi.c @@ -914,7 +914,7 @@ st_translate_mesa_program( /* Declare misc input registers */ { - GLbitfield sysInputs = program->SystemValuesRead; + GLbitfield sysInputs = program->info.system_values_read; for (i = 0; sysInputs; i++) { if (sysInputs & (1 << i)) { -- 2.30.2