From a4a8e0d6c84853c1b8c77b886edc0e505271f15d Mon Sep 17 00:00:00 2001 From: Philip Rebohle Date: Sat, 10 Mar 2018 17:41:42 +0100 Subject: [PATCH] [dxvk] Add memory flag query to DxvkImage --- src/dxvk/dxvk_image.cpp | 2 +- src/dxvk/dxvk_image.h | 46 ++++++++++++++++++++++++++--------------- 2 files changed, 30 insertions(+), 18 deletions(-) diff --git a/src/dxvk/dxvk_image.cpp b/src/dxvk/dxvk_image.cpp index e3e4c902..16077254 100644 --- a/src/dxvk/dxvk_image.cpp +++ b/src/dxvk/dxvk_image.cpp @@ -7,7 +7,7 @@ namespace dxvk { const DxvkImageCreateInfo& createInfo, DxvkMemoryAllocator& memAlloc, VkMemoryPropertyFlags memFlags) - : m_vkd(vkd), m_info(createInfo) { + : m_vkd(vkd), m_info(createInfo), m_memFlags(memFlags) { VkImageCreateInfo info; info.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO; diff --git a/src/dxvk/dxvk_image.h b/src/dxvk/dxvk_image.h index fe635fdb..e3cc826d 100644 --- a/src/dxvk/dxvk_image.h +++ b/src/dxvk/dxvk_image.h @@ -141,6 +141,30 @@ namespace dxvk { return m_info; } + /** + * \brief Memory type flags + * + * Use this to determine whether a + * buffer is mapped to host memory. + * \returns Vulkan memory flags + */ + VkMemoryPropertyFlags memFlags() const { + return m_memFlags; + } + + /** + * \brief Map pointer + * + * If the image has been created on a host-visible + * memory type, its memory is mapped and can be + * accessed by the host. + * \param [in] offset Byte offset into mapped region + * \returns Pointer to mapped memory region + */ + void* mapPtr(VkDeviceSize offset) const { + return m_memory.mapPtr(offset); + } + /** * \brief Image format info * \returns Image format info @@ -180,25 +204,13 @@ namespace dxvk { return result; } - /** - * \brief Map pointer - * - * If the image has been created on a host-visible - * memory type, its memory is mapped and can be - * accessed by the host. - * \param [in] offset Byte offset into mapped region - * \returns Pointer to mapped memory region - */ - void* mapPtr(VkDeviceSize offset) const { - return m_memory.mapPtr(offset); - } - private: - Rc m_vkd; - DxvkImageCreateInfo m_info; - DxvkMemory m_memory; - VkImage m_image = VK_NULL_HANDLE; + Rc m_vkd; + DxvkImageCreateInfo m_info; + VkMemoryPropertyFlags m_memFlags; + DxvkMemory m_memory; + VkImage m_image = VK_NULL_HANDLE; };