mirror of
https://github.com/KhronosGroup/OpenCL-CTS.git
synced 2026-03-19 06:09:01 +00:00
Corrected procedure to collect proper size of image from VkImageCreateInfo (#2289)
Fixes #2155 according to issue description Additional remark: The image size was previously calculated based on the memory size, which seems unusual. Due to Vulkan's configuration capabilities, the size of memory allocated for a specific texture may differ from what would be expected based on the texture dimensions. Thus, calculating the image dimensions back from the memory size of a Vulkan texture can be challenging.
This commit is contained in:
@@ -232,12 +232,11 @@ struct ConsistencyExternalImageTest : public VulkanTestBase
|
||||
|
||||
const VulkanMemoryTypeList& memoryTypeList =
|
||||
vkImage2D.getMemoryTypeList();
|
||||
uint64_t totalImageMemSize = vkImage2D.getSize();
|
||||
|
||||
log_info("Memory type index: %u\n", (uint32_t)memoryTypeList[0]);
|
||||
log_info("Memory type property: %d\n",
|
||||
memoryTypeList[0].getMemoryTypeProperty());
|
||||
log_info("Image size : %ld\n", totalImageMemSize);
|
||||
log_info("Image size : %ld\n", vkImage2D.getSize());
|
||||
|
||||
VulkanDeviceMemory* vkDeviceMem =
|
||||
new VulkanDeviceMemory(*vkDevice, vkImage2D, memoryTypeList[0],
|
||||
@@ -298,14 +297,12 @@ struct ConsistencyExternalImageTest : public VulkanTestBase
|
||||
const VkImageCreateInfo VulkanImageCreateInfo =
|
||||
vkImage2D.getVkImageCreateInfo();
|
||||
|
||||
errNum = getCLImageInfoFromVkImageInfo(&VulkanImageCreateInfo,
|
||||
totalImageMemSize, &img_format,
|
||||
&image_desc);
|
||||
if (errNum != CL_SUCCESS)
|
||||
{
|
||||
log_error("getCLImageInfoFromVkImageInfo failed!!!");
|
||||
return TEST_FAIL;
|
||||
}
|
||||
auto layout = vkImage2D.getSubresourceLayout();
|
||||
errNum = getCLImageInfoFromVkImageInfo(
|
||||
device, &VulkanImageCreateInfo, &img_format, &image_desc,
|
||||
vulkanImageTiling == VULKAN_IMAGE_TILING_LINEAR ? &layout
|
||||
: nullptr);
|
||||
test_error_fail(errNum, "getCLImageInfoFromVkImageInfo failed!!!");
|
||||
|
||||
clMemWrapper image;
|
||||
|
||||
|
||||
@@ -90,12 +90,11 @@ struct ConsistencyExternalImage1DTest : public VulkanTestBase
|
||||
|
||||
const VulkanMemoryTypeList& memoryTypeList =
|
||||
vkImage1D.getMemoryTypeList();
|
||||
uint64_t totalImageMemSize = vkImage1D.getSize();
|
||||
|
||||
log_info("Memory type index: %u\n", (uint32_t)memoryTypeList[0]);
|
||||
log_info("Memory type property: %d\n",
|
||||
memoryTypeList[0].getMemoryTypeProperty());
|
||||
log_info("Image size : %lu\n", totalImageMemSize);
|
||||
log_info("Image size : %lu\n", vkImage1D.getSize());
|
||||
|
||||
VulkanDeviceMemory* vkDeviceMem =
|
||||
new VulkanDeviceMemory(*vkDevice, vkImage1D, memoryTypeList[0],
|
||||
@@ -156,14 +155,12 @@ struct ConsistencyExternalImage1DTest : public VulkanTestBase
|
||||
const VkImageCreateInfo VulkanImageCreateInfo =
|
||||
vkImage1D.getVkImageCreateInfo();
|
||||
|
||||
errNum = getCLImageInfoFromVkImageInfo(&VulkanImageCreateInfo,
|
||||
totalImageMemSize, &img_format,
|
||||
&image_desc);
|
||||
if (errNum != CL_SUCCESS)
|
||||
{
|
||||
log_error("getCLImageInfoFromVkImageInfo failed!!!");
|
||||
return TEST_FAIL;
|
||||
}
|
||||
auto layout = vkImage1D.getSubresourceLayout();
|
||||
errNum = getCLImageInfoFromVkImageInfo(
|
||||
device, &VulkanImageCreateInfo, &img_format, &image_desc,
|
||||
vulkanImageTiling == VULKAN_IMAGE_TILING_LINEAR ? &layout
|
||||
: nullptr);
|
||||
test_error_fail(errNum, "getCLImageInfoFromVkImageInfo failed!!!");
|
||||
|
||||
clMemWrapper image;
|
||||
|
||||
@@ -174,16 +171,6 @@ struct ConsistencyExternalImage1DTest : public VulkanTestBase
|
||||
test_error(errNum, "Unable to create Image with Properties");
|
||||
image.reset();
|
||||
|
||||
// Passing NULL properties and a valid image_format and image_desc
|
||||
image = clCreateImageWithProperties(context, NULL, CL_MEM_READ_WRITE,
|
||||
&img_format, &image_desc, NULL,
|
||||
&errNum);
|
||||
test_error(errNum,
|
||||
"Unable to create image with NULL properties "
|
||||
"with valid image format and image desc");
|
||||
|
||||
image.reset();
|
||||
|
||||
// Passing image_format as NULL
|
||||
image = clCreateImageWithProperties(context, extMemProperties.data(),
|
||||
CL_MEM_READ_WRITE, NULL,
|
||||
|
||||
@@ -92,12 +92,11 @@ struct ConsistencyExternalImage3DTest : public VulkanTestBase
|
||||
|
||||
const VulkanMemoryTypeList& memoryTypeList =
|
||||
vkImage3D.getMemoryTypeList();
|
||||
uint64_t totalImageMemSize = vkImage3D.getSize();
|
||||
|
||||
log_info("Memory type index: %u\n", (uint32_t)memoryTypeList[0]);
|
||||
log_info("Memory type property: %d\n",
|
||||
memoryTypeList[0].getMemoryTypeProperty());
|
||||
log_info("Image size : %lu\n", totalImageMemSize);
|
||||
log_info("Image size : %lu\n", vkImage3D.getSize());
|
||||
|
||||
VulkanDeviceMemory* vkDeviceMem =
|
||||
new VulkanDeviceMemory(*vkDevice, vkImage3D, memoryTypeList[0],
|
||||
@@ -158,14 +157,12 @@ struct ConsistencyExternalImage3DTest : public VulkanTestBase
|
||||
const VkImageCreateInfo VulkanImageCreateInfo =
|
||||
vkImage3D.getVkImageCreateInfo();
|
||||
|
||||
errNum = getCLImageInfoFromVkImageInfo(&VulkanImageCreateInfo,
|
||||
totalImageMemSize, &img_format,
|
||||
&image_desc);
|
||||
if (errNum != CL_SUCCESS)
|
||||
{
|
||||
log_error("getCLImageInfoFromVkImageInfo failed!!!");
|
||||
return TEST_FAIL;
|
||||
}
|
||||
auto layout = vkImage3D.getSubresourceLayout();
|
||||
errNum = getCLImageInfoFromVkImageInfo(
|
||||
device, &VulkanImageCreateInfo, &img_format, &image_desc,
|
||||
vulkanImageTiling == VULKAN_IMAGE_TILING_LINEAR ? &layout
|
||||
: nullptr);
|
||||
test_error_fail(errNum, "getCLImageInfoFromVkImageInfo failed!!!");
|
||||
|
||||
clMemWrapper image;
|
||||
|
||||
@@ -176,16 +173,6 @@ struct ConsistencyExternalImage3DTest : public VulkanTestBase
|
||||
test_error(errNum, "Unable to create Image with Properties");
|
||||
image.reset();
|
||||
|
||||
// Passing NULL properties and a valid image_format and image_desc
|
||||
image = clCreateImageWithProperties(context, NULL, CL_MEM_READ_WRITE,
|
||||
&img_format, &image_desc, NULL,
|
||||
&errNum);
|
||||
test_error(errNum,
|
||||
"Unable to create image with NULL properties "
|
||||
"with valid image format and image desc");
|
||||
|
||||
image.reset();
|
||||
|
||||
// Passing image_format as NULL
|
||||
image = clCreateImageWithProperties(context, extMemProperties.data(),
|
||||
CL_MEM_READ_WRITE, NULL,
|
||||
|
||||
Reference in New Issue
Block a user