From: Marek Olšák <marek.ol...@amd.com>

---
 src/gallium/drivers/r600/evergreen_state.c |  2 +-
 src/gallium/drivers/r600/r600_state.c      |  2 +-
 src/gallium/drivers/radeon/r600_texture.c  | 32 +++++++++++++++---------------
 src/gallium/drivers/radeonsi/si_state.c    |  4 ++--
 4 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/src/gallium/drivers/r600/evergreen_state.c 
b/src/gallium/drivers/r600/evergreen_state.c
index 58d98a9..6344c83 100644
--- a/src/gallium/drivers/r600/evergreen_state.c
+++ b/src/gallium/drivers/r600/evergreen_state.c
@@ -1537,21 +1537,21 @@ static void evergreen_emit_framebuffer_state(struct 
r600_context *rctx, struct r
                        radeon_set_context_reg(cs, R_028C70_CB_COLOR0_INFO + i 
* 0x3C,
                                               
S_028C70_FORMAT(V_028C70_COLOR_INVALID));
                        continue;
                }
 
                tex = (struct r600_texture *)cb->base.texture;
                reloc = radeon_add_to_buffer_list(&rctx->b,
                                              &rctx->b.gfx,
                                              (struct 
r600_resource*)cb->base.texture,
                                              RADEON_USAGE_READWRITE,
-                                             tex->surface.nsamples > 1 ?
+                                             tex->resource.b.b.nr_samples > 1 ?
                                                      
RADEON_PRIO_COLOR_BUFFER_MSAA :
                                                      RADEON_PRIO_COLOR_BUFFER);
 
                if (tex->cmask_buffer && tex->cmask_buffer != &tex->resource) {
                        cmask_reloc = radeon_add_to_buffer_list(&rctx->b, 
&rctx->b.gfx,
                                tex->cmask_buffer, RADEON_USAGE_READWRITE,
                                RADEON_PRIO_CMASK);
                } else {
                        cmask_reloc = reloc;
                }
