From f7c1545400b9fbdf9f85fcaeda356f41736b8616 Mon Sep 17 00:00:00 2001 From: juan-lunarg Date: Thu, 27 Apr 2023 16:25:57 -0600 Subject: mock: Add support for DeviceBufferMemoryRequirements Needed for KhronosGroup/Vulkan-ValidationLayers/issues/5616 --- icd/generated/mock_icd.cpp | 9 +++++++-- scripts/mock_icd_generator.py | 11 +++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/icd/generated/mock_icd.cpp b/icd/generated/mock_icd.cpp index f281fcf0..3b896272 100644 --- a/icd/generated/mock_icd.cpp +++ b/icd/generated/mock_icd.cpp @@ -2447,7 +2447,12 @@ static VKAPI_ATTR void VKAPI_CALL GetDeviceBufferMemoryRequirements( const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements) { -//Not a CREATE or DESTROY function + // TODO: Just hard-coding reqs for now + pMemoryRequirements->memoryRequirements.alignment = 1; + pMemoryRequirements->memoryRequirements.memoryTypeBits = 0xFFFF; + + // Return a size based on the buffer size from the create info. + pMemoryRequirements->memoryRequirements.size = ((pInfo->pCreateInfo->size + 4095) / 4096) * 4096; } static VKAPI_ATTR void VKAPI_CALL GetDeviceImageMemoryRequirements( @@ -4081,7 +4086,7 @@ static VKAPI_ATTR void VKAPI_CALL GetDeviceBufferMemoryRequirementsKHR( const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements) { -//Not a CREATE or DESTROY function + GetDeviceBufferMemoryRequirements(device, pInfo, pMemoryRequirements); } static VKAPI_ATTR void VKAPI_CALL GetDeviceImageMemoryRequirementsKHR( diff --git a/scripts/mock_icd_generator.py b/scripts/mock_icd_generator.py index eeef3829..62da03ec 100644 --- a/scripts/mock_icd_generator.py +++ b/scripts/mock_icd_generator.py @@ -1000,6 +1000,17 @@ CUSTOM_C_INTERCEPTS = { 'vkGetBufferMemoryRequirements2KHR': ''' GetBufferMemoryRequirements(device, pInfo->buffer, &pMemoryRequirements->memoryRequirements); ''', +'vkGetDeviceBufferMemoryRequirements': ''' + // TODO: Just hard-coding reqs for now + pMemoryRequirements->memoryRequirements.alignment = 1; + pMemoryRequirements->memoryRequirements.memoryTypeBits = 0xFFFF; + + // Return a size based on the buffer size from the create info. + pMemoryRequirements->memoryRequirements.size = ((pInfo->pCreateInfo->size + 4095) / 4096) * 4096; +''', +'vkGetDeviceBufferMemoryRequirementsKHR': ''' + GetDeviceBufferMemoryRequirements(device, pInfo, pMemoryRequirements); +''', 'vkGetImageMemoryRequirements': ''' pMemoryRequirements->size = 0; pMemoryRequirements->alignment = 1; -- cgit v1.2.3