mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-04 20:38:06 +02:00
radeonsi: move si_ps_key_update_framebuffer to si_state.c
Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39482>
This commit is contained in:
parent
b3cbc38a42
commit
731006bb8b
3 changed files with 30 additions and 30 deletions
|
|
@ -5107,3 +5107,32 @@ bool si_init_gfx_preamble_state(struct si_context *sctx)
|
|||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void si_ps_key_update_framebuffer(struct si_context *sctx)
|
||||
{
|
||||
struct si_shader_selector *sel = sctx->shader.ps.cso;
|
||||
union si_shader_key *key = &sctx->shader.ps.key;
|
||||
|
||||
if (!sel)
|
||||
return;
|
||||
|
||||
/* ps_uses_fbfetch is true only if the color buffer is bound. */
|
||||
if (sctx->ps_uses_fbfetch) {
|
||||
struct pipe_surface *cb0 = &sctx->framebuffer.state.cbufs[0];
|
||||
struct pipe_resource *tex = cb0->texture;
|
||||
|
||||
/* 1D textures are allocated and used as 2D on GFX9. */
|
||||
key->ps.mono.fbfetch_msaa = sctx->framebuffer.nr_samples > 1;
|
||||
key->ps.mono.fbfetch_is_1D =
|
||||
sctx->gfx_level != GFX9 &&
|
||||
(tex->target == PIPE_TEXTURE_1D || tex->target == PIPE_TEXTURE_1D_ARRAY);
|
||||
key->ps.mono.fbfetch_layered =
|
||||
tex->target == PIPE_TEXTURE_1D_ARRAY || tex->target == PIPE_TEXTURE_2D_ARRAY ||
|
||||
tex->target == PIPE_TEXTURE_CUBE || tex->target == PIPE_TEXTURE_CUBE_ARRAY ||
|
||||
tex->target == PIPE_TEXTURE_3D;
|
||||
} else {
|
||||
key->ps.mono.fbfetch_msaa = 0;
|
||||
key->ps.mono.fbfetch_is_1D = 0;
|
||||
key->ps.mono.fbfetch_layered = 0;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -466,6 +466,7 @@ void si_make_buffer_descriptor(struct si_screen *screen, struct si_resource *buf
|
|||
enum pipe_format format, unsigned offset, unsigned num_elements,
|
||||
uint32_t *state);
|
||||
void si_mark_display_dcc_dirty(struct si_context *sctx, struct si_texture *tex);
|
||||
void si_ps_key_update_framebuffer(struct si_context *sctx);
|
||||
void si_update_ps_iter_samples(struct si_context *sctx);
|
||||
void si_save_qbo_state(struct si_context *sctx, struct si_qbo_state *st);
|
||||
void si_restore_qbo_state(struct si_context *sctx, struct si_qbo_state *st);
|
||||
|
|
@ -498,7 +499,6 @@ unsigned si_get_input_prim(const struct si_shader_selector *gs, const union si_s
|
|||
unsigned si_get_num_vertices_per_output_prim(struct si_shader *shader);
|
||||
bool si_update_ngg(struct si_context *sctx);
|
||||
void si_vs_ps_key_update_rast_prim_smooth_stipple(struct si_context *sctx);
|
||||
void si_ps_key_update_framebuffer(struct si_context *sctx);
|
||||
void si_ps_key_update_framebuffer_blend_dsa_rasterizer(struct si_context *sctx);
|
||||
void si_ps_key_update_rasterizer(struct si_context *sctx);
|
||||
void si_ps_key_update_dsa(struct si_context *sctx);
|
||||
|
|
|
|||
|
|
@ -2601,35 +2601,6 @@ static void si_clear_vs_key_outputs(struct si_context *sctx, struct si_shader_se
|
|||
key->ge.mono.write_pos_to_clipvertex = 0;
|
||||
}
|
||||
|
||||
void si_ps_key_update_framebuffer(struct si_context *sctx)
|
||||
{
|
||||
struct si_shader_selector *sel = sctx->shader.ps.cso;
|
||||
union si_shader_key *key = &sctx->shader.ps.key;
|
||||
|
||||
if (!sel)
|
||||
return;
|
||||
|
||||
/* ps_uses_fbfetch is true only if the color buffer is bound. */
|
||||
if (sctx->ps_uses_fbfetch) {
|
||||
struct pipe_surface *cb0 = &sctx->framebuffer.state.cbufs[0];
|
||||
struct pipe_resource *tex = cb0->texture;
|
||||
|
||||
/* 1D textures are allocated and used as 2D on GFX9. */
|
||||
key->ps.mono.fbfetch_msaa = sctx->framebuffer.nr_samples > 1;
|
||||
key->ps.mono.fbfetch_is_1D =
|
||||
sctx->gfx_level != GFX9 &&
|
||||
(tex->target == PIPE_TEXTURE_1D || tex->target == PIPE_TEXTURE_1D_ARRAY);
|
||||
key->ps.mono.fbfetch_layered =
|
||||
tex->target == PIPE_TEXTURE_1D_ARRAY || tex->target == PIPE_TEXTURE_2D_ARRAY ||
|
||||
tex->target == PIPE_TEXTURE_CUBE || tex->target == PIPE_TEXTURE_CUBE_ARRAY ||
|
||||
tex->target == PIPE_TEXTURE_3D;
|
||||
} else {
|
||||
key->ps.mono.fbfetch_msaa = 0;
|
||||
key->ps.mono.fbfetch_is_1D = 0;
|
||||
key->ps.mono.fbfetch_layered = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void si_ps_key_update_framebuffer_blend_dsa_rasterizer(struct si_context *sctx)
|
||||
{
|
||||
struct si_shader_selector *sel = sctx->shader.ps.cso;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue