Module: Mesa
Branch: master
Commit: 3f074d2f45145dfc75287804ab73fb719521abe2
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=3f074d2f45145dfc75287804ab73fb719521abe2

Author: Marek Olšák <marek.ol...@amd.com>
Date:   Fri Apr  2 14:00:57 2021 -0400

ac/surface: inline and reorder gfx9_surf_flags for better packing

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-pra...@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10083>

---

 src/amd/common/ac_surface.c                   | 58 +++++++++++++--------------
 src/amd/common/ac_surface.h                   | 15 ++++---
 src/amd/common/ac_surface_modifier_test.c     |  6 +--
 src/amd/vulkan/radv_device.c                  | 18 ++++-----
 src/amd/vulkan/radv_image.c                   | 22 +++++-----
 src/amd/vulkan/radv_meta_resolve.c            |  4 +-
 src/gallium/drivers/radeonsi/si_clear.c       | 16 ++++----
 src/gallium/drivers/radeonsi/si_descriptors.c | 12 +++---
 src/gallium/drivers/radeonsi/si_state.c       | 24 +++++------
 src/gallium/drivers/radeonsi/si_test_blit.c   |  4 +-
 src/gallium/drivers/radeonsi/si_texture.c     |  2 +-
 11 files changed, 90 insertions(+), 91 deletions(-)

