mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 11:18:08 +02:00
anv/blorp: force CC_VIEWPORT reallocation when programming 3DSTATE_VIEWPORT_STATE_POINTERS_CC
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/11647 Fixes:fe1baa6481("anv: reduce blorp dynamic state emissions") Reviewed-by: Tapani Pälli <tapani.palli@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30532> (cherry picked from commit10533e7b4c)
This commit is contained in:
parent
a7b1512878
commit
34467ad0be
3 changed files with 12 additions and 3 deletions
|
|
@ -3004,7 +3004,7 @@
|
|||
"description": "anv/blorp: force CC_VIEWPORT reallocation when programming 3DSTATE_VIEWPORT_STATE_POINTERS_CC",
|
||||
"nominated": true,
|
||||
"nomination_type": 1,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": "fe1baa64819f9e2d59b60ccec853610db21b9911",
|
||||
"notes": null
|
||||
|
|
|
|||
|
|
@ -592,7 +592,10 @@ blorp_emit_cc_viewport(struct blorp_batch *batch)
|
|||
{
|
||||
uint32_t cc_vp_offset;
|
||||
|
||||
if (batch->blorp->config.use_cached_dynamic_states) {
|
||||
/* Somehow reusing CC_VIEWPORT on Gfx9 is causing issues :
|
||||
* https://gitlab.freedesktop.org/mesa/mesa/-/issues/11647
|
||||
*/
|
||||
if (GFX_VER != 9 && batch->blorp->config.use_cached_dynamic_states) {
|
||||
cc_vp_offset = blorp_get_dynamic_state(batch, BLORP_DYNAMIC_STATE_CC_VIEWPORT);
|
||||
} else {
|
||||
blorp_emit_dynamic(batch, GENX(CC_VIEWPORT), vp, 32, &cc_vp_offset) {
|
||||
|
|
|
|||
|
|
@ -1654,7 +1654,13 @@ cmd_buffer_gfx_state_emission(struct anv_cmd_buffer *cmd_buffer)
|
|||
}
|
||||
}
|
||||
|
||||
if (BITSET_TEST(hw_state->dirty, ANV_GFX_STATE_VIEWPORT_CC)) {
|
||||
/* Force CC_VIEWPORT reallocation on Gfx9 when reprogramming
|
||||
* 3DSTATE_VIEWPORT_STATE_POINTERS_CC :
|
||||
* https://gitlab.freedesktop.org/mesa/mesa/-/issues/11647
|
||||
*/
|
||||
if (BITSET_TEST(hw_state->dirty, ANV_GFX_STATE_VIEWPORT_CC) ||
|
||||
(GFX_VER == 9 &&
|
||||
BITSET_TEST(hw_state->dirty, ANV_GFX_STATE_VIEWPORT_CC_PTR))) {
|
||||
hw_state->vp_cc.state =
|
||||
anv_cmd_buffer_alloc_dynamic_state(cmd_buffer,
|
||||
hw_state->vp_cc.count * 8, 32);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue