diff options
Diffstat (limited to '')
4 files changed, 10 insertions, 1 deletions
diff --git a/src/video_core/vulkan_common/vulkan_debug_callback.cpp b/src/video_core/vulkan_common/vulkan_debug_callback.cpp index 736474009..10a001b8f 100644 --- a/src/video_core/vulkan_common/vulkan_debug_callback.cpp +++ b/src/video_core/vulkan_common/vulkan_debug_callback.cpp @@ -16,6 +16,8 @@ VkBool32 Callback(VkDebugUtilsMessageSeverityFlagBitsEXT severity, case 0x682a878au: // VUID-vkCmdBindVertexBuffers2EXT-pBuffers-parameter case 0x99fb7dfdu: // UNASSIGNED-RequiredParameter (vkCmdBindVertexBuffers2EXT pBuffers[0]) case 0xe8616bf2u: // Bound VkDescriptorSet 0x0[] was destroyed. Likely push_descriptor related + case 0x1608dec0u: // Image layout in vkUpdateDescriptorSet doesn't match descriptor use + case 0x55362756u: // Descriptor binding and framebuffer attachment overlap return VK_FALSE; default: break; diff --git a/src/video_core/vulkan_common/vulkan_device.cpp b/src/video_core/vulkan_common/vulkan_device.cpp index 467878431..6a2ad4b1d 100644 --- a/src/video_core/vulkan_common/vulkan_device.cpp +++ b/src/video_core/vulkan_common/vulkan_device.cpp @@ -1119,7 +1119,7 @@ std::vector<const char*> Device::LoadExtensions(bool requires_surface) { test(has_ext_transform_feedback, VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME, false); test(has_ext_custom_border_color, VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME, false); test(has_ext_extended_dynamic_state, VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME, false); - test(has_ext_subgroup_size_control, VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME, false); + test(has_ext_subgroup_size_control, VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME, true); test(has_ext_provoking_vertex, VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME, false); test(has_ext_vertex_input_dynamic_state, VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME, false); diff --git a/src/video_core/vulkan_common/vulkan_wrapper.cpp b/src/video_core/vulkan_common/vulkan_wrapper.cpp index bda10ee2f..483b534a0 100644 --- a/src/video_core/vulkan_common/vulkan_wrapper.cpp +++ b/src/video_core/vulkan_common/vulkan_wrapper.cpp @@ -86,6 +86,7 @@ void Load(VkDevice device, DeviceDispatch& dld) noexcept { X(vkCmdBindVertexBuffers); X(vkCmdBlitImage); X(vkCmdClearAttachments); + X(vkCmdClearColorImage); X(vkCmdCopyBuffer); X(vkCmdCopyBufferToImage); X(vkCmdCopyImage); diff --git a/src/video_core/vulkan_common/vulkan_wrapper.h b/src/video_core/vulkan_common/vulkan_wrapper.h index 8395ff2cb..8bd4fd4d9 100644 --- a/src/video_core/vulkan_common/vulkan_wrapper.h +++ b/src/video_core/vulkan_common/vulkan_wrapper.h @@ -205,6 +205,7 @@ struct DeviceDispatch : InstanceDispatch { PFN_vkCmdBindVertexBuffers2EXT vkCmdBindVertexBuffers2EXT{}; PFN_vkCmdBlitImage vkCmdBlitImage{}; PFN_vkCmdClearAttachments vkCmdClearAttachments{}; + PFN_vkCmdClearColorImage vkCmdClearColorImage{}; PFN_vkCmdCopyBuffer vkCmdCopyBuffer{}; PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage{}; PFN_vkCmdCopyImage vkCmdCopyImage{}; @@ -1024,6 +1025,11 @@ public: rects.data()); } + void ClearColorImage(VkImage image, VkImageLayout layout, VkClearColorValue color, + Span<VkImageSubresourceRange> ranges) { + dld->vkCmdClearColorImage(handle, image, layout, &color, ranges.size(), ranges.data()); + } + void BlitImage(VkImage src_image, VkImageLayout src_layout, VkImage dst_image, VkImageLayout dst_layout, Span<VkImageBlit> regions, VkFilter filter) const noexcept { |