diff --git a/src/gallium/drivers/crocus/crocus_state.c b/src/gallium/drivers/crocus/crocus_state.c index 17e40455ace..948aed0887d 100644 --- a/src/gallium/drivers/crocus/crocus_state.c +++ b/src/gallium/drivers/crocus/crocus_state.c @@ -4850,8 +4850,6 @@ crocus_populate_fs_key(const struct crocus_context *ice, key->nr_color_regions = fb->nr_cbufs; - key->clamp_fragment_color = rast->cso.clamp_fragment_color; - key->alpha_to_coverage = blend->cso.alpha_to_coverage ? ELK_ALWAYS : ELK_NEVER; diff --git a/src/gallium/drivers/iris/iris_context.h b/src/gallium/drivers/iris/iris_context.h index 808f2057480..96fc1669d89 100644 --- a/src/gallium/drivers/iris/iris_context.h +++ b/src/gallium/drivers/iris/iris_context.h @@ -281,13 +281,12 @@ struct iris_fs_prog_key { bool flat_shade:1; bool alpha_test_replicate_alpha:1; bool alpha_to_coverage:1; - bool clamp_fragment_color:1; bool persample_interp:1; bool multisample_fbo:1; bool force_dual_color_blend:1; bool coherent_fb_fetch:1; enum intel_vue_layout vue_layout:2; - uint64_t padding:41; + uint64_t padding:42; }; struct iris_cs_prog_key { diff --git a/src/gallium/drivers/iris/iris_program.c b/src/gallium/drivers/iris/iris_program.c index 86e75b6b3ed..2451aac50f0 100644 --- a/src/gallium/drivers/iris/iris_program.c +++ b/src/gallium/drivers/iris/iris_program.c @@ -579,7 +579,6 @@ iris_to_brw_fs_key(const struct iris_screen *screen, .flat_shade = key->flat_shade, .alpha_test_replicate_alpha = key->alpha_test_replicate_alpha, .alpha_to_coverage = key->alpha_to_coverage ? INTEL_ALWAYS : INTEL_NEVER, - .clamp_fragment_color = key->clamp_fragment_color, .persample_interp = key->persample_interp ? INTEL_ALWAYS : INTEL_NEVER, .multisample_fbo = key->multisample_fbo ? INTEL_ALWAYS : INTEL_NEVER, .force_dual_color_blend = key->force_dual_color_blend, @@ -666,7 +665,6 @@ iris_to_elk_fs_key(const struct iris_screen *screen, .flat_shade = key->flat_shade, .alpha_test_replicate_alpha = key->alpha_test_replicate_alpha, .alpha_to_coverage = key->alpha_to_coverage ? ELK_ALWAYS : ELK_NEVER, - .clamp_fragment_color = key->clamp_fragment_color, .persample_interp = key->persample_interp ? ELK_ALWAYS : ELK_NEVER, .multisample_fbo = key->multisample_fbo ? ELK_ALWAYS : ELK_NEVER, .force_dual_color_blend = key->force_dual_color_blend, diff --git a/src/gallium/drivers/iris/iris_state.c b/src/gallium/drivers/iris/iris_state.c index 92885754499..6d15195cf24 100644 --- a/src/gallium/drivers/iris/iris_state.c +++ b/src/gallium/drivers/iris/iris_state.c @@ -2252,7 +2252,6 @@ struct iris_rasterizer_state { bool depth_clip_far; /* for CC_VIEWPORT */ bool flatshade; /* for shader state */ bool flatshade_first; /* for stream output */ - bool clamp_fragment_color; /* for shader state */ bool light_twoside; /* for shader state */ bool rasterizer_discard; /* for 3DSTATE_STREAMOUT and 3DSTATE_CLIP */ bool half_pixel_center; /* for 3DSTATE_MULTISAMPLE */ @@ -2316,7 +2315,6 @@ iris_create_rasterizer_state(struct pipe_context *ctx, cso->depth_clip_far = state->depth_clip_far; cso->flatshade = state->flatshade; cso->flatshade_first = state->flatshade_first; - cso->clamp_fragment_color = state->clamp_fragment_color; cso->light_twoside = state->light_twoside; cso->rasterizer_discard = state->rasterizer_discard; cso->half_pixel_center = state->half_pixel_center; @@ -5044,8 +5042,6 @@ iris_populate_fs_key(const struct iris_context *ice, key->nr_color_regions = fb->nr_cbufs; - key->clamp_fragment_color = rast->clamp_fragment_color; - key->alpha_to_coverage = blend->alpha_to_coverage; key->alpha_test_replicate_alpha = fb->nr_cbufs > 1 && zsa->alpha_enabled; diff --git a/src/intel/compiler/brw_compiler.h b/src/intel/compiler/brw_compiler.h index 5227360785e..75a9abee944 100644 --- a/src/intel/compiler/brw_compiler.h +++ b/src/intel/compiler/brw_compiler.h @@ -399,7 +399,6 @@ struct brw_wm_prog_key { unsigned nr_color_regions:5; bool alpha_test_replicate_alpha:1; enum intel_sometimes alpha_to_coverage:2; - bool clamp_fragment_color:1; bool force_dual_color_blend:1; @@ -427,6 +426,7 @@ struct brw_wm_prog_key { bool coarse_pixel:1; bool null_push_constant_tbimr_workaround:1; bool api_sample_shading:1; + unsigned pad:1; }; static inline bool diff --git a/src/intel/compiler/brw_debug_recompile.c b/src/intel/compiler/brw_debug_recompile.c index dd66f05f17f..56c3609f03c 100644 --- a/src/intel/compiler/brw_debug_recompile.c +++ b/src/intel/compiler/brw_debug_recompile.c @@ -136,7 +136,6 @@ debug_fs_recompile(const struct brw_compiler *c, void *log, found |= check("number of color buffers", nr_color_regions); found |= check("MRT alpha test", alpha_test_replicate_alpha); found |= check("alpha to coverage", alpha_to_coverage); - found |= check("fragment color clamping", clamp_fragment_color); found |= check("per-sample interpolation", persample_interp); found |= check("multisampled FBO", multisample_fbo); found |= check("force dual color blending", force_dual_color_blend); diff --git a/src/intel/compiler/brw_lower_logical_sends.cpp b/src/intel/compiler/brw_lower_logical_sends.cpp index 1475d2a974e..437a4345b0c 100644 --- a/src/intel/compiler/brw_lower_logical_sends.cpp +++ b/src/intel/compiler/brw_lower_logical_sends.cpp @@ -275,20 +275,9 @@ lower_urb_write_logical_send_xe2(const brw_builder &bld, brw_urb_inst *urb) } static void -setup_color_payload(const brw_builder &bld, const brw_wm_prog_key *key, - brw_reg *dst, brw_reg color, unsigned components) +setup_color_payload(const brw_builder &bld, brw_reg *dst, brw_reg color, + unsigned components) { - if (key->clamp_fragment_color) { - brw_reg tmp = bld.vgrf(BRW_TYPE_F, 4); - assert(color.type == BRW_TYPE_F); - - for (unsigned i = 0; i < components; i++) - set_saturate(true, - bld.MOV(offset(tmp, bld, i), offset(color, bld, i))); - - color = tmp; - } - for (unsigned i = 0; i < components; i++) dst[i] = offset(color, bld, i); } @@ -399,7 +388,7 @@ lower_fb_write_logical_send(const brw_builder &bld, brw_fb_write_inst *write, .annotate("FB write src0 alpha"); const brw_reg tmp = ubld.vgrf(BRW_TYPE_F); ubld.MOV(tmp, horiz_offset(src0_alpha, i * 8)); - setup_color_payload(ubld, key, &sources[length], tmp, 1); + setup_color_payload(ubld, &sources[length], tmp, 1); length++; } } @@ -430,11 +419,11 @@ lower_fb_write_logical_send(const brw_builder &bld, brw_fb_write_inst *write, payload_header_size = length; - setup_color_payload(bld, key, &sources[length], color0, components); + setup_color_payload(bld, &sources[length], color0, components); length += 4; if (color1.file != BAD_FILE) { - setup_color_payload(bld, key, &sources[length], color1, components); + setup_color_payload(bld, &sources[length], color1, components); length += 4; } diff --git a/src/intel/compiler/elk/elk_compiler.h b/src/intel/compiler/elk/elk_compiler.h index 8bf65b27588..5001eaad4d7 100644 --- a/src/intel/compiler/elk/elk_compiler.h +++ b/src/intel/compiler/elk/elk_compiler.h @@ -496,7 +496,6 @@ struct elk_wm_prog_key { enum compare_func alpha_test_func:3; /* < For Gfx4/5 MRT alpha test */ bool alpha_test_replicate_alpha:1; enum elk_sometimes alpha_to_coverage:2; - bool clamp_fragment_color:1; bool force_dual_color_blend:1; @@ -518,7 +517,7 @@ struct elk_wm_prog_key { bool coherent_fb_fetch:1; bool ignore_sample_mask_out:1; - uint64_t padding:56; + uint64_t padding:57; }; struct elk_cs_prog_key { diff --git a/src/intel/compiler/elk/elk_debug_recompile.c b/src/intel/compiler/elk/elk_debug_recompile.c index 4c0404f9702..925f15beea0 100644 --- a/src/intel/compiler/elk/elk_debug_recompile.c +++ b/src/intel/compiler/elk/elk_debug_recompile.c @@ -164,7 +164,6 @@ debug_fs_recompile(const struct elk_compiler *c, void *log, found |= check("number of color buffers", nr_color_regions); found |= check("MRT alpha test", alpha_test_replicate_alpha); found |= check("alpha to coverage", alpha_to_coverage); - found |= check("fragment color clamping", clamp_fragment_color); found |= check("per-sample interpolation", persample_interp); found |= check("multisampled FBO", multisample_fbo); found |= check("line smoothing", line_aa); diff --git a/src/intel/compiler/elk/elk_lower_logical_sends.cpp b/src/intel/compiler/elk/elk_lower_logical_sends.cpp index bd8b8ba739c..0e1a355c867 100644 --- a/src/intel/compiler/elk/elk_lower_logical_sends.cpp +++ b/src/intel/compiler/elk/elk_lower_logical_sends.cpp @@ -124,20 +124,9 @@ lower_urb_write_logical_send(const fs_builder &bld, elk_fs_inst *inst) } static void -setup_color_payload(const fs_builder &bld, const elk_wm_prog_key *key, - elk_fs_reg *dst, elk_fs_reg color, unsigned components) +setup_color_payload(const fs_builder &bld, elk_fs_reg *dst, elk_fs_reg color, + unsigned components) { - if (key->clamp_fragment_color) { - elk_fs_reg tmp = bld.vgrf(ELK_REGISTER_TYPE_F, 4); - assert(color.type == ELK_REGISTER_TYPE_F); - - for (unsigned i = 0; i < components; i++) - set_saturate(true, - bld.MOV(offset(tmp, bld, i), offset(color, bld, i))); - - color = tmp; - } - for (unsigned i = 0; i < components; i++) dst[i] = offset(color, bld, i); } @@ -273,7 +262,7 @@ lower_fb_write_logical_send(const fs_builder &bld, elk_fs_inst *inst, .annotate("FB write src0 alpha"); const elk_fs_reg tmp = ubld.vgrf(ELK_REGISTER_TYPE_F); ubld.MOV(tmp, horiz_offset(src0_alpha, i * 8)); - setup_color_payload(ubld, key, &sources[length], tmp, 1); + setup_color_payload(ubld, &sources[length], tmp, 1); length++; } } @@ -303,11 +292,11 @@ lower_fb_write_logical_send(const fs_builder &bld, elk_fs_inst *inst, payload_header_size = length; - setup_color_payload(bld, key, &sources[length], color0, components); + setup_color_payload(bld, &sources[length], color0, components); length += 4; if (color1.file != BAD_FILE) { - setup_color_payload(bld, key, &sources[length], color1, components); + setup_color_payload(bld, &sources[length], color1, components); length += 4; } diff --git a/src/intel/vulkan_hasvk/anv_pipeline.c b/src/intel/vulkan_hasvk/anv_pipeline.c index c271db2bafe..68d13db4baf 100644 --- a/src/intel/vulkan_hasvk/anv_pipeline.c +++ b/src/intel/vulkan_hasvk/anv_pipeline.c @@ -286,9 +286,6 @@ populate_wm_prog_key(const struct anv_graphics_pipeline *pipeline, */ key->input_slots_valid = 0; - /* XXX Vulkan doesn't appear to specify */ - key->clamp_fragment_color = false; - key->ignore_sample_mask_out = false; assert(rp->color_attachment_count <= MAX_RTS);