panfrost: Handle Z24 textures
[mesa.git] / src / freedreno / vulkan / tu_image.c
index 8c91ea504be368614c0068d5035807841e823207..657612d42c37fab25dae2771453ab388b51629bb 100644 (file)
@@ -283,12 +283,18 @@ tu_GetImageSubresourceLayout(VkDevice _device,
                              const VkImageSubresource *pSubresource,
                              VkSubresourceLayout *pLayout)
 {
-   tu_stub();
+   TU_FROM_HANDLE(tu_image, image, _image);
+
+   const uint32_t layer_offset = image->layer_size * pSubresource->arrayLayer;
+   const struct tu_image_level *level =
+      image->levels + pSubresource->mipLevel;
 
-   /* Even though this is a stub, let's avoid heisenbugs by providing
-    * deterministic behavior.
-    */
-   memset(pLayout, 0, sizeof(*pLayout));
+   pLayout->offset = layer_offset + level->offset;
+   pLayout->size = level->size;
+   pLayout->rowPitch =
+      level->pitch * vk_format_get_blocksize(image->vk_format);
+   pLayout->arrayPitch = image->layer_size;
+   pLayout->depthPitch = level->size;
 }
 
 VkResult