mirror of
https://github.com/KhronosGroup/OpenCL-CTS.git
synced 2026-03-23 07:39:01 +00:00
External memory updates (#1676)
* Vulkan: Fix descriptor sets Use descriptor set arrays when programming arrays for compute shader. Change-Id: Idabab775a256a223660eb7a850e26f290453659e * Vulkan: Fix queue propertyies Transfer bit for queue family is not required to be reported by the implementation, it is implicit for compute. Change-Id: I7424b00e25e35145433dd74b0b4dfe7eeeaf98c8 * Vulkan: Allow implementation to choose dedicated memory Dedicated vs non-dedicated memory must be queried by the app. Implementations are not required to support exportable non-dedicated memory. Change-Id: Idbc46ace1be20f61d1b58b34756f6d79a7745911 * Fix formatting Auto-generated formatting fix * Fix bug in dedicated memory. * Add check for if OpenCL assumes linear tiling Change-Id: Idd2e24d9d69e1fbc3ccb4a279067533104185332 * Changed macro name to reflect spec CL_DEVICE_EXTERNAL_MEMORY_IMPORT_ASSUME_LINEAR_HANDLE_TYPES_KHR to CL_DEVICE_EXTERNAL_MEMORY_IMPORT_ASSUME_LINEAR_IMAGES_HANDLE_TYPES_KHR Also changed some functions to not use the KHR variants. --------- Co-authored-by: Joshua Kelly <joshkell@qti.qualcomm.com>
This commit is contained in:
committed by
GitHub
parent
c511ac62b0
commit
15b54aa0bd
@@ -328,7 +328,11 @@ public:
|
||||
const VulkanDescriptorSetLayout &descriptorSetLayout);
|
||||
virtual ~VulkanDescriptorSet();
|
||||
void update(uint32_t binding, const VulkanBuffer &buffer);
|
||||
void updateArray(uint32_t binding, unsigned numBuffers,
|
||||
const VulkanBufferList &buffers);
|
||||
void update(uint32_t binding, const VulkanImageView &imageView);
|
||||
void updateArray(uint32_t binding,
|
||||
const VulkanImageViewList &imageViewList);
|
||||
operator VkDescriptorSet() const;
|
||||
};
|
||||
|
||||
@@ -424,6 +428,7 @@ protected:
|
||||
VkBuffer m_vkBuffer;
|
||||
uint64_t m_size;
|
||||
uint64_t m_alignment;
|
||||
bool m_dedicated;
|
||||
VulkanMemoryTypeList m_memoryTypeList;
|
||||
|
||||
VulkanBuffer(const VulkanBuffer &buffer);
|
||||
@@ -441,6 +446,7 @@ public:
|
||||
uint64_t getSize() const;
|
||||
uint64_t getAlignment() const;
|
||||
const VulkanMemoryTypeList &getMemoryTypeList() const;
|
||||
bool isDedicated() const;
|
||||
operator VkBuffer() const;
|
||||
};
|
||||
|
||||
@@ -452,6 +458,7 @@ protected:
|
||||
const VulkanFormat m_format;
|
||||
const uint32_t m_numMipLevels;
|
||||
const uint32_t m_numLayers;
|
||||
bool m_dedicated;
|
||||
VkImage m_vkImage;
|
||||
uint64_t m_size;
|
||||
uint64_t m_alignment;
|
||||
@@ -478,6 +485,7 @@ public:
|
||||
uint32_t getNumLayers() const;
|
||||
uint64_t getSize() const;
|
||||
uint64_t getAlignment() const;
|
||||
bool isDedicated() const;
|
||||
const VulkanMemoryTypeList &getMemoryTypeList() const;
|
||||
VkImageCreateInfo getVkImageCreateInfo() const;
|
||||
operator VkImage() const;
|
||||
@@ -487,12 +495,11 @@ class VulkanImage2D : public VulkanImage {
|
||||
protected:
|
||||
VkImageView m_vkImageView;
|
||||
|
||||
VulkanImage2D(const VulkanImage2D &image2D);
|
||||
|
||||
public:
|
||||
VulkanImage2D(
|
||||
const VulkanDevice &device, VulkanFormat format, uint32_t width,
|
||||
uint32_t height, uint32_t numMipLevels = 1,
|
||||
uint32_t height, VulkanImageTiling imageTiling,
|
||||
uint32_t numMipLevels = 1,
|
||||
VulkanExternalMemoryHandleType externalMemoryHandleType =
|
||||
VULKAN_EXTERNAL_MEMORY_HANDLE_TYPE_NONE,
|
||||
VulkanImageCreateFlag imageCreateFlag = VULKAN_IMAGE_CREATE_FLAG_NONE,
|
||||
@@ -501,6 +508,8 @@ public:
|
||||
VulkanSharingMode sharingMode = VULKAN_SHARING_MODE_EXCLUSIVE);
|
||||
virtual ~VulkanImage2D();
|
||||
virtual VulkanExtent3D getExtent3D(uint32_t mipLevel = 0) const;
|
||||
|
||||
VulkanImage2D(const VulkanImage2D &image2D);
|
||||
};
|
||||
|
||||
class VulkanImageView {
|
||||
@@ -541,6 +550,11 @@ public:
|
||||
VulkanExternalMemoryHandleType externalMemoryHandleType =
|
||||
VULKAN_EXTERNAL_MEMORY_HANDLE_TYPE_NONE,
|
||||
const void *name = NULL);
|
||||
VulkanDeviceMemory(const VulkanDevice &device, const VulkanBuffer &buffer,
|
||||
const VulkanMemoryType &memoryType,
|
||||
VulkanExternalMemoryHandleType externalMemoryHandleType =
|
||||
VULKAN_EXTERNAL_MEMORY_HANDLE_TYPE_NONE,
|
||||
const void *name = NULL);
|
||||
virtual ~VulkanDeviceMemory();
|
||||
uint64_t getSize() const;
|
||||
#ifdef _WIN32
|
||||
|
||||
Reference in New Issue
Block a user