From 5fa27e6670a8154cba9e96f4e25a9c58b7555da0 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Wed, 10 Feb 2021 10:28:23 -0800 Subject: [PATCH] freedreno: Drop custom driver lowering of GL's color clamping. The mesa/st frontend can do it for us now that we don't need to worry about breaking precompiles. Part-of: --- src/freedreno/ir3/ir3_nir.c | 4 ---- src/freedreno/ir3/ir3_shader.c | 9 --------- src/freedreno/ir3/ir3_shader.h | 12 ------------ src/gallium/drivers/freedreno/a3xx/fd3_draw.c | 2 -- src/gallium/drivers/freedreno/a4xx/fd4_draw.c | 2 -- src/gallium/drivers/freedreno/a5xx/fd5_draw.c | 2 -- src/gallium/drivers/freedreno/a6xx/fd6_draw.c | 2 -- src/gallium/drivers/freedreno/freedreno_screen.c | 3 --- 8 files changed, 36 deletions(-) diff --git a/src/freedreno/ir3/ir3_nir.c b/src/freedreno/ir3/ir3_nir.c index 87e7df8..bb99089 100644 --- a/src/freedreno/ir3/ir3_nir.c +++ b/src/freedreno/ir3/ir3_nir.c @@ -469,16 +469,12 @@ ir3_nir_lower_variant(struct ir3_shader_variant *so, nir_shader *s) if (s->info.stage == MESA_SHADER_VERTEX) { if (so->key.ucp_enables) progress |= OPT(s, nir_lower_clip_vs, so->key.ucp_enables, false, false, NULL); - if (so->key.vclamp_color) - progress |= OPT(s, nir_lower_clamp_color_outputs); } else if (s->info.stage == MESA_SHADER_FRAGMENT) { bool layer_zero = so->key.layer_zero && (s->info.inputs_read & VARYING_BIT_LAYER); bool view_zero = so->key.view_zero && (s->info.inputs_read & VARYING_BIT_VIEWPORT); if (so->key.ucp_enables && !so->shader->compiler->has_clip_cull) progress |= OPT(s, nir_lower_clip_fs, so->key.ucp_enables, false); - if (so->key.fclamp_color) - progress |= OPT(s, nir_lower_clamp_color_outputs); if (layer_zero || view_zero) progress |= OPT(s, ir3_nir_lower_view_layer_id, layer_zero, view_zero); } diff --git a/src/freedreno/ir3/ir3_shader.c b/src/freedreno/ir3/ir3_shader.c index 17f6f68..30b94fa 100644 --- a/src/freedreno/ir3/ir3_shader.c +++ b/src/freedreno/ir3/ir3_shader.c @@ -446,12 +446,6 @@ ir3_setup_used_key(struct ir3_shader *shader) key->view_zero = true; } - if ((info->outputs_written & ~(FRAG_RESULT_DEPTH | - FRAG_RESULT_STENCIL | - FRAG_RESULT_SAMPLE_MASK)) != 0) { - key->fclamp_color = true; - } - /* Only used for deciding on behavior of * nir_intrinsic_load_barycentric_sample */ @@ -460,9 +454,6 @@ ir3_setup_used_key(struct ir3_shader *shader) key->tessellation = ~0; key->has_gs = true; - if (info->outputs_written & VARYING_BITS_COLOR) - key->vclamp_color = true; - if (info->stage == MESA_SHADER_VERTEX) { key->vsaturate_s = ~0; key->vsaturate_t = ~0; diff --git a/src/freedreno/ir3/ir3_shader.h b/src/freedreno/ir3/ir3_shader.h index ac95ea5..8ce5ae5 100644 --- a/src/freedreno/ir3/ir3_shader.h +++ b/src/freedreno/ir3/ir3_shader.h @@ -288,11 +288,6 @@ struct ir3_shader_key { unsigned has_per_samp : 1; /* - * Vertex shader variant parameters: - */ - unsigned vclamp_color : 1; - - /* * Fragment shader variant parameters: */ unsigned sample_shading : 1; @@ -301,7 +296,6 @@ struct ir3_shader_key { * for front/back color inputs to frag shader: */ unsigned rasterflat : 1; - unsigned fclamp_color : 1; /* Indicates that this is a tessellation pipeline which requires a * whole different kind of vertex shader. In case of @@ -385,9 +379,6 @@ ir3_shader_key_changes_fs(struct ir3_shader_key *key, struct ir3_shader_key *las return true; } - if (last_key->fclamp_color != key->fclamp_color) - return true; - if (last_key->rasterflat != key->rasterflat) return true; @@ -416,9 +407,6 @@ ir3_shader_key_changes_vs(struct ir3_shader_key *key, struct ir3_shader_key *las return true; } - if (last_key->vclamp_color != key->vclamp_color) - return true; - if (last_key->ucp_enables != key->ucp_enables) return true; diff --git a/src/gallium/drivers/freedreno/a3xx/fd3_draw.c b/src/gallium/drivers/freedreno/a3xx/fd3_draw.c index 4bfdd5d..062cbe5 100644 --- a/src/gallium/drivers/freedreno/a3xx/fd3_draw.c +++ b/src/gallium/drivers/freedreno/a3xx/fd3_draw.c @@ -130,8 +130,6 @@ fd3_draw_vbo(struct fd_context *ctx, const struct pipe_draw_info *info, .indirect = indirect, .draw = draw, .key = { - .vclamp_color = ctx->rasterizer->clamp_vertex_color, - .fclamp_color = ctx->rasterizer->clamp_fragment_color, .has_per_samp = (fd3_ctx->fsaturate || fd3_ctx->vsaturate), .vsaturate_s = fd3_ctx->vsaturate_s, .vsaturate_t = fd3_ctx->vsaturate_t, diff --git a/src/gallium/drivers/freedreno/a4xx/fd4_draw.c b/src/gallium/drivers/freedreno/a4xx/fd4_draw.c index 051df9a..021f1b6 100644 --- a/src/gallium/drivers/freedreno/a4xx/fd4_draw.c +++ b/src/gallium/drivers/freedreno/a4xx/fd4_draw.c @@ -114,8 +114,6 @@ fd4_draw_vbo(struct fd_context *ctx, const struct pipe_draw_info *info, .indirect = indirect, .draw = draw, .key = { - .vclamp_color = ctx->rasterizer->clamp_vertex_color, - .fclamp_color = ctx->rasterizer->clamp_fragment_color, .rasterflat = ctx->rasterizer->flatshade, .ucp_enables = ctx->rasterizer->clip_plane_enable, .has_per_samp = (fd4_ctx->fsaturate || fd4_ctx->vsaturate || diff --git a/src/gallium/drivers/freedreno/a5xx/fd5_draw.c b/src/gallium/drivers/freedreno/a5xx/fd5_draw.c index be1f3ba..0f5ad2c 100644 --- a/src/gallium/drivers/freedreno/a5xx/fd5_draw.c +++ b/src/gallium/drivers/freedreno/a5xx/fd5_draw.c @@ -109,8 +109,6 @@ fd5_draw_vbo(struct fd_context *ctx, const struct pipe_draw_info *info, .indirect = indirect, .draw = draw, .key = { - .vclamp_color = ctx->rasterizer->clamp_vertex_color, - .fclamp_color = ctx->rasterizer->clamp_fragment_color, .rasterflat = ctx->rasterizer->flatshade, .ucp_enables = ctx->rasterizer->clip_plane_enable, .has_per_samp = (fd5_ctx->fsaturate || fd5_ctx->vsaturate || diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_draw.c b/src/gallium/drivers/freedreno/a6xx/fd6_draw.c index b6009fa..83e76af 100644 --- a/src/gallium/drivers/freedreno/a6xx/fd6_draw.c +++ b/src/gallium/drivers/freedreno/a6xx/fd6_draw.c @@ -186,8 +186,6 @@ fd6_draw_vbo(struct fd_context *ctx, const struct pipe_draw_info *info, .gs = ctx->prog.gs, .fs = ctx->prog.fs, .key = { - .vclamp_color = ctx->rasterizer->clamp_vertex_color, - .fclamp_color = ctx->rasterizer->clamp_fragment_color, .rasterflat = ctx->rasterizer->flatshade, .ucp_enables = ctx->rasterizer->clip_plane_enable, .has_per_samp = (fd6_ctx->fsaturate || fd6_ctx->vsaturate), diff --git a/src/gallium/drivers/freedreno/freedreno_screen.c b/src/gallium/drivers/freedreno/freedreno_screen.c index 23a6dba..3036950 100644 --- a/src/gallium/drivers/freedreno/freedreno_screen.c +++ b/src/gallium/drivers/freedreno/freedreno_screen.c @@ -386,9 +386,6 @@ fd_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param) case PIPE_CAP_SHAREABLE_SHADERS: case PIPE_CAP_GLSL_OPTIMIZE_CONSERVATIVELY: - /* manage the variants for these ourself, to avoid breaking precompile: */ - case PIPE_CAP_FRAGMENT_COLOR_CLAMPED: - case PIPE_CAP_VERTEX_COLOR_CLAMPED: if (is_ir3(screen)) return 1; return 0; -- 2.7.4