1From 49761ca63797014223d8e3ff6fb2c0235803c19c Mon Sep 17 00:00:00 2001 2From: asuessenbach <asuessenbach@nvidia.com> 3Date: Wed, 3 May 2023 09:50:08 +0200 4Subject: [PATCH] Resolve some Vulkan-Hpp-related issues on Win32. 5 6This patch fixes vulkan-samples compilation on 32-bit hosts. 7 8Upstream-Status: Backport 9Signed-off-by: Ross Burton <ross.burton@arm.com> 10 11--- 12 framework/common/hpp_vk_common.h | 4 ++-- 13 framework/core/hpp_buffer.cpp | 4 ++-- 14 framework/core/hpp_buffer.h | 2 +- 15 framework/core/hpp_image.cpp | 2 +- 16 samples/api/hpp_texture_loading/hpp_texture_loading.cpp | 2 +- 17 5 files changed, 7 insertions(+), 7 deletions(-) 18 19diff --git a/framework/common/hpp_vk_common.h b/framework/common/hpp_vk_common.h 20index 39ed3dcde..0cbbe479e 100644 21--- a/framework/common/hpp_vk_common.h 22+++ b/framework/common/hpp_vk_common.h 23@@ -92,7 +92,7 @@ inline bool is_dynamic_buffer_descriptor_type(vk::DescriptorType descriptor_type 24 25 inline vk::ShaderModule load_shader(const std::string &filename, vk::Device device, vk::ShaderStageFlagBits stage) 26 { 27- return vkb::load_shader(filename, device, static_cast<VkShaderStageFlagBits>(stage)); 28+ return static_cast<vk::ShaderModule>(vkb::load_shader(filename, device, static_cast<VkShaderStageFlagBits>(stage))); 29 } 30 31 inline void set_image_layout(vk::CommandBuffer command_buffer, 32@@ -104,7 +104,7 @@ inline void set_image_layout(vk::CommandBuffer command_buffer, 33 vk::PipelineStageFlags dst_mask = vk::PipelineStageFlagBits::eAllCommands) 34 { 35 vkb::set_image_layout(command_buffer, 36- image, 37+ static_cast<VkImage>(image), 38 static_cast<VkImageLayout>(old_layout), 39 static_cast<VkImageLayout>(new_layout), 40 static_cast<VkImageSubresourceRange>(subresource_range), 41diff --git a/framework/core/hpp_buffer.cpp b/framework/core/hpp_buffer.cpp 42index 8da265acb..e6509b9f4 100644 43--- a/framework/core/hpp_buffer.cpp 44+++ b/framework/core/hpp_buffer.cpp 45@@ -84,7 +84,7 @@ HPPBuffer::~HPPBuffer() 46 if (get_handle() && (allocation != VK_NULL_HANDLE)) 47 { 48 unmap(); 49- vmaDestroyBuffer(get_device().get_memory_allocator(), get_handle(), allocation); 50+ vmaDestroyBuffer(get_device().get_memory_allocator(), static_cast<VkBuffer>(get_handle()), allocation); 51 } 52 } 53 54@@ -93,7 +93,7 @@ VmaAllocation HPPBuffer::get_allocation() const 55 return allocation; 56 } 57 58-VkDeviceMemory HPPBuffer::get_memory() const 59+vk::DeviceMemory HPPBuffer::get_memory() const 60 { 61 return memory; 62 } 63diff --git a/framework/core/hpp_buffer.h b/framework/core/hpp_buffer.h 64index 7a243c265..bad47406d 100644 65--- a/framework/core/hpp_buffer.h 66+++ b/framework/core/hpp_buffer.h 67@@ -55,7 +55,7 @@ class HPPBuffer : public vkb::core::HPPVulkanResource<vk::Buffer> 68 69 VmaAllocation get_allocation() const; 70 const uint8_t *get_data() const; 71- VkDeviceMemory get_memory() const; 72+ vk::DeviceMemory get_memory() const; 73 74 /** 75 * @return Return the buffer's device address (note: requires that the buffer has been created with the VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT usage fla) 76diff --git a/framework/core/hpp_image.cpp b/framework/core/hpp_image.cpp 77index 00fa89ba7..5e6f27363 100644 78--- a/framework/core/hpp_image.cpp 79+++ b/framework/core/hpp_image.cpp 80@@ -138,7 +138,7 @@ HPPImage::~HPPImage() 81 if (get_handle() && memory) 82 { 83 unmap(); 84- vmaDestroyImage(get_device().get_memory_allocator(), get_handle(), memory); 85+ vmaDestroyImage(get_device().get_memory_allocator(), static_cast<VkImage>(get_handle()), memory); 86 } 87 } 88 89diff --git a/samples/api/hpp_texture_loading/hpp_texture_loading.cpp b/samples/api/hpp_texture_loading/hpp_texture_loading.cpp 90index 11a1f24c1..cbdd22773 100644 91--- a/samples/api/hpp_texture_loading/hpp_texture_loading.cpp 92+++ b/samples/api/hpp_texture_loading/hpp_texture_loading.cpp 93@@ -170,7 +170,7 @@ void HPPTextureLoading::load_texture() 94 memory_allocate_info = {memory_requirements.size, 95 get_device()->get_gpu().get_memory_type(memory_requirements.memoryTypeBits, vk::MemoryPropertyFlagBits::eDeviceLocal)}; 96 texture.device_memory = get_device()->get_handle().allocateMemory(memory_allocate_info); 97- VK_CHECK(vkBindImageMemory(get_device()->get_handle(), texture.image, texture.device_memory, 0)); 98+ get_device()->get_handle().bindImageMemory(texture.image, texture.device_memory, 0); 99 100 vk::CommandBuffer copy_command = get_device()->create_command_buffer(vk::CommandBufferLevel::ePrimary, true); 101 102