From 7f846bc50ae97a2b72f287428f1c7067c741abbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Wed, 25 Mar 2026 13:27:16 -0400 Subject: [PATCH] radeonsi: remove always-set SI_SAVE_FRAGMENT_STATE Reviewed-by: Pierre-Eric Part-of: --- src/gallium/drivers/radeonsi/si_blit.c | 37 +++++++++++-------------- src/gallium/drivers/radeonsi/si_clear.c | 6 ++-- src/gallium/drivers/radeonsi/si_pipe.h | 5 ++-- 3 files changed, 21 insertions(+), 27 deletions(-) diff --git a/src/gallium/drivers/radeonsi/si_blit.c b/src/gallium/drivers/radeonsi/si_blit.c index 7c3d9dc0fe2..e30e4e0ab4d 100644 --- a/src/gallium/drivers/radeonsi/si_blit.c +++ b/src/gallium/drivers/radeonsi/si_blit.c @@ -14,12 +14,9 @@ enum { - SI_COPY = - SI_SAVE_FRAMEBUFFER | SI_SAVE_TEXTURES | SI_SAVE_FRAGMENT_STATE | SI_DISABLE_RENDER_COND, - - SI_BLIT = SI_SAVE_FRAMEBUFFER | SI_SAVE_TEXTURES | SI_SAVE_FRAGMENT_STATE, - - SI_DECOMPRESS = SI_SAVE_FRAMEBUFFER | SI_SAVE_FRAGMENT_STATE | SI_DISABLE_RENDER_COND, + SI_COPY = SI_SAVE_FRAMEBUFFER | SI_SAVE_TEXTURES | SI_DISABLE_RENDER_COND, + SI_BLIT = SI_SAVE_FRAMEBUFFER | SI_SAVE_TEXTURES, + SI_DECOMPRESS = SI_SAVE_FRAMEBUFFER | SI_DISABLE_RENDER_COND, }; void si_blitter_begin(struct si_context *sctx, enum si_blitter_op op) @@ -38,23 +35,21 @@ void si_blitter_begin(struct si_context *sctx, enum si_blitter_op op) util_blitter_save_viewport(sctx->blitter, &sctx->viewports.states[0]); util_blitter_save_rasterizer(sctx->blitter, sctx->queued.named.rasterizer); - if (op & SI_SAVE_FRAGMENT_STATE) { - struct pipe_constant_buffer fs_cb = {}; - si_get_pipe_constant_buffer(sctx, MESA_SHADER_FRAGMENT, 0, &fs_cb); + struct pipe_constant_buffer fs_cb = {}; + si_get_pipe_constant_buffer(sctx, MESA_SHADER_FRAGMENT, 0, &fs_cb); - if (op & SI_SAVE_FRAGMENT_CONSTANT) - util_blitter_save_fragment_constant_buffer_slot(sctx->blitter, &fs_cb); + if (op & SI_SAVE_FRAGMENT_CONSTANT) + util_blitter_save_fragment_constant_buffer_slot(sctx->blitter, &fs_cb); - pipe_resource_reference(&fs_cb.buffer, NULL); - util_blitter_save_blend(sctx->blitter, sctx->queued.named.blend); - util_blitter_save_depth_stencil_alpha(sctx->blitter, sctx->queued.named.dsa); - util_blitter_save_stencil_ref(sctx->blitter, &sctx->stencil_ref.state); - util_blitter_save_fragment_shader(sctx->blitter, sctx->shader.ps.cso); - util_blitter_save_sample_mask(sctx->blitter, sctx->sample_mask, sctx->ps_iter_samples); - util_blitter_save_scissor(sctx->blitter, &sctx->scissors[0]); - util_blitter_save_window_rectangles(sctx->blitter, sctx->window_rectangles_include, - sctx->num_window_rectangles, sctx->window_rectangles); - } + pipe_resource_reference(&fs_cb.buffer, NULL); + util_blitter_save_blend(sctx->blitter, sctx->queued.named.blend); + util_blitter_save_depth_stencil_alpha(sctx->blitter, sctx->queued.named.dsa); + util_blitter_save_stencil_ref(sctx->blitter, &sctx->stencil_ref.state); + util_blitter_save_fragment_shader(sctx->blitter, sctx->shader.ps.cso); + util_blitter_save_sample_mask(sctx->blitter, sctx->sample_mask, sctx->ps_iter_samples); + util_blitter_save_scissor(sctx->blitter, &sctx->scissors[0]); + util_blitter_save_window_rectangles(sctx->blitter, sctx->window_rectangles_include, + sctx->num_window_rectangles, sctx->window_rectangles); if (op & SI_SAVE_FRAMEBUFFER) util_blitter_save_framebuffer(sctx->blitter, &sctx->framebuffer.state); diff --git a/src/gallium/drivers/radeonsi/si_clear.c b/src/gallium/drivers/radeonsi/si_clear.c index 959abe24c61..dfc470bd26a 100644 --- a/src/gallium/drivers/radeonsi/si_clear.c +++ b/src/gallium/drivers/radeonsi/si_clear.c @@ -12,9 +12,9 @@ #include "ac_formats.h" enum { - SI_CLEAR = SI_SAVE_FRAGMENT_STATE | SI_SAVE_FRAGMENT_CONSTANT, - SI_CLEAR_SURFACE = SI_SAVE_FRAMEBUFFER | SI_SAVE_FRAGMENT_STATE | SI_SAVE_FRAGMENT_CONSTANT, - SI_DEPTH_STENCIL = SI_SAVE_FRAMEBUFFER | SI_SAVE_FRAGMENT_STATE, + SI_CLEAR = SI_SAVE_FRAGMENT_CONSTANT, + SI_CLEAR_SURFACE = SI_SAVE_FRAMEBUFFER | SI_SAVE_FRAGMENT_CONSTANT, + SI_DEPTH_STENCIL = SI_SAVE_FRAMEBUFFER, }; void si_init_buffer_clear(struct si_clear_info *info, diff --git a/src/gallium/drivers/radeonsi/si_pipe.h b/src/gallium/drivers/radeonsi/si_pipe.h index 67adc75bb4c..9edbc260c2e 100644 --- a/src/gallium/drivers/radeonsi/si_pipe.h +++ b/src/gallium/drivers/radeonsi/si_pipe.h @@ -1383,9 +1383,8 @@ enum si_blitter_op /* bitmask */ { SI_SAVE_TEXTURES = 1, SI_SAVE_FRAMEBUFFER = 2, - SI_SAVE_FRAGMENT_STATE = 4, - SI_SAVE_FRAGMENT_CONSTANT = 8, - SI_DISABLE_RENDER_COND = 16, + SI_SAVE_FRAGMENT_CONSTANT = 4, + SI_DISABLE_RENDER_COND = 8, }; void si_blitter_begin(struct si_context *sctx, enum si_blitter_op op);