diff --git a/src/gallium/drivers/r600/r600_state.c 
b/src/gallium/drivers/r600/r600_state.c
index 2b58d98..4a94a19 100644
--- a/src/gallium/drivers/r600/r600_state.c
+++ b/src/gallium/drivers/r600/r600_state.c
@@ -749,21 +749,21 @@ r600_create_sampler_view_custom(struct pipe_context *ctx,
        view->tex_resource = &tmp->resource;
        view->tex_resource_words[0] = 
(S_038000_DIM(r600_tex_dim(texture->target, texture->nr_samples)) |
                                       S_038000_TILE_MODE(array_mode) |
                                       S_038000_TILE_TYPE(tmp->non_disp_tiling) 
|
                                       S_038000_PITCH((pitch / 8) - 1) |
                                       S_038000_TEX_WIDTH(width - 1));
        view->tex_resource_words[1] = (S_038004_TEX_HEIGHT(height - 1) |
                                       S_038004_TEX_DEPTH(depth - 1) |
                                       S_038004_DATA_FORMAT(format));
        view->tex_resource_words[2] = tmp->surface.level[offset_level].offset 
>> 8;
-       if (offset_level >= tmp->surface.last_level) {
+       if (offset_level >= tmp->resource.b.b.last_level) {
                view->tex_resource_words[3] = 
tmp->surface.level[offset_level].offset >> 8;
        } else {
                view->tex_resource_words[3] = tmp->surface.level[offset_level + 
1].offset >> 8;
        }
        view->tex_resource_words[4] = (word4 |
                                       S_038010_REQUEST_SIZE(1) |
                                       S_038010_ENDIAN_SWAP(endian) |
                                       S_038010_BASE_LEVEL(0));
        view->tex_resource_words[5] = 
(S_038014_BASE_ARRAY(state->u.tex.first_layer) |
                                       
S_038014_LAST_ARRAY(state->u.tex.last_layer));
diff --git a/src/gallium/drivers/radeon/r600_texture.c 
b/src/gallium/drivers/radeon/r600_texture.c
index 1b1ea66..ca67125 100644
--- a/src/gallium/drivers/radeon/r600_texture.c
+++ b/src/gallium/drivers/radeon/r600_texture.c
@@ -282,24 +282,24 @@ static int r600_init_surface(struct r600_common_screen 
*rscreen,
                surface->flags |= RADEON_SURF_HAS_TILE_MODE_INDEX;
        }
 
        if (rscreen->chip_class >= VI &&
            (ptex->flags & R600_RESOURCE_FLAG_DISABLE_DCC ||
             ptex->format == PIPE_FORMAT_R9G9B9E5_FLOAT))
                surface->flags |= RADEON_SURF_DISABLE_DCC;
 
        if (ptex->bind & PIPE_BIND_SCANOUT || is_scanout) {
                /* This should catch bugs in gallium users setting incorrect 
flags. */
-               assert(surface->nsamples == 1 &&
-                      surface->array_size == 1 &&
-                      surface->npix_z == 1 &&
-                      surface->last_level == 0 &&
+               assert(ptex->nr_samples <= 1 &&
+                      ptex->array_size == 1 &&
+                      ptex->depth0 == 1 &&
+                      ptex->last_level == 0 &&
                       !(surface->flags & RADEON_SURF_Z_OR_SBUFFER));
 
                surface->flags |= RADEON_SURF_SCANOUT;
        }
 
        if (is_imported)
                surface->flags |= RADEON_SURF_IMPORTED;
 
        r = rscreen->ws->surface_init(rscreen->ws, surface);
        if (r) {
@@ -709,22 +709,22 @@ void r600_texture_get_cmask_info(struct 
r600_common_screen *rscreen,
        unsigned cmask_cache_bits = 1024;
        unsigned num_pipes = rscreen->info.num_tile_pipes;
        unsigned pipe_interleave_bytes = rscreen->info.pipe_interleave_bytes;
 
        unsigned elements_per_macro_tile = (cmask_cache_bits / element_bits) * 
num_pipes;
        unsigned pixels_per_macro_tile = elements_per_macro_tile * 
cmask_tile_elements;
        unsigned sqrt_pixels_per_macro_tile = sqrt(pixels_per_macro_tile);
        unsigned macro_tile_width = 
util_next_power_of_two(sqrt_pixels_per_macro_tile);
        unsigned macro_tile_height = pixels_per_macro_tile / macro_tile_width;
 
-       unsigned pitch_elements = align(rtex->surface.npix_x, macro_tile_width);
-       unsigned height = align(rtex->surface.npix_y, macro_tile_height);
+       unsigned pitch_elements = align(rtex->resource.b.b.width0, 
macro_tile_width);
+       unsigned height = align(rtex->resource.b.b.height0, macro_tile_height);
 
        unsigned base_align = num_pipes * pipe_interleave_bytes;
        unsigned slice_bytes =
                ((pitch_elements * height * element_bits + 7) / 8) / 
cmask_tile_elements;
 
        assert(macro_tile_width % 128 == 0);
        assert(macro_tile_height % 128 == 0);
 
        out->pitch = pitch_elements;
        out->height = height;
@@ -761,22 +761,22 @@ static void si_texture_get_cmask_info(struct 
r600_common_screen *rscreen,
                cl_width = 64;
                cl_height = 64;
                break;
        default:
                assert(0);
                return;
        }
 
        unsigned base_align = num_pipes * pipe_interleave_bytes;
 
-       unsigned width = align(rtex->surface.npix_x, cl_width*8);
-       unsigned height = align(rtex->surface.npix_y, cl_height*8);
+       unsigned width = align(rtex->resource.b.b.width0, cl_width*8);
+       unsigned height = align(rtex->resource.b.b.height0, cl_height*8);
        unsigned slice_elements = (width * height) / (8*8);
 
        /* Each element of CMASK is a nibble. */
        unsigned slice_bytes = slice_elements / 2;
 
        out->pitch = width;
        out->height = height;
        out->xalign = cl_width * 8;
        out->yalign = cl_height * 8;
        out->slice_tile_max = (width * height) / (128*128);
@@ -892,22 +892,22 @@ static unsigned r600_texture_get_htile_size(struct 
r600_common_screen *rscreen,
                break;
        case 16:
                cl_width = 128;
                cl_height = 64;
                break;
        default:
                assert(0);
                return 0;
        }
 
-       width = align(rtex->surface.npix_x, cl_width * 8);
-       height = align(rtex->surface.npix_y, cl_height * 8);
+       width = align(rtex->resource.b.b.width0, cl_width * 8);
+       height = align(rtex->resource.b.b.height0, cl_height * 8);
 
        slice_elements = (width * height) / (8 * 8);
        slice_bytes = slice_elements * 4;
 
        pipe_interleave_bytes = rscreen->info.pipe_interleave_bytes;
        base_align = num_pipes * pipe_interleave_bytes;
 
        rtex->htile.pitch = width;
        rtex->htile.height = height;
        rtex->htile.xalign = cl_width * 8;
@@ -992,47 +992,47 @@ void r600_print_texture_info(struct r600_texture *rtex, 
FILE *f)
                        "xalign=%u, yalign=%u, TC_compatible = %u\n",
                        rtex->htile_buffer->b.b.width0,
                        rtex->htile_buffer->buf->alignment, rtex->htile.pitch,
                        rtex->htile.height, rtex->htile.xalign, 
rtex->htile.yalign,
                        rtex->tc_compatible_htile);
 
        if (rtex->dcc_offset) {
                fprintf(f, "  DCC: offset=%"PRIu64", size=%"PRIu64", 
alignment=%"PRIu64"\n",
                        rtex->dcc_offset, rtex->surface.dcc_size,
                        rtex->surface.dcc_alignment);
-               for (i = 0; i <= rtex->surface.last_level; i++)
+               for (i = 0; i <= rtex->resource.b.b.last_level; i++)
                        fprintf(f, "  DCCLevel[%i]: enabled=%u, 
offset=%"PRIu64", "
                                "fast_clear_size=%"PRIu64"\n",
                                i, rtex->surface.level[i].dcc_enabled,
                                rtex->surface.level[i].dcc_offset,
                                rtex->surface.level[i].dcc_fast_clear_size);
        }
 
-       for (i = 0; i <= rtex->surface.last_level; i++)
+       for (i = 0; i <= rtex->resource.b.b.last_level; i++)
                fprintf(f, "  Level[%i]: offset=%"PRIu64", 
slice_size=%"PRIu64", "
                        "npix_x=%u, npix_y=%u, npix_z=%u, nblk_x=%u, nblk_y=%u, 
"
                        "nblk_z=%u, pitch_bytes=%u, mode=%u\n",
                        i, rtex->surface.level[i].offset,
                        rtex->surface.level[i].slice_size,
                        u_minify(rtex->resource.b.b.width0, i),
                        u_minify(rtex->resource.b.b.height0, i),
                        u_minify(rtex->resource.b.b.depth0, i),
                        rtex->surface.level[i].nblk_x,
                        rtex->surface.level[i].nblk_y,
                        rtex->surface.level[i].nblk_z,
                        rtex->surface.level[i].pitch_bytes,
                        rtex->surface.level[i].mode);
 
        if (rtex->surface.flags & RADEON_SURF_SBUFFER) {
                fprintf(f, "  StencilLayout: tilesplit=%u\n",
                        rtex->surface.stencil_tile_split);
-               for (i = 0; i <= rtex->surface.last_level; i++) {
+               for (i = 0; i <= rtex->resource.b.b.last_level; i++) {
                        fprintf(f, "  StencilLevel[%i]: offset=%"PRIu64", "
                                "slice_size=%"PRIu64", npix_x=%u, "
                                "npix_y=%u, npix_z=%u, nblk_x=%u, nblk_y=%u, "
                                "nblk_z=%u, pitch_bytes=%u, mode=%u\n",
                                i, rtex->surface.stencil_level[i].offset,
                                rtex->surface.stencil_level[i].slice_size,
                                u_minify(rtex->resource.b.b.width0, i),
                                u_minify(rtex->resource.b.b.height0, i),
                                u_minify(rtex->resource.b.b.depth0, i),
                                rtex->surface.stencil_level[i].nblk_x,
@@ -2134,21 +2134,21 @@ static bool vi_should_enable_separate_dcc(struct 
r600_texture *tex)
 /* Called by fast clear. */
 static void vi_separate_dcc_try_enable(struct r600_common_context *rctx,
                                       struct r600_texture *tex)
 {
        /* The intent is to use this with shared displayable back buffers,
         * but it's not strictly limited only to them.
         */
        if (!tex->resource.is_shared ||
            !(tex->resource.external_usage & PIPE_HANDLE_USAGE_EXPLICIT_FLUSH) 
||
            tex->resource.b.b.target != PIPE_TEXTURE_2D ||
-           tex->surface.last_level > 0 ||
+           tex->resource.b.b.last_level > 0 ||
            !tex->surface.dcc_size)
                return;
 
        if (tex->dcc_offset)
                return; /* already enabled */
 
        /* Enable the DCC stat gathering. */
        if (!tex->dcc_gather_statistics) {
                tex->dcc_gather_statistics = true;
                vi_separate_dcc_start_query(&rctx->b, tex);
@@ -2390,26 +2390,26 @@ void vi_dcc_clear_level(struct r600_common_context 
*rctx,
 }
 
 /* Set the same micro tile mode as the destination of the last MSAA resolve.
  * This allows hitting the MSAA resolve fast path, which requires that both
  * src and dst micro tile modes match.
  */
 static void si_set_optimal_micro_tile_mode(struct r600_common_screen *rscreen,
                                           struct r600_texture *rtex)
 {
        if (rtex->resource.is_shared ||
-           rtex->surface.nsamples <= 1 ||
+           rtex->resource.b.b.nr_samples <= 1 ||
            rtex->surface.micro_tile_mode == 
rtex->last_msaa_resolve_target_micro_mode)
                return;
 
        assert(rtex->surface.level[0].mode == RADEON_SURF_MODE_2D);
-       assert(rtex->surface.last_level == 0);
+       assert(rtex->resource.b.b.last_level == 0);
 
        /* These magic numbers were copied from addrlib. It doesn't use any
         * definitions for them either. They are all 2D_TILED_THIN1 modes with
         * different bpp and micro tile mode.
         */
        if (rscreen->chip_class >= CIK) {
                switch (rtex->last_msaa_resolve_target_micro_mode) {
                case 0: /* displayable */
                        rtex->surface.tiling_index[0] = 10;
                        break;
diff --git a/src/gallium/drivers/radeonsi/si_state.c 
b/src/gallium/drivers/radeonsi/si_state.c
index 97bd308..4ae14f7 100644
--- a/src/gallium/drivers/radeonsi/si_state.c
+++ b/src/gallium/drivers/radeonsi/si_state.c
@@ -2101,21 +2101,21 @@ static void si_initialize_color_surface(struct 
si_context *sctx,
                }
        }
 
        surf->cb_color_view = color_view;
        surf->cb_color_info = color_info;
        surf->cb_color_attrib = color_attrib;
 
        if (sctx->b.chip_class >= VI) {
                unsigned max_uncompressed_block_size = 2;
 
-               if (rtex->surface.nsamples > 1) {
+               if (rtex->resource.b.b.nr_samples > 1) {
                        if (rtex->surface.bpe == 1)
                                max_uncompressed_block_size = 0;
                        else if (rtex->surface.bpe == 2)
                                max_uncompressed_block_size = 1;
                }
 
                surf->cb_dcc_control = 
S_028C78_MAX_UNCOMPRESSED_BLOCK_SIZE(max_uncompressed_block_size) |
                                       S_028C78_INDEPENDENT_64B_BLOCKS(1);
        }
 
@@ -2448,21 +2448,21 @@ static void si_emit_framebuffer_state(struct si_context 
*sctx, struct r600_atom
                cb = (struct r600_surface*)state->cbufs[i];
                if (!cb) {
                        radeon_set_context_reg(cs, R_028C70_CB_COLOR0_INFO + i 
* 0x3C,
                                               
S_028C70_FORMAT(V_028C70_COLOR_INVALID));
                        continue;
                }
 
                tex = (struct r600_texture *)cb->base.texture;
                radeon_add_to_buffer_list(&sctx->b, &sctx->b.gfx,
                                      &tex->resource, RADEON_USAGE_READWRITE,
-                                     tex->surface.nsamples > 1 ?
+                                     tex->resource.b.b.nr_samples > 1 ?
                                              RADEON_PRIO_COLOR_BUFFER_MSAA :
                                              RADEON_PRIO_COLOR_BUFFER);
 
                if (tex->cmask_buffer && tex->cmask_buffer != &tex->resource) {
                        radeon_add_to_buffer_list(&sctx->b, &sctx->b.gfx,
                                tex->cmask_buffer, RADEON_USAGE_READWRITE,
                                RADEON_PRIO_CMASK);
                }
 
                if (tex->dcc_separate_buffer)
-- 
2.7.4

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

Reply via email to