Module: Mesa Branch: staging/22.1 Commit: 03d5e496d9a4773156daaa5d522883e06f24be46 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=03d5e496d9a4773156daaa5d522883e06f24be46
Author: Iván Briano <[email protected]> Date: Mon May 9 18:30:20 2022 -0700 anv: re-alloc push constants after secondary command buffers If the secondary command buffer executed used push constants on a different set of stages than the primary is using, we may end up not reallocating them for the primary, getting misrender artifacts at best, or a nice GPU hang at worst. Fixes the tests from a CTS from the future: dEQP-VK.dynamic_rendering.random.* Cc: mesa-stable Reviewed-by: Jason Ekstrand <[email protected]> Reviewed-by: Lionel Landwerlin <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16439> (cherry picked from commit 2e46f38902b9409f06f6b3fad6c0666031935794) --- .pick_status.json | 2 +- src/intel/vulkan/genX_cmd_buffer.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.pick_status.json b/.pick_status.json index 565fc73b4ca..0fa871c70c2 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -211,7 +211,7 @@ "description": "anv: re-alloc push constants after secondary command buffers", "nominated": true, "nomination_type": 0, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null }, diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c index 1bb7ec36bd8..1330355c710 100644 --- a/src/intel/vulkan/genX_cmd_buffer.c +++ b/src/intel/vulkan/genX_cmd_buffer.c @@ -1995,6 +1995,7 @@ genX(CmdExecuteCommands)( primary->state.current_l3_config = NULL; primary->state.current_hash_scale = 0; primary->state.gfx.dirty |= ANV_CMD_DIRTY_DYNAMIC_ALL; + primary->state.gfx.push_constant_stages = 0; /* Each of the secondary command buffers will use its own state base * address. We need to re-emit state base address for the primary after