diff --git a/src/amd/common/ac_surface.c b/src/amd/common/ac_surface.c
index 23ef5381e76..639e1c4fd0e 100644
--- a/src/amd/common/ac_surface.c
+++ b/src/amd/common/ac_surface.c
@@ -1715,8 +1715,8 @@ static int gfx9_compute_miptree(struct ac_addrlib 
*addrlib, const struct radeon_
    }
 
    if (in->flags.stencil) {
-      surf->u.gfx9.stencil.swizzle_mode = in->swizzleMode;
-      surf->u.gfx9.stencil.epitch =
+      surf->u.gfx9.stencil_swizzle_mode = in->swizzleMode;
+      surf->u.gfx9.stencil_epitch =
          out.epitchIsHeight ? out.mipChainHeight - 1 : out.mipChainPitch - 1;
       surf->surf_alignment = MAX2(surf->surf_alignment, out.baseAlign);
       surf->u.gfx9.stencil_offset = align(surf->surf_size, out.baseAlign);
@@ -1724,14 +1724,14 @@ static int gfx9_compute_miptree(struct ac_addrlib 
*addrlib, const struct radeon_
       return 0;
    }
 
-   surf->u.gfx9.surf.swizzle_mode = in->swizzleMode;
-   surf->u.gfx9.surf.epitch = out.epitchIsHeight ? out.mipChainHeight - 1 : 
out.mipChainPitch - 1;
+   surf->u.gfx9.swizzle_mode = in->swizzleMode;
+   surf->u.gfx9.epitch = out.epitchIsHeight ? out.mipChainHeight - 1 : 
out.mipChainPitch - 1;
 
    /* CMASK fast clear uses these even if FMASK isn't allocated.
     * FMASK only supports the Z swizzle modes, whose numbers are multiples of 
4.
     */
-   surf->u.gfx9.fmask.swizzle_mode = surf->u.gfx9.surf.swizzle_mode & ~0x3;
-   surf->u.gfx9.fmask.epitch = surf->u.gfx9.surf.epitch;
+   surf->u.gfx9.fmask_swizzle_mode = surf->u.gfx9.swizzle_mode & ~0x3;
+   surf->u.gfx9.fmask_epitch = surf->u.gfx9.epitch;
 
    surf->u.gfx9.surf_slice_size = out.sliceSize;
    surf->u.gfx9.surf_pitch = out.pitch;
@@ -1740,11 +1740,11 @@ static int gfx9_compute_miptree(struct ac_addrlib 
*addrlib, const struct radeon_
    surf->surf_alignment = out.baseAlign;
 
    if (!compressed && surf->blk_w > 1 && out.pitch == out.pixelPitch &&
-       surf->u.gfx9.surf.swizzle_mode == ADDR_SW_LINEAR) {
+       surf->u.gfx9.swizzle_mode == ADDR_SW_LINEAR) {
       /* Adjust surf_pitch to be in elements units not in pixels */
       surf->u.gfx9.surf_pitch = align(surf->u.gfx9.surf_pitch / surf->blk_w, 
256 / surf->bpe);
-      surf->u.gfx9.surf.epitch =
-         MAX2(surf->u.gfx9.surf.epitch, surf->u.gfx9.surf_pitch * surf->blk_w 
- 1);
+      surf->u.gfx9.epitch =
+         MAX2(surf->u.gfx9.epitch, surf->u.gfx9.surf_pitch * surf->blk_w - 1);
       /* The surface is really a surf->bpe bytes per pixel surface even if we
        * use it as a surf->bpe bytes per element one.
        * Adjust surf_slice_size and surf_size to reflect the change
@@ -2065,8 +2065,8 @@ static int gfx9_compute_miptree(struct ac_addrlib 
*addrlib, const struct radeon_
          if (ret != ADDR_OK)
             return ret;
 
-         surf->u.gfx9.fmask.swizzle_mode = fin.swizzleMode;
-         surf->u.gfx9.fmask.epitch = fout.pitch - 1;
+         surf->u.gfx9.fmask_swizzle_mode = fin.swizzleMode;
+         surf->u.gfx9.fmask_epitch = fout.pitch - 1;
          surf->fmask_size = fout.fmaskBytes;
          surf->fmask_alignment = fout.baseAlign;
          surf->fmask_slice_size = fout.sliceSize;
@@ -2124,7 +2124,7 @@ static int gfx9_compute_miptree(struct ac_addrlib 
*addrlib, const struct radeon_
          cin.firstMipIdInTail = out.firstMipIdInTail;
 
          if (in->numSamples > 1)
-            cin.swizzleMode = surf->u.gfx9.fmask.swizzle_mode;
+            cin.swizzleMode = surf->u.gfx9.fmask_swizzle_mode;
          else
             cin.swizzleMode = in->swizzleMode;
 
@@ -2299,7 +2299,7 @@ static int gfx9_compute_surface(struct ac_addrlib 
*addrlib, const struct radeon_
       case RADEON_SURF_MODE_2D:
          if (surf->flags & RADEON_SURF_IMPORTED ||
              (info->chip_class >= GFX10 && surf->flags & 
RADEON_SURF_FORCE_SWIZZLE_MODE)) {
-            AddrSurfInfoIn.swizzleMode = surf->u.gfx9.surf.swizzle_mode;
+            AddrSurfInfoIn.swizzleMode = surf->u.gfx9.swizzle_mode;
             break;
          }
 
@@ -2367,13 +2367,13 @@ static int gfx9_compute_surface(struct ac_addrlib 
*addrlib, const struct radeon_
          return r;
    }
 
-   surf->is_linear = surf->u.gfx9.surf.swizzle_mode == ADDR_SW_LINEAR;
+   surf->is_linear = surf->u.gfx9.swizzle_mode == ADDR_SW_LINEAR;
 
    /* Query whether the surface is displayable. */
    /* This is only useful for surfaces that are allocated without SCANOUT. */
    BOOL_32 displayable = false;
    if (!config->is_3d && !config->is_cube) {
-      r = Addr2IsValidDisplaySwizzleMode(addrlib->handle, 
surf->u.gfx9.surf.swizzle_mode,
+      r = Addr2IsValidDisplaySwizzleMode(addrlib->handle, 
surf->u.gfx9.swizzle_mode,
                                          surf->bpe * 8, &displayable);
       if (r)
          return r;
@@ -2395,7 +2395,7 @@ static int gfx9_compute_surface(struct ac_addrlib 
*addrlib, const struct radeon_
    if (surf->num_dcc_levels) {
       assert(is_dcc_supported_by_L2(info, surf));
       if (AddrSurfInfoIn.flags.color)
-         assert(is_dcc_supported_by_CB(info, surf->u.gfx9.surf.swizzle_mode));
+         assert(is_dcc_supported_by_CB(info, surf->u.gfx9.swizzle_mode));
       if (AddrSurfInfoIn.flags.display) {
          assert(is_dcc_supported_by_DCN(info, config, surf, 
surf->u.gfx9.dcc.rb_aligned,
                                         surf->u.gfx9.dcc.pipe_aligned));
@@ -2425,7 +2425,7 @@ static int gfx9_compute_surface(struct ac_addrlib 
*addrlib, const struct radeon_
       surf->flags &= ~RADEON_SURF_TC_COMPATIBLE_HTILE;
    }
 
-   switch (surf->u.gfx9.surf.swizzle_mode) {
+   switch (surf->u.gfx9.swizzle_mode) {
    /* S = standard. */
    case ADDR_SW_256B_S:
    case ADDR_SW_4KB_S:
@@ -2621,7 +2621,7 @@ void ac_surface_set_bo_metadata(const struct radeon_info 
*info, struct radeon_su
    bool scanout;
 
    if (info->chip_class >= GFX9) {
-      surf->u.gfx9.surf.swizzle_mode = AMDGPU_TILING_GET(tiling_flags, 
SWIZZLE_MODE);
+      surf->u.gfx9.swizzle_mode = AMDGPU_TILING_GET(tiling_flags, 
SWIZZLE_MODE);
       surf->u.gfx9.dcc.independent_64B_blocks =
          AMDGPU_TILING_GET(tiling_flags, DCC_INDEPENDENT_64B);
       surf->u.gfx9.dcc.independent_128B_blocks =
@@ -2631,7 +2631,7 @@ void ac_surface_set_bo_metadata(const struct radeon_info 
*info, struct radeon_su
       surf->u.gfx9.display_dcc_pitch_max = AMDGPU_TILING_GET(tiling_flags, 
DCC_PITCH_MAX);
       scanout = AMDGPU_TILING_GET(tiling_flags, SCANOUT);
       *mode =
-         surf->u.gfx9.surf.swizzle_mode > 0 ? RADEON_SURF_MODE_2D : 
RADEON_SURF_MODE_LINEAR_ALIGNED;
+         surf->u.gfx9.swizzle_mode > 0 ? RADEON_SURF_MODE_2D : 
RADEON_SURF_MODE_LINEAR_ALIGNED;
    } else {
       surf->u.legacy.pipe_config = AMDGPU_TILING_GET(tiling_flags, 
PIPE_CONFIG);
       surf->u.legacy.bankw = 1 << AMDGPU_TILING_GET(tiling_flags, BANK_WIDTH);
@@ -2668,7 +2668,7 @@ void ac_surface_get_bo_metadata(const struct radeon_info 
*info, struct radeon_su
          assert((dcc_offset >> 8) != 0 && (dcc_offset >> 8) < (1 << 24));
       }
 
-      *tiling_flags |= AMDGPU_TILING_SET(SWIZZLE_MODE, 
surf->u.gfx9.surf.swizzle_mode);
+      *tiling_flags |= AMDGPU_TILING_SET(SWIZZLE_MODE, 
surf->u.gfx9.swizzle_mode);
       *tiling_flags |= AMDGPU_TILING_SET(DCC_OFFSET_256B, dcc_offset >> 8);
       *tiling_flags |= AMDGPU_TILING_SET(DCC_PITCH_MAX, 
surf->u.gfx9.display_dcc_pitch_max);
       *tiling_flags |=
@@ -2859,14 +2859,14 @@ void ac_surface_get_umd_metadata(const struct 
radeon_info *info, struct radeon_s
 
 static uint32_t ac_surface_get_gfx9_pitch_align(struct radeon_surf *surf)
 {
-   if (surf->u.gfx9.surf.swizzle_mode == ADDR_SW_LINEAR)
+   if (surf->u.gfx9.swizzle_mode == ADDR_SW_LINEAR)
       return 256 / surf->bpe;
 
    if (surf->u.gfx9.resource_type == RADEON_RESOURCE_3D)
       return 1; /* TODO */
 
    unsigned bpe_shift = util_logbase2(surf->bpe) / 2;
-   switch(surf->u.gfx9.surf.swizzle_mode & ~3) {
+   switch(surf->u.gfx9.swizzle_mode & ~3) {
    case ADDR_SW_LINEAR: /* 256B block. */
       return 16 >> bpe_shift;
    case ADDR_SW_4KB_Z:
@@ -2907,7 +2907,7 @@ bool ac_surface_override_offset_stride(const struct 
radeon_info *info, struct ra
             unsigned slices = surf->surf_size / surf->u.gfx9.surf_slice_size;
 
             surf->u.gfx9.surf_pitch = pitch;
-            surf->u.gfx9.surf.epitch = pitch - 1;
+            surf->u.gfx9.epitch = pitch - 1;
             surf->u.gfx9.surf_slice_size = (uint64_t)pitch * 
surf->u.gfx9.surf_height * surf->bpe;
             surf->total_size = surf->surf_size = surf->u.gfx9.surf_slice_size 
* slices;
          }
@@ -3037,8 +3037,8 @@ void ac_surface_print_info(FILE *out, const struct 
radeon_info *info,
               "alignment=%u, swmode=%u, epitch=%u, pitch=%u, blk_w=%u, "
               "blk_h=%u, bpe=%u, flags=0x%"PRIx64"\n",
               surf->surf_size, surf->u.gfx9.surf_slice_size,
-              surf->surf_alignment, surf->u.gfx9.surf.swizzle_mode,
-              surf->u.gfx9.surf.epitch, surf->u.gfx9.surf_pitch,
+              surf->surf_alignment, surf->u.gfx9.swizzle_mode,
+              surf->u.gfx9.epitch, surf->u.gfx9.surf_pitch,
               surf->blk_w, surf->blk_h, surf->bpe, surf->flags);
 
       if (surf->fmask_offset)
@@ -3046,8 +3046,8 @@ void ac_surface_print_info(FILE *out, const struct 
radeon_info *info,
                  "    FMask: offset=%" PRIu64 ", size=%" PRIu64 ", "
                  "alignment=%u, swmode=%u, epitch=%u\n",
                  surf->fmask_offset, surf->fmask_size,
-                 surf->fmask_alignment, surf->u.gfx9.fmask.swizzle_mode,
-                 surf->u.gfx9.fmask.epitch);
+                 surf->fmask_alignment, surf->u.gfx9.fmask_swizzle_mode,
+                 surf->u.gfx9.fmask_epitch);
 
       if (surf->cmask_offset)
          fprintf(out,
@@ -3073,8 +3073,8 @@ void ac_surface_print_info(FILE *out, const struct 
radeon_info *info,
          fprintf(out,
                  "    Stencil: offset=%" PRIu64 ", swmode=%u, epitch=%u\n",
                  surf->u.gfx9.stencil_offset,
-                 surf->u.gfx9.stencil.swizzle_mode,
-                 surf->u.gfx9.stencil.epitch);
+                 surf->u.gfx9.stencil_swizzle_mode,
+                 surf->u.gfx9.stencil_epitch);
    } else {
       fprintf(out,
               "    Surf: size=%" PRIu64 ", alignment=%u, blk_w=%u, blk_h=%u, "
diff --git a/src/amd/common/ac_surface.h b/src/amd/common/ac_surface.h
index f5a8508d85e..c19cecc8340 100644
--- a/src/amd/common/ac_surface.h
+++ b/src/amd/common/ac_surface.h
@@ -150,11 +150,6 @@ enum gfx9_resource_type
    RADEON_RESOURCE_3D,
 };
 
-struct gfx9_surf_flags {
-   uint16_t swizzle_mode; /* tile mode */
-   uint16_t epitch;       /* (pitch - 1) or (height - 1) */
-};
-
 struct gfx9_surf_meta_flags {
    unsigned rb_aligned : 1;   /* optimal for RBs */
    unsigned pipe_aligned : 1; /* optimal for TC */
@@ -170,9 +165,13 @@ struct gfx9_surf_level {
 };
 
 struct gfx9_surf_layout {
-   struct gfx9_surf_flags surf;    /* color or depth surface */
-   struct gfx9_surf_flags fmask;   /* not added to surf_size */
-   struct gfx9_surf_flags stencil; /* added to surf_size, use stencil_offset */
+   uint8_t swizzle_mode;      /* color or depth */
+   uint8_t fmask_swizzle_mode;
+   uint8_t stencil_swizzle_mode;
+
+   uint16_t epitch;           /* gfx9 only, not on gfx10 */
+   uint16_t fmask_epitch;     /* gfx9 only, not on gfx10 */
+   uint16_t stencil_epitch;   /* gfx9 only, not on gfx10 */
 
    struct gfx9_surf_meta_flags dcc; /* metadata of color */
 
diff --git a/src/amd/common/ac_surface_modifier_test.c 
b/src/amd/common/ac_surface_modifier_test.c
index 89eece79dcd..3ad38be9136 100644
--- a/src/amd/common/ac_surface_modifier_test.c
+++ b/src/amd/common/ac_surface_modifier_test.c
@@ -75,7 +75,7 @@ get_addr_from_coord_base(ADDR_HANDLE addrlib, const struct 
radeon_surf *surf,
    din.size = sizeof(ADDR2_COMPUTE_DCCINFO_INPUT);
    dout.size = sizeof(ADDR2_COMPUTE_DCCINFO_OUTPUT);
 
-   din.swizzleMode = surf->u.gfx9.surf.swizzle_mode;
+   din.swizzleMode = surf->u.gfx9.swizzle_mode;
    din.resourceType = ADDR_RSRC_TEX_2D;
    din.bpp = util_format_get_blocksizebits(format);
    din.unalignedWidth = w;
@@ -92,7 +92,7 @@ get_addr_from_coord_base(ADDR_HANDLE addrlib, const struct 
radeon_surf *surf,
 
    ADDR2_COMPUTE_DCC_ADDRFROMCOORD_INPUT dcc_input = {0};
    dcc_input.size = sizeof(dcc_input);
-   dcc_input.swizzleMode = surf->u.gfx9.surf.swizzle_mode;
+   dcc_input.swizzleMode = surf->u.gfx9.swizzle_mode;
    dcc_input.resourceType = ADDR_RSRC_TEX_2D;
    dcc_input.bpp = din.bpp;
    dcc_input.numSlices = 1;
@@ -130,7 +130,7 @@ void generate_hash(struct ac_addrlib *ac_addrlib,
 
    ADDR2_COMPUTE_SURFACE_ADDRFROMCOORD_INPUT input = {0};
    input.size = sizeof(input);
-   input.swizzleMode = surf->u.gfx9.surf.swizzle_mode;
+   input.swizzleMode = surf->u.gfx9.swizzle_mode;
    input.resourceType = ADDR_RSRC_TEX_2D;
    input.bpp = util_format_get_blocksizebits(entry->format);
    input.unalignedWidth = entry->w;
diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c
index 0120a6e05f2..de63bfddec6 100644
--- a/src/amd/vulkan/radv_device.c
+++ b/src/amd/vulkan/radv_device.c
@@ -6296,8 +6296,8 @@ radv_initialise_color_surface(struct radv_device *device, 
struct radv_color_buff
 
    if (device->physical_device->rad_info.chip_class >= GFX9) {
       if (device->physical_device->rad_info.chip_class >= GFX10) {
-         cb->cb_color_attrib3 |= 
S_028EE0_COLOR_SW_MODE(surf->u.gfx9.surf.swizzle_mode) |
-                                 
S_028EE0_FMASK_SW_MODE(surf->u.gfx9.fmask.swizzle_mode) |
+         cb->cb_color_attrib3 |= 
S_028EE0_COLOR_SW_MODE(surf->u.gfx9.swizzle_mode) |
+                                 
S_028EE0_FMASK_SW_MODE(surf->u.gfx9.fmask_swizzle_mode) |
                                  S_028EE0_CMASK_PIPE_ALIGNED(1) |
                                  
S_028EE0_DCC_PIPE_ALIGNED(surf->u.gfx9.dcc.pipe_aligned);
       } else {
@@ -6309,11 +6309,11 @@ radv_initialise_color_surface(struct radv_device 
*device, struct radv_color_buff
          if (surf->dcc_offset)
             meta = surf->u.gfx9.dcc;
 
-         cb->cb_color_attrib |= 
S_028C74_COLOR_SW_MODE(surf->u.gfx9.surf.swizzle_mode) |
-                                
S_028C74_FMASK_SW_MODE(surf->u.gfx9.fmask.swizzle_mode) |
+         cb->cb_color_attrib |= 
S_028C74_COLOR_SW_MODE(surf->u.gfx9.swizzle_mode) |
+                                
S_028C74_FMASK_SW_MODE(surf->u.gfx9.fmask_swizzle_mode) |
                                 S_028C74_RB_ALIGNED(meta.rb_aligned) |
                                 S_028C74_PIPE_ALIGNED(meta.pipe_aligned);
-         cb->cb_mrt_epitch = S_0287A0_EPITCH(surf->u.gfx9.surf.epitch);
+         cb->cb_mrt_epitch = S_0287A0_EPITCH(surf->u.gfx9.epitch);
       }
 
       cb->cb_color_base += surf->u.gfx9.surf_offset >> 8;
@@ -6584,14 +6584,14 @@ radv_initialise_ds_surface(struct radv_device *device, 
struct radv_ds_buffer_inf
 
       ds->db_z_info = S_028038_FORMAT(format) |
                       
S_028038_NUM_SAMPLES(util_logbase2(iview->image->info.samples)) |
-                      S_028038_SW_MODE(surf->u.gfx9.surf.swizzle_mode) |
+                      S_028038_SW_MODE(surf->u.gfx9.swizzle_mode) |
                       S_028038_MAXMIP(iview->image->info.levels - 1) | 
S_028038_ZRANGE_PRECISION(1);
       ds->db_stencil_info =
-         S_02803C_FORMAT(stencil_format) | 
S_02803C_SW_MODE(surf->u.gfx9.stencil.swizzle_mode);
+         S_02803C_FORMAT(stencil_format) | 
S_02803C_SW_MODE(surf->u.gfx9.stencil_swizzle_mode);
 
       if (device->physical_device->rad_info.chip_class == GFX9) {
-         ds->db_z_info2 = S_028068_EPITCH(surf->u.gfx9.surf.epitch);
-         ds->db_stencil_info2 = S_02806C_EPITCH(surf->u.gfx9.stencil.epitch);
+         ds->db_z_info2 = S_028068_EPITCH(surf->u.gfx9.epitch);
+         ds->db_stencil_info2 = S_02806C_EPITCH(surf->u.gfx9.stencil_epitch);
       }
 
       ds->db_depth_view |= S_028008_MIPID(level);
diff --git a/src/amd/vulkan/radv_image.c b/src/amd/vulkan/radv_image.c
index 94a380d22ed..2811055e82e 100644
--- a/src/amd/vulkan/radv_image.c
+++ b/src/amd/vulkan/radv_image.c
@@ -379,7 +379,7 @@ radv_patch_surface_from_metadata(struct radv_device 
*device, struct radeon_surf
       else
          surface->flags |= RADEON_SURF_SET(RADEON_SURF_MODE_LINEAR_ALIGNED, 
MODE);
 
-      surface->u.gfx9.surf.swizzle_mode = md->u.gfx9.swizzle_mode;
+      surface->u.gfx9.swizzle_mode = md->u.gfx9.swizzle_mode;
    } else {
       surface->u.legacy.pipe_config = md->u.legacy.pipe_config;
       surface->u.legacy.bankw = md->u.legacy.bankw;
@@ -722,9 +722,9 @@ si_set_mutable_tex_desc_fields(struct radv_device *device, 
struct radv_image *im
       state[3] &= C_00A00C_SW_MODE;
 
       if (is_stencil) {
-         state[3] |= 
S_00A00C_SW_MODE(plane->surface.u.gfx9.stencil.swizzle_mode);
+         state[3] |= 
S_00A00C_SW_MODE(plane->surface.u.gfx9.stencil_swizzle_mode);
       } else {
-         state[3] |= S_00A00C_SW_MODE(plane->surface.u.gfx9.surf.swizzle_mode);
+         state[3] |= S_00A00C_SW_MODE(plane->surface.u.gfx9.swizzle_mode);
       }
 
       state[6] &= C_00A018_META_DATA_ADDRESS_LO & C_00A018_META_PIPE_ALIGNED;
@@ -751,11 +751,11 @@ si_set_mutable_tex_desc_fields(struct radv_device 
*device, struct radv_image *im
       state[4] &= C_008F20_PITCH;
 
       if (is_stencil) {
-         state[3] |= 
S_008F1C_SW_MODE(plane->surface.u.gfx9.stencil.swizzle_mode);
-         state[4] |= S_008F20_PITCH(plane->surface.u.gfx9.stencil.epitch);
+         state[3] |= 
S_008F1C_SW_MODE(plane->surface.u.gfx9.stencil_swizzle_mode);
+         state[4] |= S_008F20_PITCH(plane->surface.u.gfx9.stencil_epitch);
       } else {
-         state[3] |= S_008F1C_SW_MODE(plane->surface.u.gfx9.surf.swizzle_mode);
-         state[4] |= S_008F20_PITCH(plane->surface.u.gfx9.surf.epitch);
+         state[3] |= S_008F1C_SW_MODE(plane->surface.u.gfx9.swizzle_mode);
+         state[4] |= S_008F20_PITCH(plane->surface.u.gfx9.epitch);
       }
 
       state[5] &=
@@ -949,7 +949,7 @@ gfx10_make_texture_descriptor(struct radv_device *device, 
struct radv_image *ima
          fmask_state[3] =
             S_00A00C_DST_SEL_X(V_008F1C_SQ_SEL_X) | 
S_00A00C_DST_SEL_Y(V_008F1C_SQ_SEL_X) |
             S_00A00C_DST_SEL_Z(V_008F1C_SQ_SEL_X) | 
S_00A00C_DST_SEL_W(V_008F1C_SQ_SEL_X) |
-            
S_00A00C_SW_MODE(image->planes[0].surface.u.gfx9.fmask.swizzle_mode) |
+            
S_00A00C_SW_MODE(image->planes[0].surface.u.gfx9.fmask_swizzle_mode) |
             S_00A00C_TYPE(
                radv_tex_dim(image->type, view_type, image->info.array_size, 0, 
false, false));
          fmask_state[4] = S_00A010_DEPTH(last_layer) | 
S_00A010_BASE_ARRAY(first_layer);
@@ -1129,9 +1129,9 @@ si_make_texture_descriptor(struct radv_device *device, 
struct radv_image *image,
          fmask_state[7] = 0;
 
          if (device->physical_device->rad_info.chip_class == GFX9) {
-            fmask_state[3] |= 
S_008F1C_SW_MODE(image->planes[0].surface.u.gfx9.fmask.swizzle_mode);
+            fmask_state[3] |= 
S_008F1C_SW_MODE(image->planes[0].surface.u.gfx9.fmask_swizzle_mode);
             fmask_state[4] |= S_008F20_DEPTH(last_layer) |
-                              
S_008F20_PITCH(image->planes[0].surface.u.gfx9.fmask.epitch);
+                              
S_008F20_PITCH(image->planes[0].surface.u.gfx9.fmask_epitch);
             fmask_state[5] |= S_008F24_META_PIPE_ALIGNED(1) | 
S_008F24_META_RB_ALIGNED(1);
 
             if (radv_image_is_tc_compat_cmask(image)) {
@@ -1214,7 +1214,7 @@ radv_init_metadata(struct radv_device *device, struct 
radv_image *image,
       uint64_t dcc_offset =
          image->offset +
          (surface->display_dcc_offset ? surface->display_dcc_offset : 
surface->dcc_offset);
-      metadata->u.gfx9.swizzle_mode = surface->u.gfx9.surf.swizzle_mode;
+      metadata->u.gfx9.swizzle_mode = surface->u.gfx9.swizzle_mode;
       metadata->u.gfx9.dcc_offset_256b = dcc_offset >> 8;
       metadata->u.gfx9.dcc_pitch_max = surface->u.gfx9.display_dcc_pitch_max;
       metadata->u.gfx9.dcc_independent_64b_blocks = 
surface->u.gfx9.dcc.independent_64B_blocks;
diff --git a/src/amd/vulkan/radv_meta_resolve.c 
b/src/amd/vulkan/radv_meta_resolve.c
index 3a23f392249..eda31bbedb5 100644
--- a/src/amd/vulkan/radv_meta_resolve.c
+++ b/src/amd/vulkan/radv_meta_resolve.c
@@ -358,8 +358,8 @@ image_hw_resolve_compat(const struct radv_device *device, 
struct radv_image *src
                         struct radv_image *dst_image)
 {
    if (device->physical_device->rad_info.chip_class >= GFX9) {
-      return dst_image->planes[0].surface.u.gfx9.surf.swizzle_mode ==
-             src_image->planes[0].surface.u.gfx9.surf.swizzle_mode;
+      return dst_image->planes[0].surface.u.gfx9.swizzle_mode ==
+             src_image->planes[0].surface.u.gfx9.swizzle_mode;
    } else {
       return dst_image->planes[0].surface.micro_tile_mode ==
              src_image->planes[0].surface.micro_tile_mode;
diff --git a/src/gallium/drivers/radeonsi/si_clear.c 
b/src/gallium/drivers/radeonsi/si_clear.c
index a74badf1d7c..97c66a27196 100644
--- a/src/gallium/drivers/radeonsi/si_clear.c
+++ b/src/gallium/drivers/radeonsi/si_clear.c
@@ -329,7 +329,7 @@ static void si_set_optimal_micro_tile_mode(struct si_screen 
*sscreen, struct si_
 
    if (sscreen->info.chip_class >= GFX9) {
       /* 4K or larger tiles only. 0 is linear. 1-3 are 256B tiles. */
-      assert(tex->surface.u.gfx9.surf.swizzle_mode >= 4);
+      assert(tex->surface.u.gfx9.swizzle_mode >= 4);
 
       /* If you do swizzle_mode % 4, you'll get:
        *   0 = Depth
@@ -339,20 +339,20 @@ static void si_set_optimal_micro_tile_mode(struct 
si_screen *sscreen, struct si_
        *
        * Depth-sample order isn't allowed:
        */
-      assert(tex->surface.u.gfx9.surf.swizzle_mode % 4 != 0);
+      assert(tex->surface.u.gfx9.swizzle_mode % 4 != 0);
 
       switch (tex->last_msaa_resolve_target_micro_mode) {
       case RADEON_MICRO_MODE_DISPLAY:
-         tex->surface.u.gfx9.surf.swizzle_mode &= ~0x3;
-         tex->surface.u.gfx9.surf.swizzle_mode += 2; /* D */
+         tex->surface.u.gfx9.swizzle_mode &= ~0x3;
+         tex->surface.u.gfx9.swizzle_mode += 2; /* D */
          break;
       case RADEON_MICRO_MODE_STANDARD:
-         tex->surface.u.gfx9.surf.swizzle_mode &= ~0x3;
-         tex->surface.u.gfx9.surf.swizzle_mode += 1; /* S */
+         tex->surface.u.gfx9.swizzle_mode &= ~0x3;
+         tex->surface.u.gfx9.swizzle_mode += 1; /* S */
          break;
       case RADEON_MICRO_MODE_RENDER:
-         tex->surface.u.gfx9.surf.swizzle_mode &= ~0x3;
-         tex->surface.u.gfx9.surf.swizzle_mode += 3; /* R */
+         tex->surface.u.gfx9.swizzle_mode &= ~0x3;
+         tex->surface.u.gfx9.swizzle_mode += 3; /* R */
          break;
       default: /* depth */
          assert(!"unexpected micro mode");
diff --git a/src/gallium/drivers/radeonsi/si_descriptors.c 
b/src/gallium/drivers/radeonsi/si_descriptors.c
index 0e4dc81de40..2f3642b7d3c 100644
--- a/src/gallium/drivers/radeonsi/si_descriptors.c
+++ b/src/gallium/drivers/radeonsi/si_descriptors.c
@@ -358,9 +358,9 @@ void si_set_mutable_tex_desc_fields(struct si_screen 
*sscreen, struct si_texture
       state[3] &= C_00A00C_SW_MODE;
 
       if (is_stencil) {
-         state[3] |= 
S_00A00C_SW_MODE(tex->surface.u.gfx9.stencil.swizzle_mode);
+         state[3] |= 
S_00A00C_SW_MODE(tex->surface.u.gfx9.stencil_swizzle_mode);
       } else {
-         state[3] |= S_00A00C_SW_MODE(tex->surface.u.gfx9.surf.swizzle_mode);
+         state[3] |= S_00A00C_SW_MODE(tex->surface.u.gfx9.swizzle_mode);
       }
 
       state[6] &= C_00A018_META_DATA_ADDRESS_LO & C_00A018_META_PIPE_ALIGNED &
@@ -386,10 +386,10 @@ void si_set_mutable_tex_desc_fields(struct si_screen 
*sscreen, struct si_texture
       state[4] &= C_008F20_PITCH;
 
       if (is_stencil) {
-         state[3] |= 
S_008F1C_SW_MODE(tex->surface.u.gfx9.stencil.swizzle_mode);
-         state[4] |= S_008F20_PITCH(tex->surface.u.gfx9.stencil.epitch);
+         state[3] |= 
S_008F1C_SW_MODE(tex->surface.u.gfx9.stencil_swizzle_mode);
+         state[4] |= S_008F20_PITCH(tex->surface.u.gfx9.stencil_epitch);
       } else {
-         uint16_t epitch = tex->surface.u.gfx9.surf.epitch;
+         uint16_t epitch = tex->surface.u.gfx9.epitch;
          if (tex->buffer.b.b.format == PIPE_FORMAT_R8G8_R8B8_UNORM &&
              block_width == 1) {
             /* epitch is patched in ac_surface for sdma/vcn blocks to get
@@ -399,7 +399,7 @@ void si_set_mutable_tex_desc_fields(struct si_screen 
*sscreen, struct si_texture
              */
             epitch = (epitch + 1) / tex->surface.blk_w - 1;
          }
-         state[3] |= S_008F1C_SW_MODE(tex->surface.u.gfx9.surf.swizzle_mode);
+         state[3] |= S_008F1C_SW_MODE(tex->surface.u.gfx9.swizzle_mode);
          state[4] |= S_008F20_PITCH(epitch);
       }
 
diff --git a/src/gallium/drivers/radeonsi/si_state.c 
b/src/gallium/drivers/radeonsi/si_state.c
index 1113e4ad54a..64936b5c52b 100644
--- a/src/gallium/drivers/radeonsi/si_state.c
+++ b/src/gallium/drivers/radeonsi/si_state.c
@@ -2466,14 +2466,14 @@ static void si_init_depth_surface(struct si_context 
*sctx, struct si_surface *su
       surf->db_stencil_base = (tex->buffer.gpu_address + 
tex->surface.u.gfx9.stencil_offset) >> 8;
       z_info = S_028038_FORMAT(format) |
                S_028038_NUM_SAMPLES(util_logbase2(tex->buffer.b.b.nr_samples)) 
|
-               S_028038_SW_MODE(tex->surface.u.gfx9.surf.swizzle_mode) |
+               S_028038_SW_MODE(tex->surface.u.gfx9.swizzle_mode) |
                S_028038_MAXMIP(tex->buffer.b.b.last_level);
       s_info = S_02803C_FORMAT(stencil_format) |
-               S_02803C_SW_MODE(tex->surface.u.gfx9.stencil.swizzle_mode);
+               S_02803C_SW_MODE(tex->surface.u.gfx9.stencil_swizzle_mode);
 
       if (sctx->chip_class == GFX9) {
-         surf->db_z_info2 = S_028068_EPITCH(tex->surface.u.gfx9.surf.epitch);
-         surf->db_stencil_info2 = 
S_02806C_EPITCH(tex->surface.u.gfx9.stencil.epitch);
+         surf->db_z_info2 = S_028068_EPITCH(tex->surface.u.gfx9.epitch);
+         surf->db_stencil_info2 = 
S_02806C_EPITCH(tex->surface.u.gfx9.stencil_epitch);
       }
       surf->db_depth_view |= S_028008_MIPID(level);
       surf->db_depth_size =
@@ -3051,8 +3051,8 @@ static void si_emit_framebuffer_state(struct si_context 
*sctx)
             cb_color_cmask = cb_color_base;
 
          cb_color_attrib3 = cb->cb_color_attrib3 |
-                            
S_028EE0_COLOR_SW_MODE(tex->surface.u.gfx9.surf.swizzle_mode) |
-                            
S_028EE0_FMASK_SW_MODE(tex->surface.u.gfx9.fmask.swizzle_mode) |
+                            
S_028EE0_COLOR_SW_MODE(tex->surface.u.gfx9.swizzle_mode) |
+                            
S_028EE0_FMASK_SW_MODE(tex->surface.u.gfx9.fmask_swizzle_mode) |
                             S_028EE0_CMASK_PIPE_ALIGNED(1) |
                             
S_028EE0_DCC_PIPE_ALIGNED(tex->surface.u.gfx9.dcc.pipe_aligned);
 
@@ -3096,8 +3096,8 @@ static void si_emit_framebuffer_state(struct si_context 
*sctx)
             cb_color_fmask = cb_color_base;
          if (cb->base.u.tex.level > 0)
             cb_color_cmask = cb_color_base;
-         cb_color_attrib |= 
S_028C74_COLOR_SW_MODE(tex->surface.u.gfx9.surf.swizzle_mode) |
-                            
S_028C74_FMASK_SW_MODE(tex->surface.u.gfx9.fmask.swizzle_mode) |
+         cb_color_attrib |= 
S_028C74_COLOR_SW_MODE(tex->surface.u.gfx9.swizzle_mode) |
+                            
S_028C74_FMASK_SW_MODE(tex->surface.u.gfx9.fmask_swizzle_mode) |
                             S_028C74_RB_ALIGNED(meta.rb_aligned) |
                             S_028C74_PIPE_ALIGNED(meta.pipe_aligned);
 
@@ -3119,7 +3119,7 @@ static void si_emit_framebuffer_state(struct si_context 
*sctx)
          radeon_emit(cs, S_028C98_BASE_256B(cb_dcc_base >> 32));    /* 
CB_COLOR0_DCC_BASE_EXT */
 
          radeon_set_context_reg(cs, R_0287A0_CB_MRT0_EPITCH + i * 4,
-                                
S_0287A0_EPITCH(tex->surface.u.gfx9.surf.epitch));
+                                S_0287A0_EPITCH(tex->surface.u.gfx9.epitch));
       } else {
          /* Compute mutable surface parameters (GFX6-GFX8). */
          const struct legacy_surf_level *level_info =
@@ -3891,7 +3891,7 @@ static void gfx10_make_texture_descriptor(
       fmask_state[3] =
          S_00A00C_DST_SEL_X(V_008F1C_SQ_SEL_X) | 
S_00A00C_DST_SEL_Y(V_008F1C_SQ_SEL_X) |
          S_00A00C_DST_SEL_Z(V_008F1C_SQ_SEL_X) | 
S_00A00C_DST_SEL_W(V_008F1C_SQ_SEL_X) |
-         S_00A00C_SW_MODE(tex->surface.u.gfx9.fmask.swizzle_mode) |
+         S_00A00C_SW_MODE(tex->surface.u.gfx9.fmask_swizzle_mode) |
          S_00A00C_TYPE(si_tex_dim(screen, tex, target, 0));
       fmask_state[4] = S_00A010_DEPTH(last_layer) | 
S_00A010_BASE_ARRAY(first_layer);
       fmask_state[5] = 0;
@@ -4215,9 +4215,9 @@ static void si_make_texture_descriptor(struct si_screen 
*screen, struct si_textu
       fmask_state[7] = 0;
 
       if (screen->info.chip_class == GFX9) {
-         fmask_state[3] |= 
S_008F1C_SW_MODE(tex->surface.u.gfx9.fmask.swizzle_mode);
+         fmask_state[3] |= 
S_008F1C_SW_MODE(tex->surface.u.gfx9.fmask_swizzle_mode);
          fmask_state[4] |=
-            S_008F20_DEPTH(last_layer) | 
S_008F20_PITCH(tex->surface.u.gfx9.fmask.epitch);
+            S_008F20_DEPTH(last_layer) | 
S_008F20_PITCH(tex->surface.u.gfx9.fmask_epitch);
          fmask_state[5] |= S_008F24_META_PIPE_ALIGNED(1) |
                            S_008F24_META_RB_ALIGNED(1);
       } else {
diff --git a/src/gallium/drivers/radeonsi/si_test_blit.c 
b/src/gallium/drivers/radeonsi/si_test_blit.c
index 7f011e8c4a5..c4351ad5f8a 100644
--- a/src/gallium/drivers/radeonsi/si_test_blit.c
+++ b/src/gallium/drivers/radeonsi/si_test_blit.c
@@ -121,7 +121,7 @@ static enum pipe_format choose_format()
 static const char *array_mode_to_string(struct si_screen *sscreen, struct 
radeon_surf *surf)
 {
    if (sscreen->info.chip_class >= GFX9) {
-      switch (surf->u.gfx9.surf.swizzle_mode) {
+      switch (surf->u.gfx9.swizzle_mode) {
       case 0:
          return "  LINEAR";
       case 21:
@@ -135,7 +135,7 @@ static const char *array_mode_to_string(struct si_screen 
*sscreen, struct radeon
       case 27:
          return "64KB_R_X";
       default:
-         printf("Unhandled swizzle mode = %u\n", 
surf->u.gfx9.surf.swizzle_mode);
+         printf("Unhandled swizzle mode = %u\n", surf->u.gfx9.swizzle_mode);
          return " UNKNOWN";
       }
    } else {
diff --git a/src/gallium/drivers/radeonsi/si_texture.c 
b/src/gallium/drivers/radeonsi/si_texture.c
index ce750fe3d90..0980cc55466 100644
--- a/src/gallium/drivers/radeonsi/si_texture.c
+++ b/src/gallium/drivers/radeonsi/si_texture.c
@@ -256,7 +256,7 @@ static int si_init_surface(struct si_screen *sscreen, 
struct radeon_surf *surfac
       flags |= RADEON_SURF_FORCE_SWIZZLE_MODE;
 
       if (sscreen->info.chip_class >= GFX10)
-         surface->u.gfx9.surf.swizzle_mode = ADDR_SW_64KB_R_X;
+         surface->u.gfx9.swizzle_mode = ADDR_SW_64KB_R_X;
    }
 
    surface->modifier = modifier;

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

Reply via email to