icd: Set texel size is 32
authorlocke-lunarg <locke@lunarg.com>
Fri, 17 Apr 2020 00:17:48 +0000 (18:17 -0600)
committerLocke Lin <47329816+locke-lunarg@users.noreply.github.com>
Fri, 17 Apr 2020 18:59:09 +0000 (12:59 -0600)
4 bytes is  too small for many format. It causes fail in some situation.
32 bytes is the biggest size in the whole format, so it should be better.

icd/generated/mock_icd.cpp
scripts/mock_icd_generator.py

index f400e97..ecc188a 100644 (file)
@@ -858,9 +858,9 @@ static VKAPI_ATTR VkResult VKAPI_CALL CreateImage(
 {
     unique_lock_t lock(global_lock);
     *pImage = (VkImage)global_unique_handle++;
-    // TODO: A texel size is 4 bytes for now whatever the format is. It could be changed to more accurate size if need be.
+    // TODO: A pixel size is 32 bytes. This accounts for the largest possible pixel size of any format. It could be changed to more accurate size if need be.
     image_memory_size_map[device][*pImage] = pCreateInfo->extent.width * pCreateInfo->extent.height * pCreateInfo->extent.depth *
-                                             4 * pCreateInfo->arrayLayers * (pCreateInfo->mipLevels > 1 ? 2 : 1);
+                                             32 * pCreateInfo->arrayLayers * (pCreateInfo->mipLevels > 1 ? 2 : 1);
     // plane count
     switch (pCreateInfo->format) {
         case VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM:
index 74c5c7e..bf48520 100644 (file)
@@ -951,9 +951,9 @@ CUSTOM_C_INTERCEPTS = {
 'vkCreateImage': '''
     unique_lock_t lock(global_lock);
     *pImage = (VkImage)global_unique_handle++;
-    // TODO: A texel size is 4 bytes for now whatever the format is. It could be changed to more accurate size if need be.
+    // TODO: A pixel size is 32 bytes. This accounts for the largest possible pixel size of any format. It could be changed to more accurate size if need be.
     image_memory_size_map[device][*pImage] = pCreateInfo->extent.width * pCreateInfo->extent.height * pCreateInfo->extent.depth *
-                                             4 * pCreateInfo->arrayLayers * (pCreateInfo->mipLevels > 1 ? 2 : 1);
+                                             32 * pCreateInfo->arrayLayers * (pCreateInfo->mipLevels > 1 ? 2 : 1);
     // plane count
     switch (pCreateInfo->format) {
         case VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM: