mirror of
https://github.com/KhronosGroup/OpenCL-CTS.git
synced 2026-03-19 06:09:01 +00:00
Stop using optimally-tiled images in external memory tests (#2349)
Support for optimally-tiled images and tiling inference in general is implementation-defined. It should not be relied upon in the CTS. Also build the code base as C++17 for std::optional. Many Khronos projects are now using C++17 and the transition in the CTS is IMO overdue. Signed-off-by: Kevin Petit <kevin.petit@arm.com>
This commit is contained in:
@@ -216,14 +216,19 @@ struct ConsistencyExternalImageTest : public VulkanTestBase
|
||||
getSupportedVulkanExternalMemoryHandleTypeList(
|
||||
vkDevice->getPhysicalDevice())[0];
|
||||
|
||||
VulkanImageTiling vulkanImageTiling =
|
||||
vkClExternalMemoryHandleTilingAssumption(
|
||||
device, vkExternalMemoryHandleType, &errNum);
|
||||
auto vulkanImageTiling = vkClExternalMemoryHandleTilingAssumption(
|
||||
device, vkExternalMemoryHandleType, &errNum);
|
||||
ASSERT_SUCCESS(errNum, "Failed to query OpenCL tiling mode");
|
||||
if (vulkanImageTiling == std::nullopt)
|
||||
{
|
||||
log_info("No image tiling supported by both Vulkan and OpenCL "
|
||||
"could be found\n");
|
||||
return TEST_SKIPPED_ITSELF;
|
||||
}
|
||||
|
||||
VulkanImage2D vkImage2D = VulkanImage2D(
|
||||
*vkDevice, VULKAN_FORMAT_R8G8B8A8_UNORM, width, height,
|
||||
vulkanImageTiling, 1, vkExternalMemoryHandleType);
|
||||
*vulkanImageTiling, 1, vkExternalMemoryHandleType);
|
||||
|
||||
const VulkanMemoryTypeList& memoryTypeList =
|
||||
vkImage2D.getMemoryTypeList();
|
||||
|
||||
@@ -73,14 +73,20 @@ struct ConsistencyExternalImage1DTest : public VulkanTestBase
|
||||
getSupportedVulkanExternalMemoryHandleTypeList(
|
||||
vkDevice->getPhysicalDevice())[0];
|
||||
|
||||
VulkanImageTiling vulkanImageTiling =
|
||||
vkClExternalMemoryHandleTilingAssumption(
|
||||
device, vkExternalMemoryHandleType, &errNum);
|
||||
auto vulkanImageTiling = vkClExternalMemoryHandleTilingAssumption(
|
||||
device, vkExternalMemoryHandleType, &errNum);
|
||||
ASSERT_SUCCESS(errNum, "Failed to query OpenCL tiling mode");
|
||||
if (vulkanImageTiling == std::nullopt)
|
||||
{
|
||||
log_info("No image tiling supported by both Vulkan and OpenCL "
|
||||
"could be found\n");
|
||||
return TEST_SKIPPED_ITSELF;
|
||||
}
|
||||
|
||||
|
||||
VulkanImage1D vkImage1D =
|
||||
VulkanImage1D(*vkDevice, VULKAN_FORMAT_R8G8B8A8_UNORM, width,
|
||||
vulkanImageTiling, 1, vkExternalMemoryHandleType);
|
||||
*vulkanImageTiling, 1, vkExternalMemoryHandleType);
|
||||
|
||||
const VulkanMemoryTypeList& memoryTypeList =
|
||||
vkImage1D.getMemoryTypeList();
|
||||
|
||||
@@ -76,14 +76,19 @@ struct ConsistencyExternalImage3DTest : public VulkanTestBase
|
||||
getSupportedVulkanExternalMemoryHandleTypeList(
|
||||
vkDevice->getPhysicalDevice())[0];
|
||||
|
||||
VulkanImageTiling vulkanImageTiling =
|
||||
vkClExternalMemoryHandleTilingAssumption(
|
||||
device, vkExternalMemoryHandleType, &errNum);
|
||||
auto vulkanImageTiling = vkClExternalMemoryHandleTilingAssumption(
|
||||
device, vkExternalMemoryHandleType, &errNum);
|
||||
ASSERT_SUCCESS(errNum, "Failed to query OpenCL tiling mode");
|
||||
if (vulkanImageTiling == std::nullopt)
|
||||
{
|
||||
log_info("No image tiling supported by both Vulkan and OpenCL "
|
||||
"could be found\n");
|
||||
return TEST_SKIPPED_ITSELF;
|
||||
}
|
||||
|
||||
VulkanImage3D vkImage3D = VulkanImage3D(
|
||||
*vkDevice, VULKAN_FORMAT_R8G8B8A8_UNORM, width, height, depth,
|
||||
vulkanImageTiling, 1, vkExternalMemoryHandleType);
|
||||
*vulkanImageTiling, 1, vkExternalMemoryHandleType);
|
||||
|
||||
const VulkanMemoryTypeList& memoryTypeList =
|
||||
vkImage3D.getMemoryTypeList();
|
||||
|
||||
@@ -368,16 +368,22 @@ int run_test_with_two_queue(
|
||||
}
|
||||
log_info("External memory handle type: %d \n",
|
||||
vkExternalMemoryHandleType);
|
||||
VulkanImageTiling vulkanImageTiling =
|
||||
auto vulkanImageTiling =
|
||||
vkClExternalMemoryHandleTilingAssumption(
|
||||
deviceId,
|
||||
vkExternalMemoryHandleTypeList[emhtIdx], &err);
|
||||
ASSERT_SUCCESS(err,
|
||||
"Failed to query OpenCL tiling mode");
|
||||
if (vulkanImageTiling == std::nullopt)
|
||||
{
|
||||
log_info("No image tiling supported by both Vulkan "
|
||||
"and OpenCL could be found\n");
|
||||
return TEST_SKIPPED_ITSELF;
|
||||
}
|
||||
|
||||
VulkanImage2D vkDummyImage2D(
|
||||
vkDevice, vkFormatList[0], widthList[0],
|
||||
heightList[0], vulkanImageTiling, 1,
|
||||
heightList[0], *vulkanImageTiling, 1,
|
||||
vkExternalMemoryHandleType);
|
||||
const VulkanMemoryTypeList &memoryTypeList =
|
||||
vkDummyImage2D.getMemoryTypeList();
|
||||
@@ -405,7 +411,7 @@ int run_test_with_two_queue(
|
||||
{
|
||||
VulkanImage2D vkImage2D(
|
||||
vkDevice, vkFormat, width, height,
|
||||
vulkanImageTiling, numMipLevels,
|
||||
*vulkanImageTiling, numMipLevels,
|
||||
vkExternalMemoryHandleType);
|
||||
ASSERT_LEQ(vkImage2D.getSize(), maxImage2DSize);
|
||||
totalImageMemSize =
|
||||
@@ -414,7 +420,7 @@ int run_test_with_two_queue(
|
||||
}
|
||||
VulkanImage2DList vkImage2DList(
|
||||
num2DImages, vkDevice, vkFormat, width, height,
|
||||
vulkanImageTiling, numMipLevels,
|
||||
*vulkanImageTiling, numMipLevels,
|
||||
vkExternalMemoryHandleType);
|
||||
for (size_t bIdx = 0; bIdx < num2DImages; bIdx++)
|
||||
{
|
||||
@@ -436,7 +442,7 @@ int run_test_with_two_queue(
|
||||
vkDevice, vkImage2DList);
|
||||
VulkanImage2DList vkImage2DList2(
|
||||
num2DImages, vkDevice, vkFormat, width, height,
|
||||
vulkanImageTiling, numMipLevels,
|
||||
*vulkanImageTiling, numMipLevels,
|
||||
vkExternalMemoryHandleType);
|
||||
for (size_t bIdx = 0; bIdx < num2DImages; bIdx++)
|
||||
{
|
||||
@@ -982,16 +988,21 @@ int run_test_with_one_queue(
|
||||
continue;
|
||||
}
|
||||
|
||||
VulkanImageTiling vulkanImageTiling =
|
||||
auto vulkanImageTiling =
|
||||
vkClExternalMemoryHandleTilingAssumption(
|
||||
deviceId,
|
||||
vkExternalMemoryHandleTypeList[emhtIdx], &err);
|
||||
test_error_and_cleanup(
|
||||
err, CLEANUP, "Failed to query OpenCL tiling mode");
|
||||
|
||||
if (vulkanImageTiling == std::nullopt)
|
||||
{
|
||||
log_info("No image tiling supported by both Vulkan "
|
||||
"and OpenCL could be found\n");
|
||||
return TEST_SKIPPED_ITSELF;
|
||||
}
|
||||
VulkanImage2D vkDummyImage2D(
|
||||
vkDevice, vkFormatList[0], widthList[0],
|
||||
heightList[0], vulkanImageTiling, 1,
|
||||
heightList[0], *vulkanImageTiling, 1,
|
||||
vkExternalMemoryHandleType);
|
||||
const VulkanMemoryTypeList &memoryTypeList =
|
||||
vkDummyImage2D.getMemoryTypeList();
|
||||
@@ -1018,7 +1029,7 @@ int run_test_with_one_queue(
|
||||
{
|
||||
VulkanImage2D vkImage2D(
|
||||
vkDevice, vkFormat, width, height,
|
||||
vulkanImageTiling, numMipLevels,
|
||||
*vulkanImageTiling, numMipLevels,
|
||||
vkExternalMemoryHandleType);
|
||||
ASSERT_LEQ(vkImage2D.getSize(), maxImage2DSize);
|
||||
totalImageMemSize =
|
||||
@@ -1027,7 +1038,7 @@ int run_test_with_one_queue(
|
||||
}
|
||||
VulkanImage2DList vkImage2DList(
|
||||
num2DImages, vkDevice, vkFormat, width, height,
|
||||
vulkanImageTiling, numMipLevels,
|
||||
*vulkanImageTiling, numMipLevels,
|
||||
vkExternalMemoryHandleType);
|
||||
for (size_t bIdx = 0; bIdx < vkImage2DList.size();
|
||||
bIdx++)
|
||||
@@ -1053,7 +1064,7 @@ int run_test_with_one_queue(
|
||||
|
||||
VulkanImage2DList vkImage2DList2(
|
||||
num2DImages, vkDevice, vkFormat, width, height,
|
||||
vulkanImageTiling, numMipLevels,
|
||||
*vulkanImageTiling, numMipLevels,
|
||||
vkExternalMemoryHandleType);
|
||||
for (size_t bIdx = 0; bIdx < vkImage2DList2.size();
|
||||
bIdx++)
|
||||
|
||||
Reference in New Issue
Block a user