From: Nicolai Hähnle <nicolai.haeh...@amd.com>

We're not using thick tiling modes, so we can just derive the value
ourselves.
---
 src/amd/vulkan/radv_image.c                        | 2 +-
 src/amd/vulkan/radv_radeon_winsys.h                | 1 -
 src/amd/vulkan/winsys/amdgpu/radv_amdgpu_surface.c | 4 ----
 3 files changed, 1 insertion(+), 6 deletions(-)

diff --git a/src/amd/vulkan/radv_image.c b/src/amd/vulkan/radv_image.c
index 8880e5c..f663e29 100644
--- a/src/amd/vulkan/radv_image.c
+++ b/src/amd/vulkan/radv_image.c
@@ -842,21 +842,21 @@ void radv_GetImageSubresourceLayout(
        int level = pSubresource->mipLevel;
        int layer = pSubresource->arrayLayer;
        struct radeon_surf *surface = &image->surface;
 
        pLayout->offset = surface->level[level].offset + 
surface->level[level].slice_size * layer;
        pLayout->rowPitch = surface->level[level].nblk_x * surface->bpe;
        pLayout->arrayPitch = surface->level[level].slice_size;
        pLayout->depthPitch = surface->level[level].slice_size;
        pLayout->size = surface->level[level].slice_size;
        if (image->type == VK_IMAGE_TYPE_3D)
-               pLayout->size *= surface->level[level].nblk_z;
+               pLayout->size *= u_minify(image->info.depth, level);
 }
 
 
 VkResult
 radv_CreateImageView(VkDevice _device,
                     const VkImageViewCreateInfo *pCreateInfo,
                     const VkAllocationCallbacks *pAllocator,
                     VkImageView *pView)
 {
        RADV_FROM_HANDLE(radv_device, device, _device);
diff --git a/src/amd/vulkan/radv_radeon_winsys.h 
b/src/amd/vulkan/radv_radeon_winsys.h
index 365ff11..b4fc781 100644
--- a/src/amd/vulkan/radv_radeon_winsys.h
+++ b/src/amd/vulkan/radv_radeon_winsys.h
@@ -162,21 +162,20 @@ struct radeon_surf_info {
        uint8_t samples;
        uint8_t levels;
        uint16_t array_size;
 };
 
 struct radeon_surf_level {
        uint64_t                    offset;
        uint64_t                    slice_size;
        uint32_t                    nblk_x;
        uint32_t                    nblk_y;
-       uint32_t                    nblk_z;
        uint32_t                    mode;
        uint64_t                    dcc_offset;
        uint64_t                    dcc_fast_clear_size;
 };
 
 
 /* surface defintions from the winsys */
 struct radeon_surf {
        /* These are inputs to the calculator. */
        uint32_t                    blk_w;
diff --git a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_surface.c 
b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_surface.c
index ab1f952..44b1c8f 100644
--- a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_surface.c
+++ b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_surface.c
@@ -198,24 +198,20 @@ static int radv_compute_level(ADDR_HANDLE addrlib,
                                     AddrSurfInfoIn,
                                     AddrSurfInfoOut);
        if (ret != ADDR_OK)
                return ret;
 
        surf_level = is_stencil ? &surf->stencil_level[level] : 
&surf->level[level];
        surf_level->offset = align64(surf->bo_size, AddrSurfInfoOut->baseAlign);
        surf_level->slice_size = AddrSurfInfoOut->sliceSize;
        surf_level->nblk_x = AddrSurfInfoOut->pitch;
        surf_level->nblk_y = AddrSurfInfoOut->height;
-       if (type == RADEON_SURF_TYPE_3D)
-               surf_level->nblk_z = AddrSurfInfoOut->depth;
-       else
-               surf_level->nblk_z = 1;
 
        switch (AddrSurfInfoOut->tileMode) {
        case ADDR_TM_LINEAR_ALIGNED:
                surf_level->mode = RADEON_SURF_MODE_LINEAR_ALIGNED;
                break;
        case ADDR_TM_1D_TILED_THIN1:
                surf_level->mode = RADEON_SURF_MODE_1D;
                break;
        case ADDR_TM_2D_TILED_THIN1:
                surf_level->mode = RADEON_SURF_MODE_2D;
-- 
2.9.3

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to