Mesa (main): radv: Only set rt stack size for dynamic stacks

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Jul 18 12:49:11 UTC 2022


Module: Mesa
Branch: main
Commit: 0580910aa9f61a931f3fd27d9de5243e4c80213b
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=0580910aa9f61a931f3fd27d9de5243e4c80213b

Author: Konstantin Seurer <konstantin.seurer at gmail.com>
Date:   Sun Jul 17 11:20:23 2022 +0200

radv: Only set rt stack size for dynamic stacks

When using a static callable stack, the required scratch has already
been allocated.
Dynamic stacks are located at the end of scratch memory
and are allocated on demand using radv_set_rt_stack_size.
Static stacks live at the start of scratch memory and are allocated in
create_rt_shader by setting scratch_size.

Signed-off-by: Konstantin Seurer <konstantin.seurer at gmail.com>
Reviewed-By: Tatsuyuki Ishi <ishitatsuyuki at gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17579>

---

 src/amd/vulkan/radv_cmd_buffer.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c
index 18546fa80f2..8f39dacbec3 100644
--- a/src/amd/vulkan/radv_cmd_buffer.c
+++ b/src/amd/vulkan/radv_cmd_buffer.c
@@ -5289,7 +5289,8 @@ radv_CmdBindPipeline(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipeline
 
       cmd_buffer->state.rt_pipeline = compute_pipeline;
       cmd_buffer->push_constant_stages |= RADV_RT_STAGE_BITS;
-      radv_set_rt_stack_size(cmd_buffer, cmd_buffer->state.rt_stack_size);
+      if (compute_pipeline->dynamic_stack_size)
+         radv_set_rt_stack_size(cmd_buffer, cmd_buffer->state.rt_stack_size);
       break;
    }
    case VK_PIPELINE_BIND_POINT_GRAPHICS: {



More information about the mesa-commit mailing list