From 6b9371ff059207d8684712a4f958e2e408541d82 Mon Sep 17 00:00:00 2001 From: Chip Davis Date: Sun, 19 Nov 2023 22:51:08 -0800 Subject: [PATCH] MVKBuffer, MVKImage: Also ignore no external handle types specified. Previously, we were erroneously failing create calls that specified zero external handle types (as opposed to omitting external memory info entirely). Fixes 6 tests under `dEQP-VK.api.buffer_memory_requirements.create_no_flags.ext_mem_flags_included.*` --- MoltenVK/MoltenVK/GPUObjects/MVKBuffer.mm | 1 + MoltenVK/MoltenVK/GPUObjects/MVKImage.mm | 1 + 2 files changed, 2 insertions(+) diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKBuffer.mm b/MoltenVK/MoltenVK/GPUObjects/MVKBuffer.mm index 41ee4cef..e14ff7d5 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKBuffer.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKBuffer.mm @@ -232,6 +232,7 @@ MVKBuffer::MVKBuffer(MVKDevice* device, const VkBufferCreateInfo* pCreateInfo) : } void MVKBuffer::initExternalMemory(VkExternalMemoryHandleTypeFlags handleTypes) { + if ( !handleTypes ) { return; } if (mvkIsOnlyAnyFlagEnabled(handleTypes, VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLBUFFER_BIT_KHR)) { _externalMemoryHandleTypes = handleTypes; auto& xmProps = getPhysicalDevice()->getExternalBufferProperties(VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLBUFFER_BIT_KHR); diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKImage.mm b/MoltenVK/MoltenVK/GPUObjects/MVKImage.mm index c605f45a..323918f2 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKImage.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKImage.mm @@ -1142,6 +1142,7 @@ bool MVKImage::validateLinear(const VkImageCreateInfo* pCreateInfo, bool isAttac } void MVKImage::initExternalMemory(VkExternalMemoryHandleTypeFlags handleTypes) { + if ( !handleTypes ) { return; } if (mvkIsOnlyAnyFlagEnabled(handleTypes, VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLTEXTURE_BIT_KHR)) { auto& xmProps = getPhysicalDevice()->getExternalImageProperties(VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLTEXTURE_BIT_KHR); for(auto& memoryBinding : _memoryBindings) {