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>
This commit is contained in:
Lionel Landwerlin
2024-08-07 11:17:59 +03:00
committed by Marge Bot
parent 004e0eb3ab
commit 10533e7b4c
2 changed files with 11 additions and 2 deletions
+4 -1
View File
@@ -593,7 +593,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) {
+7 -1
View File
@@ -1840,7 +1840,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);