mirror of
https://github.com/KhronosGroup/OpenCL-CTS.git
synced 2026-03-19 06:09: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
@@ -81,10 +81,11 @@ int test_consistency_external_buffer(cl_device_id deviceID, cl_context _context,
|
||||
const VulkanMemoryTypeList& memoryTypeList =
|
||||
vkDummyBuffer.getMemoryTypeList();
|
||||
|
||||
VulkanDeviceMemory* vkDeviceMem = new VulkanDeviceMemory(
|
||||
vkDevice, bufferSize, memoryTypeList[0], vkExternalMemoryHandleType);
|
||||
VulkanBufferList vkBufferList(1, vkDevice, bufferSize,
|
||||
vkExternalMemoryHandleType);
|
||||
VulkanDeviceMemory* vkDeviceMem =
|
||||
new VulkanDeviceMemory(vkDevice, vkBufferList[0], memoryTypeList[0],
|
||||
vkExternalMemoryHandleType);
|
||||
|
||||
vkDeviceMem->bindBuffer(vkBufferList[0], 0);
|
||||
|
||||
@@ -231,22 +232,27 @@ int test_consistency_external_image(cl_device_id deviceID, cl_context _context,
|
||||
|
||||
VulkanExternalMemoryHandleType vkExternalMemoryHandleType =
|
||||
getSupportedVulkanExternalMemoryHandleTypeList()[0];
|
||||
VulkanImage2D* vkImage2D =
|
||||
new VulkanImage2D(vkDevice, VULKAN_FORMAT_R8G8B8A8_UNORM, width, height,
|
||||
1, vkExternalMemoryHandleType);
|
||||
|
||||
const VulkanMemoryTypeList& memoryTypeList = vkImage2D->getMemoryTypeList();
|
||||
uint64_t totalImageMemSize = vkImage2D->getSize();
|
||||
VulkanImageTiling vulkanImageTiling =
|
||||
vkClExternalMemoryHandleTilingAssumption(
|
||||
deviceID, vkExternalMemoryHandleType, &errNum);
|
||||
ASSERT_SUCCESS(errNum, "Failed to query OpenCL tiling mode");
|
||||
|
||||
VulkanImage2D vkImage2D =
|
||||
VulkanImage2D(vkDevice, VULKAN_FORMAT_R8G8B8A8_UNORM, width, height,
|
||||
vulkanImageTiling, 1, vkExternalMemoryHandleType);
|
||||
|
||||
const VulkanMemoryTypeList& memoryTypeList = vkImage2D.getMemoryTypeList();
|
||||
uint64_t totalImageMemSize = vkImage2D.getSize();
|
||||
|
||||
log_info("Memory type index: %lu\n", (uint32_t)memoryTypeList[0]);
|
||||
log_info("Memory type property: %d\n",
|
||||
memoryTypeList[0].getMemoryTypeProperty());
|
||||
log_info("Image size : %d\n", totalImageMemSize);
|
||||
|
||||
VulkanDeviceMemory* vkDeviceMem =
|
||||
new VulkanDeviceMemory(vkDevice, totalImageMemSize, memoryTypeList[0],
|
||||
vkExternalMemoryHandleType);
|
||||
vkDeviceMem->bindImage(*vkImage2D, 0);
|
||||
VulkanDeviceMemory* vkDeviceMem = new VulkanDeviceMemory(
|
||||
vkDevice, vkImage2D, memoryTypeList[0], vkExternalMemoryHandleType);
|
||||
vkDeviceMem->bindImage(vkImage2D, 0);
|
||||
|
||||
void* handle = NULL;
|
||||
int fd;
|
||||
@@ -299,7 +305,7 @@ int test_consistency_external_image(cl_device_id deviceID, cl_context _context,
|
||||
extMemProperties.push_back(0);
|
||||
|
||||
const VkImageCreateInfo VulkanImageCreateInfo =
|
||||
vkImage2D->getVkImageCreateInfo();
|
||||
vkImage2D.getVkImageCreateInfo();
|
||||
|
||||
errNum = getCLImageInfoFromVkImageInfo(
|
||||
&VulkanImageCreateInfo, totalImageMemSize, &img_format, &image_desc);
|
||||
|
||||
Reference in New Issue
Block a user