From 7e5c81235ff774ab463596222eac0e8141a90d1a Mon Sep 17 00:00:00 2001 From: Iago Toral Quiroga Date: Mon, 8 Jan 2018 09:45:15 +0100 Subject: [PATCH] glsl: remove Lower{TCS,TES}PatchVerticesIn Intel was the only user and now NIR can do the lowering. v2: do not try to handle it as a system value directly for the SPIR-V path. In GL we rather handle it as a uniform like we do for the GLSL path (Jason). v3: drop LowerTESPatchVerticesIn as well (Jason) Reviewed-by: Jason Ekstrand --- src/compiler/glsl/builtin_variables.cpp | 13 +------------ src/compiler/glsl/linker.cpp | 18 +++--------------- src/mesa/drivers/dri/i965/brw_context.c | 2 -- src/mesa/main/mtypes.h | 2 -- 4 files changed, 4 insertions(+), 31 deletions(-) diff --git a/src/compiler/glsl/builtin_variables.cpp b/src/compiler/glsl/builtin_variables.cpp index a885f32875c..a686cb6a457 100644 --- a/src/compiler/glsl/builtin_variables.cpp +++ b/src/compiler/glsl/builtin_variables.cpp @@ -38,11 +38,6 @@ static const struct gl_builtin_uniform_element gl_NumSamples_elements[] = { {NULL, {STATE_NUM_SAMPLES, 0, 0}, SWIZZLE_XXXX} }; -/* only for TCS */ -static const struct gl_builtin_uniform_element gl_PatchVerticesIn_elements[] = { - {NULL, {STATE_INTERNAL, STATE_TCS_PATCH_VERTICES_IN}, SWIZZLE_XXXX} -}; - static const struct gl_builtin_uniform_element gl_DepthRange_elements[] = { {"near", {STATE_DEPTH_RANGE, 0, 0}, SWIZZLE_XXXX}, {"far", {STATE_DEPTH_RANGE, 0, 0}, SWIZZLE_YYYY}, @@ -240,7 +235,6 @@ static const struct gl_builtin_uniform_element gl_NormalMatrix_elements[] = { #define STATEVAR(name) {#name, name ## _elements, ARRAY_SIZE(name ## _elements)} static const struct gl_builtin_uniform_desc _mesa_builtin_uniform_desc[] = { - STATEVAR(gl_PatchVerticesIn), STATEVAR(gl_NumSamples), STATEVAR(gl_DepthRange), STATEVAR(gl_ClipPlane), @@ -1067,12 +1061,7 @@ builtin_variable_generator::generate_tcs_special_vars() { add_system_value(SYSTEM_VALUE_PRIMITIVE_ID, int_t, "gl_PrimitiveID"); add_system_value(SYSTEM_VALUE_INVOCATION_ID, int_t, "gl_InvocationID"); - - if (state->ctx->Const.LowerTCSPatchVerticesIn) { - add_uniform(int_t, "gl_PatchVerticesIn"); - } else { - add_system_value(SYSTEM_VALUE_VERTICES_IN, int_t, "gl_PatchVerticesIn"); - } + add_system_value(SYSTEM_VALUE_VERTICES_IN, int_t, "gl_PatchVerticesIn"); add_output(VARYING_SLOT_TESS_LEVEL_OUTER, array(float_t, 4), "gl_TessLevelOuter")->data.patch = 1; diff --git a/src/compiler/glsl/linker.cpp b/src/compiler/glsl/linker.cpp index 33fd76deae9..6f9680aae78 100644 --- a/src/compiler/glsl/linker.cpp +++ b/src/compiler/glsl/linker.cpp @@ -2502,7 +2502,7 @@ resize_tes_inputs(struct gl_context *ctx, ir->accept(&input_resize_visitor); } - if (tcs || ctx->Const.LowerTESPatchVerticesIn) { + if (tcs) { /* Convert the gl_PatchVerticesIn system value into a constant, since * the value is known at this point. */ @@ -2513,20 +2513,8 @@ resize_tes_inputs(struct gl_context *ctx, void *mem_ctx = ralloc_parent(var); var->data.location = 0; var->data.explicit_location = false; - if (tcs) { - var->data.mode = ir_var_auto; - var->constant_value = new(mem_ctx) ir_constant(num_vertices); - } else { - var->data.mode = ir_var_uniform; - var->data.how_declared = ir_var_hidden; - var->allocate_state_slots(1); - ir_state_slot *slot0 = &var->get_state_slots()[0]; - slot0->swizzle = SWIZZLE_XXXX; - slot0->tokens[0] = STATE_INTERNAL; - slot0->tokens[1] = STATE_TES_PATCH_VERTICES_IN; - for (int i = 2; i < STATE_LENGTH; i++) - slot0->tokens[i] = 0; - } + var->data.mode = ir_var_auto; + var->constant_value = new(mem_ctx) ir_constant(num_vertices); } } } diff --git a/src/mesa/drivers/dri/i965/brw_context.c b/src/mesa/drivers/dri/i965/brw_context.c index b555f7bfdf1..f765cff76b9 100644 --- a/src/mesa/drivers/dri/i965/brw_context.c +++ b/src/mesa/drivers/dri/i965/brw_context.c @@ -537,8 +537,6 @@ brw_initialize_context_constants(struct brw_context *brw) ctx->Const.MaxClipPlanes = 8; ctx->Const.GLSLTessLevelsAsInputs = true; - ctx->Const.LowerTCSPatchVerticesIn = devinfo->gen >= 8; - ctx->Const.LowerTESPatchVerticesIn = true; ctx->Const.PrimitiveRestartForPatches = true; ctx->Const.Program[MESA_SHADER_VERTEX].MaxNativeInstructions = 16 * 1024; diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index a4f1e78f41b..226eb94da91 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -4020,8 +4020,6 @@ struct gl_constants GLuint MaxTessPatchComponents; GLuint MaxTessControlTotalOutputComponents; bool LowerTessLevel; /**< Lower gl_TessLevel* from float[n] to vecn? */ - bool LowerTCSPatchVerticesIn; /**< Lower gl_PatchVerticesIn to a uniform */ - bool LowerTESPatchVerticesIn; /**< Lower gl_PatchVerticesIn to a uniform */ bool PrimitiveRestartForPatches; bool LowerCsDerivedVariables; /**< Lower gl_GlobalInvocationID and * gl_LocalInvocationIndex based on -- 2.30.2