diff options
| author | 2021-01-04 17:56:39 -0300 | |
|---|---|---|
| committer | 2021-01-04 17:56:39 -0300 | |
| commit | 1ccf80536739fb9a193a0a148dcd4f2deca1bfd4 (patch) | |
| tree | 6a4f0b867a3fbbfaa235e09fd26e1c594472ddbf | |
| parent | Merge pull request #5285 from lioncash/error-str (diff) | |
| download | yuzu-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.cpp | 6 |
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 | } |