radv: Always set 0 dispatch offset for indirect CS.

Fixes severe glitching in Avowed.

Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Natalie Vock <natalie.vock@gmx.de>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33732>
(cherry picked from commit 13a3f9a972)
This commit is contained in:
Hans-Kristian Arntzen 2025-02-25 12:43:17 +01:00 committed by Eric Engestrom
parent 20bb982788
commit 1b6da4ed52
2 changed files with 5 additions and 1 deletions

View file

@ -1624,7 +1624,7 @@
"description": "radv: Always set 0 dispatch offset for indirect CS.",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": null,
"notes": null

View file

@ -11809,6 +11809,10 @@ radv_emit_dispatch_packets(struct radv_cmd_buffer *cmd_buffer, const struct radv
dispatch_initiator |= S_00B800_USE_THREAD_DIMENSIONS(1);
}
/* Indirect CS does not support offsets in the API. Must program this in case there have been
* preceding 1D RT dispatch or vkCmdDispatchBase. */
dispatch_initiator |= S_00B800_FORCE_START_AT_000(1);
if (grid_size_offset) {
if (device->load_grid_size_from_user_sgpr) {
assert(pdev->info.gfx_level >= GFX10_3);