mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 09:28:07 +02:00
r600: Update the PS state before checking for cb_misc update.
The update_ps_state updates ps_shader->current->ps_color_export_mask, so
we could miss statechanges.
Cc: mesa-stable
Acked-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14427>
(cherry picked from commit e0429d9fef)
This commit is contained in:
parent
6210e69ea0
commit
c717dad476
2 changed files with 11 additions and 11 deletions
|
|
@ -476,7 +476,7 @@
|
|||
"description": "r600: Update the PS state before checking for cb_misc update.",
|
||||
"nominated": true,
|
||||
"nomination_type": 0,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"because_sha": null
|
||||
},
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1918,6 +1918,16 @@ static bool r600_update_derived_state(struct r600_context *rctx)
|
|||
rctx->rasterizer->sprite_coord_enable != rctx->ps_shader->current->sprite_coord_enable ||
|
||||
rctx->rasterizer->flatshade != rctx->ps_shader->current->flatshade)) {
|
||||
|
||||
if (unlikely(!ps_dirty && rctx->ps_shader && rctx->rasterizer &&
|
||||
((rctx->rasterizer->sprite_coord_enable != rctx->ps_shader->current->sprite_coord_enable) ||
|
||||
(rctx->rasterizer->flatshade != rctx->ps_shader->current->flatshade)))) {
|
||||
|
||||
if (rctx->b.chip_class >= EVERGREEN)
|
||||
evergreen_update_ps_state(ctx, rctx->ps_shader->current);
|
||||
else
|
||||
r600_update_ps_state(ctx, rctx->ps_shader->current);
|
||||
}
|
||||
|
||||
if (rctx->cb_misc_state.nr_ps_color_outputs != rctx->ps_shader->current->nr_ps_color_outputs ||
|
||||
rctx->cb_misc_state.ps_color_export_mask != rctx->ps_shader->current->ps_color_export_mask) {
|
||||
rctx->cb_misc_state.nr_ps_color_outputs = rctx->ps_shader->current->nr_ps_color_outputs;
|
||||
|
|
@ -1934,16 +1944,6 @@ static bool r600_update_derived_state(struct r600_context *rctx)
|
|||
}
|
||||
}
|
||||
|
||||
if (unlikely(!ps_dirty && rctx->ps_shader && rctx->rasterizer &&
|
||||
((rctx->rasterizer->sprite_coord_enable != rctx->ps_shader->current->sprite_coord_enable) ||
|
||||
(rctx->rasterizer->flatshade != rctx->ps_shader->current->flatshade)))) {
|
||||
|
||||
if (rctx->b.chip_class >= EVERGREEN)
|
||||
evergreen_update_ps_state(ctx, rctx->ps_shader->current);
|
||||
else
|
||||
r600_update_ps_state(ctx, rctx->ps_shader->current);
|
||||
}
|
||||
|
||||
r600_mark_atom_dirty(rctx, &rctx->shader_stages.atom);
|
||||
}
|
||||
UPDATE_SHADER(R600_HW_STAGE_PS, ps);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue