summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar ReinUsesLisp2021-01-04 17:56:39 -0300
committerGravatar ReinUsesLisp2021-01-04 17:56:39 -0300
commit1ccf80536739fb9a193a0a148dcd4f2deca1bfd4 (patch)
tree6a4f0b867a3fbbfaa235e09fd26e1c594472ddbf
parentMerge pull request #5285 from lioncash/error-str (diff)
downloadyuzu-1ccf80536739fb9a193a0a148dcd4f2deca1bfd4.tar.gz
yuzu-1ccf80536739fb9a193a0a148dcd4f2deca1bfd4.tar.xz
yuzu-1ccf80536739fb9a193a0a148dcd4f2deca1bfd4.zip
vk_rasterizer: Skip binding empty descriptor sets on compute
Fixes unit tests where compute shaders had no descriptors in the set, making Vulkan drivers crash when binding an empty set.
-rw-r--r--src/video_core/renderer_vulkan/vk_rasterizer.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/video_core/renderer_vulkan/vk_rasterizer.cpp b/src/video_core/renderer_vulkan/vk_rasterizer.cpp
index 1c174e7ec..b6a1c5bbb 100644
--- a/src/video_core/renderer_vulkan/vk_rasterizer.cpp
+++ b/src/video_core/renderer_vulkan/vk_rasterizer.cpp
@@ -628,8 +628,10 @@ void RasterizerVulkan::DispatchCompute(GPUVAddr code_addr) {
628 grid_z = launch_desc.grid_dim_z, pipeline_handle, pipeline_layout, 628 grid_z = launch_desc.grid_dim_z, pipeline_handle, pipeline_layout,
629 descriptor_set](vk::CommandBuffer cmdbuf) { 629 descriptor_set](vk::CommandBuffer cmdbuf) {
630 cmdbuf.BindPipeline(VK_PIPELINE_BIND_POINT_COMPUTE, pipeline_handle); 630 cmdbuf.BindPipeline(VK_PIPELINE_BIND_POINT_COMPUTE, pipeline_handle);
631 cmdbuf.BindDescriptorSets(VK_PIPELINE_BIND_POINT_COMPUTE, pipeline_layout, DESCRIPTOR_SET, 631 if (descriptor_set) {
632 descriptor_set, {}); 632 cmdbuf.BindDescriptorSets(VK_PIPELINE_BIND_POINT_COMPUTE, pipeline_layout,
633 DESCRIPTOR_SET, descriptor_set, nullptr);
634 }
633 cmdbuf.Dispatch(grid_x, grid_y, grid_z); 635 cmdbuf.Dispatch(grid_x, grid_y, grid_z);
634 }); 636 });
635} 637}