On 09.10.2017 06:05, Dave Airlie wrote:
From: Dave Airlie <airl...@redhat.com>

Now that Marek has split the two drivers apart, drop a bunch
of unnecessary code from the r600 half. There is probably a bunch
more hiding in the video code.

No piglit regressions on caicos.

Signed-off-by: Dave Airlie <airl...@redhat.com>
---
[snip]
diff --git a/src/gallium/drivers/r600/r600_texture.c 
b/src/gallium/drivers/r600/r600_texture.c
index 15a1ec9..9764459 100644
--- a/src/gallium/drivers/r600/r600_texture.c
+++ b/src/gallium/drivers/r600/r600_texture.c
[snip]
@@ -607,18 +477,9 @@ static boolean r600_texture_get_handle(struct pipe_screen* 
screen,
                        assert(rtex->surface.tile_swizzle == 0);
                }
- /* Since shader image stores don't support DCC on VI,
-                * disable it for external clients that want write
-                * access.
-                */
-               if (usage & PIPE_HANDLE_USAGE_WRITE && rtex->dcc_offset) {
-                       if (r600_texture_disable_dcc(rctx, rtex))
-                               update_metadata = true;
-               }
-
                if (!(usage & PIPE_HANDLE_USAGE_EXPLICIT_FLUSH) &&
-                   (rtex->cmask.size || rtex->dcc_offset)) {
-                       /* Eliminate fast clear (both CMASK and DCC) */
+                   rtex->cmask.size) {
+                       /* Eliminate fast clear (both CMASK) */

s/both //

Apart from that:

Acked-by: Nicolai Hähnle <nicolai.haeh...@amd.com>


                        r600_eliminate_fast_color_clear(rctx, rtex);
/* Disable CMASK if flush_resource isn't going
@@ -638,17 +499,10 @@ static boolean r600_texture_get_handle(struct 
pipe_screen* screen,
                        rscreen->ws->buffer_set_metadata(res->buf, &metadata);
                }
- if (rscreen->chip_class >= GFX9) {
-                       offset = rtex->surface.u.gfx9.surf_offset;
-                       stride = rtex->surface.u.gfx9.surf_pitch *
-                                rtex->surface.bpe;
-                       slice_size = rtex->surface.u.gfx9.surf_slice_size;
-               } else {
-                       offset = rtex->surface.u.legacy.level[0].offset;
-                       stride = rtex->surface.u.legacy.level[0].nblk_x *
-                                rtex->surface.bpe;
-                       slice_size = rtex->surface.u.legacy.level[0].slice_size;
-               }
+               offset = rtex->surface.u.legacy.level[0].offset;
+               stride = rtex->surface.u.legacy.level[0].nblk_x *
+                       rtex->surface.bpe;
+               slice_size = rtex->surface.u.legacy.level[0].slice_size;
        } else {
                /* Move a suballocated buffer into a non-suballocated 
allocation. */
                if (rscreen->ws->buffer_is_suballocated(res->buf)) {
@@ -710,8 +564,6 @@ static void r600_texture_destroy(struct pipe_screen *screen,
            r600_resource_reference(&rtex->cmask_buffer, NULL);
        }
        pb_reference(&resource->buf, NULL);
-       r600_resource_reference(&rtex->dcc_separate_buffer, NULL);
-       r600_resource_reference(&rtex->last_dcc_separate_buffer, NULL);
        FREE(rtex);
  }
@@ -730,25 +582,17 @@ void r600_texture_get_fmask_info(struct r600_common_screen *rscreen, memset(out, 0, sizeof(*out)); - if (rscreen->chip_class >= GFX9) {
-               out->alignment = rtex->surface.u.gfx9.fmask_alignment;
-               out->size = rtex->surface.u.gfx9.fmask_size;
-               return;
-       }
-
        templ.nr_samples = 1;
        flags = rtex->surface.flags | RADEON_SURF_FMASK;
- if (rscreen->chip_class <= CAYMAN) {
-               /* Use the same parameters and tile mode. */
-               fmask.u.legacy.bankw = rtex->surface.u.legacy.bankw;
-               fmask.u.legacy.bankh = rtex->surface.u.legacy.bankh;
-               fmask.u.legacy.mtilea = rtex->surface.u.legacy.mtilea;
-               fmask.u.legacy.tile_split = rtex->surface.u.legacy.tile_split;
+       /* Use the same parameters and tile mode. */
+       fmask.u.legacy.bankw = rtex->surface.u.legacy.bankw;
+       fmask.u.legacy.bankh = rtex->surface.u.legacy.bankh;
+       fmask.u.legacy.mtilea = rtex->surface.u.legacy.mtilea;
+       fmask.u.legacy.tile_split = rtex->surface.u.legacy.tile_split;
- if (nr_samples <= 4)
-                       fmask.u.legacy.bankh = 4;
-       }
+       if (nr_samples <= 4)
+               fmask.u.legacy.bankh = 4;
switch (nr_samples) {
        case 2:
@@ -834,76 +678,15 @@ void r600_texture_get_cmask_info(struct 
r600_common_screen *rscreen,
                    align(slice_bytes, base_align);
  }
-static void si_texture_get_cmask_info(struct r600_common_screen *rscreen,
-                                     struct r600_texture *rtex,
-                                     struct r600_cmask_info *out)
-{
-       unsigned pipe_interleave_bytes = rscreen->info.pipe_interleave_bytes;
-       unsigned num_pipes = rscreen->info.num_tile_pipes;
-       unsigned cl_width, cl_height;
-
-       if (rscreen->chip_class >= GFX9) {
-               out->alignment = rtex->surface.u.gfx9.cmask_alignment;
-               out->size = rtex->surface.u.gfx9.cmask_size;
-               return;
-       }
-
-       switch (num_pipes) {
-       case 2:
-               cl_width = 32;
-               cl_height = 16;
-               break;
-       case 4:
-               cl_width = 32;
-               cl_height = 32;
-               break;
-       case 8:
-               cl_width = 64;
-               cl_height = 32;
-               break;
-       case 16: /* Hawaii */
-               cl_width = 64;
-               cl_height = 64;
-               break;
-       default:
-               assert(0);
-               return;
-       }
-
-       unsigned base_align = num_pipes * pipe_interleave_bytes;
-
-       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->slice_tile_max = (width * height) / (128*128);
-       if (out->slice_tile_max)
-               out->slice_tile_max -= 1;
-
-       out->alignment = MAX2(256, base_align);
-       out->size = (util_max_layer(&rtex->resource.b.b, 0) + 1) *
-                   align(slice_bytes, base_align);
-}
-
  static void r600_texture_allocate_cmask(struct r600_common_screen *rscreen,
                                        struct r600_texture *rtex)
  {
-       if (rscreen->chip_class >= SI) {
-               si_texture_get_cmask_info(rscreen, rtex, &rtex->cmask);
-       } else {
-               r600_texture_get_cmask_info(rscreen, rtex, &rtex->cmask);
-       }
+       r600_texture_get_cmask_info(rscreen, rtex, &rtex->cmask);
rtex->cmask.offset = align64(rtex->size, rtex->cmask.alignment);
        rtex->size = rtex->cmask.offset + rtex->cmask.size;
- if (rscreen->chip_class >= SI)
-               rtex->cb_color_info |= SI_S_028C70_FAST_CLEAR(1);
-       else
-               rtex->cb_color_info |= EG_S_028C70_FAST_CLEAR(1);
+       rtex->cb_color_info |= EG_S_028C70_FAST_CLEAR(1);
  }
static void r600_texture_alloc_cmask_separate(struct r600_common_screen *rscreen,
@@ -914,11 +697,7 @@ static void r600_texture_alloc_cmask_separate(struct 
r600_common_screen *rscreen
assert(rtex->cmask.size == 0); - if (rscreen->chip_class >= SI) {
-               si_texture_get_cmask_info(rscreen, rtex, &rtex->cmask);
-       } else {
-               r600_texture_get_cmask_info(rscreen, rtex, &rtex->cmask);
-       }
+       r600_texture_get_cmask_info(rscreen, rtex, &rtex->cmask);
rtex->cmask_buffer = (struct r600_resource *)
                r600_aligned_buffer_create(&rscreen->b,
@@ -934,10 +713,7 @@ static void r600_texture_alloc_cmask_separate(struct 
r600_common_screen *rscreen
        /* update colorbuffer state bits */
        rtex->cmask.base_address_reg = rtex->cmask_buffer->gpu_address >> 8;
- if (rscreen->chip_class >= SI)
-               rtex->cb_color_info |= SI_S_028C70_FAST_CLEAR(1);
-       else
-               rtex->cb_color_info |= EG_S_028C70_FAST_CLEAR(1);
+       rtex->cb_color_info |= EG_S_028C70_FAST_CLEAR(1);
p_atomic_inc(&rscreen->compressed_colortex_counter);
  }
@@ -949,8 +725,6 @@ static void r600_texture_get_htile_size(struct 
r600_common_screen *rscreen,
        unsigned slice_elements, slice_bytes, pipe_interleave_bytes, base_align;
        unsigned num_pipes = rscreen->info.num_tile_pipes;
- assert(rscreen->chip_class <= VI);
-
        rtex->surface.htile_size = 0;
if (rscreen->chip_class <= EVERGREEN &&
@@ -963,22 +737,6 @@ static void r600_texture_get_htile_size(struct 
r600_common_screen *rscreen,
             rtex->resource.b.b.height0 > 7680))
                return;
- /* HTILE is broken with 1D tiling on old kernels and CIK. */
-       if (rscreen->chip_class >= CIK &&
-           rtex->surface.u.legacy.level[0].mode == RADEON_SURF_MODE_1D &&
-           rscreen->info.drm_major == 2 && rscreen->info.drm_minor < 38)
-               return;
-
-       /* Overalign HTILE on P2 configs to work around GPU hangs in
-        * piglit/depthstencil-render-miplevels 585.
-        *
-        * This has been confirmed to help Kabini & Stoney, where the hangs
-        * are always reproducible. I think I have seen the test hang
-        * on Carrizo too, though it was very rare there.
-        */
-       if (rscreen->chip_class >= CIK && num_pipes < 4)
-               num_pipes = 4;
-
        switch (num_pipes) {
        case 1:
                cl_width = 32;
@@ -1023,8 +781,7 @@ static void r600_texture_get_htile_size(struct 
r600_common_screen *rscreen,
  static void r600_texture_allocate_htile(struct r600_common_screen *rscreen,
                                        struct r600_texture *rtex)
  {
-       if (rscreen->chip_class <= VI && !rtex->tc_compatible_htile)
-               r600_texture_get_htile_size(rscreen, rtex);
+       r600_texture_get_htile_size(rscreen, rtex);
if (!rtex->surface.htile_size)
                return;
@@ -1049,64 +806,6 @@ void r600_print_texture_info(struct r600_common_screen 
*rscreen,
                rtex->surface.bpe, rtex->resource.b.b.nr_samples,
                rtex->surface.flags, 
util_format_short_name(rtex->resource.b.b.format));
- if (rscreen->chip_class >= GFX9) {
-               u_log_printf(log, "  Surf: size=%"PRIu64", slice_size=%"PRIu64", 
"
-                       "alignment=%u, swmode=%u, epitch=%u, pitch=%u\n",
-                       rtex->surface.surf_size,
-                       rtex->surface.u.gfx9.surf_slice_size,
-                       rtex->surface.surf_alignment,
-                       rtex->surface.u.gfx9.surf.swizzle_mode,
-                       rtex->surface.u.gfx9.surf.epitch,
-                       rtex->surface.u.gfx9.surf_pitch);
-
-               if (rtex->fmask.size) {
-                       u_log_printf(log, "  FMASK: offset=%"PRIu64", 
size=%"PRIu64", "
-                               "alignment=%u, swmode=%u, epitch=%u\n",
-                               rtex->fmask.offset,
-                               rtex->surface.u.gfx9.fmask_size,
-                               rtex->surface.u.gfx9.fmask_alignment,
-                               rtex->surface.u.gfx9.fmask.swizzle_mode,
-                               rtex->surface.u.gfx9.fmask.epitch);
-               }
-
-               if (rtex->cmask.size) {
-                       u_log_printf(log, "  CMask: offset=%"PRIu64", 
size=%"PRIu64", "
-                               "alignment=%u, rb_aligned=%u, 
pipe_aligned=%u\n",
-                               rtex->cmask.offset,
-                               rtex->surface.u.gfx9.cmask_size,
-                               rtex->surface.u.gfx9.cmask_alignment,
-                               rtex->surface.u.gfx9.cmask.rb_aligned,
-                               rtex->surface.u.gfx9.cmask.pipe_aligned);
-               }
-
-               if (rtex->htile_offset) {
-                       u_log_printf(log, "  HTile: offset=%"PRIu64", 
size=%"PRIu64", alignment=%u, "
-                               "rb_aligned=%u, pipe_aligned=%u\n",
-                               rtex->htile_offset,
-                               rtex->surface.htile_size,
-                               rtex->surface.htile_alignment,
-                               rtex->surface.u.gfx9.htile.rb_aligned,
-                               rtex->surface.u.gfx9.htile.pipe_aligned);
-               }
-
-               if (rtex->dcc_offset) {
-                       u_log_printf(log, "  DCC: offset=%"PRIu64", size=%"PRIu64", 
"
-                               "alignment=%u, pitch_max=%u, 
num_dcc_levels=%u\n",
-                               rtex->dcc_offset, rtex->surface.dcc_size,
-                               rtex->surface.dcc_alignment,
-                               rtex->surface.u.gfx9.dcc_pitch_max,
-                               rtex->surface.num_dcc_levels);
-               }
-
-               if (rtex->surface.u.gfx9.stencil_offset) {
-                       u_log_printf(log, "  Stencil: offset=%"PRIu64", swmode=%u, 
epitch=%u\n",
-                               rtex->surface.u.gfx9.stencil_offset,
-                               rtex->surface.u.gfx9.stencil.swizzle_mode,
-                               rtex->surface.u.gfx9.stencil.epitch);
-               }
-               return;
-       }
-
        u_log_printf(log, "  Layout: size=%"PRIu64", alignment=%u, bankw=%u, "
                "bankh=%u, nbanks=%u, mtilea=%u, tilesplit=%u, pipeconfig=%u, 
scanout=%u\n",
                rtex->surface.surf_size, rtex->surface.surf_alignment, 
rtex->surface.u.legacy.bankw,
@@ -1129,22 +828,9 @@ void r600_print_texture_info(struct r600_common_screen 
*rscreen,
if (rtex->htile_offset)
                u_log_printf(log, "  HTile: offset=%"PRIu64", size=%"PRIu64", "
-                       "alignment=%u, TC_compatible = %u\n",
-                       rtex->htile_offset, rtex->surface.htile_size,
-                       rtex->surface.htile_alignment,
-                       rtex->tc_compatible_htile);
-
-       if (rtex->dcc_offset) {
-               u_log_printf(log, "  DCC: offset=%"PRIu64", size=%"PRIu64", 
alignment=%u\n",
-                       rtex->dcc_offset, rtex->surface.dcc_size,
-                       rtex->surface.dcc_alignment);
-               for (i = 0; i <= rtex->resource.b.b.last_level; i++)
-                       u_log_printf(log, "  DCCLevel[%i]: enabled=%u, 
offset=%"PRIu64", "
-                               "fast_clear_size=%"PRIu64"\n",
-                               i, i < rtex->surface.num_dcc_levels,
-                               rtex->surface.u.legacy.level[i].dcc_offset,
-                               
rtex->surface.u.legacy.level[i].dcc_fast_clear_size);
-       }
+                       "alignment=%u\n",
+                            rtex->htile_offset, rtex->surface.htile_size,
+                            rtex->surface.htile_alignment);
for (i = 0; i <= rtex->resource.b.b.last_level; i++)
                u_log_printf(log, "  Level[%i]: offset=%"PRIu64", 
slice_size=%"PRIu64", "
@@ -1208,23 +894,7 @@ r600_texture_create_object(struct pipe_screen *screen,
rtex->surface = *surface;
        rtex->size = rtex->surface.surf_size;
-
-       rtex->tc_compatible_htile = rtex->surface.htile_size != 0 &&
-                                   (rtex->surface.flags &
-                                    RADEON_SURF_TC_COMPATIBLE_HTILE);
-
-       /* TC-compatible HTILE:
-        * - VI only supports Z32_FLOAT.
-        * - GFX9 only supports Z32_FLOAT and Z16_UNORM. */
-       if (rtex->tc_compatible_htile) {
-               if (rscreen->chip_class >= GFX9 &&
-                   base->format == PIPE_FORMAT_Z16_UNORM)
-                       rtex->db_render_format = base->format;
-               else
-                       rtex->db_render_format = PIPE_FORMAT_Z32_FLOAT;
-       } else {
-               rtex->db_render_format = base->format;
-       }
+       rtex->db_render_format = base->format;
/* Tiled depth textures utilize the non-displayable tile order.
         * This must be done after r600_setup_surface.
@@ -1233,23 +903,12 @@ r600_texture_create_object(struct pipe_screen *screen,
        /* Applies to GCN. */
        rtex->last_msaa_resolve_target_micro_mode = 
rtex->surface.micro_tile_mode;
- /* Disable separate DCC at the beginning. DRI2 doesn't reuse buffers
-        * between frames, so the only thing that can enable separate DCC
-        * with DRI2 is multiple slow clears within a frame.
-        */
-       rtex->ps_draw_ratio = 0;
-
        if (rtex->is_depth) {
                if (base->flags & (R600_RESOURCE_FLAG_TRANSFER |
                                   R600_RESOURCE_FLAG_FLUSHED_DEPTH) ||
                    rscreen->chip_class >= EVERGREEN) {
-                       if (rscreen->chip_class >= GFX9) {
-                               rtex->can_sample_z = true;
-                               rtex->can_sample_s = true;
-                       } else {
-                               rtex->can_sample_z = 
!rtex->surface.u.legacy.depth_adjusted;
-                               rtex->can_sample_s = 
!rtex->surface.u.legacy.stencil_adjusted;
-                       }
+                       rtex->can_sample_z = 
!rtex->surface.u.legacy.depth_adjusted;
+                       rtex->can_sample_s = 
!rtex->surface.u.legacy.stencil_adjusted;
                } else {
                        if (rtex->resource.b.b.nr_samples <= 1 &&
                            (rtex->resource.b.b.format == PIPE_FORMAT_Z16_UNORM 
||
@@ -1276,18 +935,6 @@ r600_texture_create_object(struct pipe_screen *screen,
                                return NULL;
                        }
                }
-
-               /* Shared textures must always set up DCC here.
-                * If it's not present, it will be disabled by
-                * apply_opaque_metadata later.
-                */
-               if (rtex->surface.dcc_size &&
-                   (buf || !(rscreen->debug_flags & DBG_NO_DCC)) &&
-                   !(rtex->surface.flags & RADEON_SURF_SCANOUT)) {
-                       /* Reserve space for the DCC buffer. */
-                       rtex->dcc_offset = align64(rtex->size, 
rtex->surface.dcc_alignment);
-                       rtex->size = rtex->dcc_offset + rtex->surface.dcc_size;
-               }
        }
/* Now create the backing buffer. */
@@ -1324,23 +971,12 @@ r600_texture_create_object(struct pipe_screen *screen,
        if (rtex->htile_offset) {
                uint32_t clear_value = 0;
- if (rscreen->chip_class >= GFX9 || rtex->tc_compatible_htile)
-                       clear_value = 0x0000030F;
-
                r600_screen_clear_buffer(rscreen, &rtex->resource.b.b,
                                         rtex->htile_offset,
                                         rtex->surface.htile_size,
                                         clear_value);
        }
- /* Initialize DCC only if the texture is not being imported. */
-       if (!buf && rtex->dcc_offset) {
-               r600_screen_clear_buffer(rscreen, &rtex->resource.b.b,
-                                        rtex->dcc_offset,
-                                        rtex->surface.dcc_size,
-                                        0xFFFFFFFF);
-       }
-
        /* Initialize the CMASK base register value. */
        rtex->cmask.base_address_reg =
                (rtex->resource.gpu_address + rtex->cmask.offset) >> 8;
@@ -1383,14 +1019,6 @@ r600_choose_tiling(struct r600_common_screen *rscreen,
        if (templ->flags & R600_RESOURCE_FLAG_TRANSFER)
                return RADEON_SURF_MODE_LINEAR_ALIGNED;
- /* Avoid Z/S decompress blits by forcing TC-compatible HTILE on VI,
-        * which requires 2D tiling.
-        */
-       if (rscreen->chip_class == VI &&
-           is_depth_stencil &&
-           (templ->flags & PIPE_RESOURCE_FLAG_TEXTURING_MORE_LIKELY))
-               return RADEON_SURF_MODE_2D;
-
        /* r600g: force tiling on TEXTURE_2D and TEXTURE_3D compute resources. 
*/
        if (rscreen->chip_class >= R600 && rscreen->chip_class <= CAYMAN &&
            (templ->bind & PIPE_BIND_COMPUTE_RESOURCE) &&
@@ -1411,12 +1039,6 @@ r600_choose_tiling(struct r600_common_screen *rscreen,
                if (desc->layout == UTIL_FORMAT_LAYOUT_SUBSAMPLED)
                        return RADEON_SURF_MODE_LINEAR_ALIGNED;
- /* Cursors are linear on SI.
-                * (XXX double-check, maybe also use RADEON_SURF_SCANOUT) */
-               if (rscreen->chip_class >= SI &&
-                   (templ->bind & PIPE_BIND_CURSOR))
-                       return RADEON_SURF_MODE_LINEAR_ALIGNED;
-
                if (templ->bind & PIPE_BIND_LINEAR)
                        return RADEON_SURF_MODE_LINEAR_ALIGNED;
@@ -1449,20 +1071,11 @@ struct pipe_resource *r600_texture_create(struct pipe_screen *screen,
        struct r600_common_screen *rscreen = (struct r600_common_screen*)screen;
        struct radeon_surf surface = {0};
        bool is_flushed_depth = templ->flags & R600_RESOURCE_FLAG_FLUSHED_DEPTH;
-       bool tc_compatible_htile =
-               rscreen->chip_class >= VI &&
-               (templ->flags & PIPE_RESOURCE_FLAG_TEXTURING_MORE_LIKELY) &&
-               !(rscreen->debug_flags & DBG_NO_HYPERZ) &&
-               !is_flushed_depth &&
-               templ->nr_samples <= 1 && /* TC-compat HTILE is less efficient 
with MSAA */
-               util_format_is_depth_or_stencil(templ->format);
-
        int r;
r = r600_init_surface(rscreen, &surface, templ,
                              r600_choose_tiling(rscreen, templ), 0, 0,
-                             false, false, is_flushed_depth,
-                             tc_compatible_htile);
+                             false, false, is_flushed_depth);
        if (r) {
                return NULL;
        }
@@ -1500,7 +1113,7 @@ static struct pipe_resource 
*r600_texture_from_handle(struct pipe_screen *screen
                                     &array_mode, &is_scanout);
r = r600_init_surface(rscreen, &surface, templ, array_mode, stride,
-                             offset, true, is_scanout, false, false);
+                             offset, true, is_scanout, false);
        if (r) {
                return NULL;
        }
@@ -2124,114 +1737,6 @@ static void evergreen_set_clear_color(struct 
r600_texture *rtex,
        memcpy(rtex->color_clear_value, &uc, 2 * sizeof(uint32_t));
  }
-/* 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.b.is_shared ||
-           rtex->resource.b.b.nr_samples <= 1 ||
-           rtex->surface.micro_tile_mode == 
rtex->last_msaa_resolve_target_micro_mode)
-               return;
-
-       assert(rscreen->chip_class >= GFX9 ||
-              rtex->surface.u.legacy.level[0].mode == RADEON_SURF_MODE_2D);
-       assert(rtex->resource.b.b.last_level == 0);
-
-       if (rscreen->chip_class >= GFX9) {
-               /* 4K or larger tiles only. 0 is linear. 1-3 are 256B tiles. */
-               assert(rtex->surface.u.gfx9.surf.swizzle_mode >= 4);
-
-               /* If you do swizzle_mode % 4, you'll get:
-                *   0 = Depth
-                *   1 = Standard,
-                *   2 = Displayable
-                *   3 = Rotated
-                *
-                * Depth-sample order isn't allowed:
-                */
-               assert(rtex->surface.u.gfx9.surf.swizzle_mode % 4 != 0);
-
-               switch (rtex->last_msaa_resolve_target_micro_mode) {
-               case RADEON_MICRO_MODE_DISPLAY:
-                       rtex->surface.u.gfx9.surf.swizzle_mode &= ~0x3;
-                       rtex->surface.u.gfx9.surf.swizzle_mode += 2; /* D */
-                       break;
-               case RADEON_MICRO_MODE_THIN:
-                       rtex->surface.u.gfx9.surf.swizzle_mode &= ~0x3;
-                       rtex->surface.u.gfx9.surf.swizzle_mode += 1; /* S */
-                       break;
-               case RADEON_MICRO_MODE_ROTATED:
-                       rtex->surface.u.gfx9.surf.swizzle_mode &= ~0x3;
-                       rtex->surface.u.gfx9.surf.swizzle_mode += 3; /* R */
-                       break;
-               default: /* depth */
-                       assert(!"unexpected micro mode");
-                       return;
-               }
-       } else if (rscreen->chip_class >= CIK) {
-               /* 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.
-                */
-               switch (rtex->last_msaa_resolve_target_micro_mode) {
-               case RADEON_MICRO_MODE_DISPLAY:
-                       rtex->surface.u.legacy.tiling_index[0] = 10;
-                       break;
-               case RADEON_MICRO_MODE_THIN:
-                       rtex->surface.u.legacy.tiling_index[0] = 14;
-                       break;
-               case RADEON_MICRO_MODE_ROTATED:
-                       rtex->surface.u.legacy.tiling_index[0] = 28;
-                       break;
-               default: /* depth, thick */
-                       assert(!"unexpected micro mode");
-                       return;
-               }
-       } else { /* SI */
-               switch (rtex->last_msaa_resolve_target_micro_mode) {
-               case RADEON_MICRO_MODE_DISPLAY:
-                       switch (rtex->surface.bpe) {
-                       case 1:
-                            rtex->surface.u.legacy.tiling_index[0] = 10;
-                            break;
-                       case 2:
-                            rtex->surface.u.legacy.tiling_index[0] = 11;
-                            break;
-                       default: /* 4, 8 */
-                            rtex->surface.u.legacy.tiling_index[0] = 12;
-                            break;
-                       }
-                       break;
-               case RADEON_MICRO_MODE_THIN:
-                       switch (rtex->surface.bpe) {
-                       case 1:
-                                rtex->surface.u.legacy.tiling_index[0] = 14;
-                                break;
-                       case 2:
-                                rtex->surface.u.legacy.tiling_index[0] = 15;
-                                break;
-                       case 4:
-                                rtex->surface.u.legacy.tiling_index[0] = 16;
-                                break;
-                       default: /* 8, 16 */
-                                rtex->surface.u.legacy.tiling_index[0] = 17;
-                                break;
-                       }
-                       break;
-               default: /* depth, thick */
-                       assert(!"unexpected micro mode");
-                       return;
-               }
-       }
-
-       rtex->surface.micro_tile_mode = 
rtex->last_msaa_resolve_target_micro_mode;
-
-       p_atomic_inc(&rscreen->dirty_tex_counter);
-}
-
  void evergreen_do_fast_color_clear(struct r600_common_context *rctx,
                                   struct pipe_framebuffer_state *fb,
                                   struct r600_atom *fb_state,
@@ -2285,24 +1790,12 @@ void evergreen_do_fast_color_clear(struct 
r600_common_context *rctx,
                    !(tex->resource.external_usage & 
PIPE_HANDLE_USAGE_EXPLICIT_FLUSH))
                        continue;
- /* fast color clear with 1D tiling doesn't work on old kernels and CIK */
-               if (rctx->chip_class == CIK &&
-                   tex->surface.u.legacy.level[0].mode == RADEON_SURF_MODE_1D 
&&
-                   rctx->screen->info.drm_major == 2 &&
-                   rctx->screen->info.drm_minor < 38) {
-                       continue;
-               }
-
                {
                        /* 128-bit formats are unusupported */
                        if (tex->surface.bpe > 8) {
                                continue;
                        }
- /* RB+ doesn't work with CMASK fast clear on Stoney. */
-                       if (rctx->family == CHIP_STONEY)
-                               continue;
-
                        /* ensure CMASK is enabled */
                        r600_texture_alloc_cmask_separate(rctx->screen, tex);
                        if (tex->cmask.size == 0) {
@@ -2322,10 +1815,6 @@ void evergreen_do_fast_color_clear(struct 
r600_common_context *rctx,
                                
p_atomic_inc(&rctx->screen->compressed_colortex_counter);
                }
- /* We can change the micro tile mode before a full clear. */
-               if (rctx->screen->chip_class >= SI)
-                       si_set_optimal_micro_tile_mode(rctx->screen, tex);
-
                evergreen_set_clear_color(tex, fb->cbufs[i]->format, color);
if (dirty_cbufs)
@@ -2425,7 +1914,7 @@ r600_texture_from_memobj(struct pipe_screen *screen,
        r = r600_init_surface(rscreen, &surface, templ,
                              array_mode, memobj->stride,
                              offset, true, is_scanout,
-                             false, false);
+                             false);
        if (r)
                return NULL;
diff --git a/src/gallium/drivers/r600/r600_uvd.c b/src/gallium/drivers/r600/r600_uvd.c
index 28551e2..ca4248a 100644
--- a/src/gallium/drivers/r600/r600_uvd.c
+++ b/src/gallium/drivers/r600/r600_uvd.c
@@ -162,7 +162,7 @@ static struct pb_buffer* r600_uvd_set_dtb(struct ruvd_msg 
*msg, struct vl_video_
        msg->body.decode.dt_field_mode = buf->base.interlaced;
        msg->body.decode.dt_surf_tile_config |= 
RUVD_NUM_BANKS(eg_num_banks(rscreen->b.info.r600_num_banks));
- ruvd_set_dt_surfaces(msg, &luma->surface, &chroma->surface, RUVD_SURFACE_TYPE_LEGACY);
+       ruvd_set_dt_surfaces(msg, &luma->surface, &chroma->surface);
return luma->resource.buf;
  }
diff --git a/src/gallium/drivers/r600/radeon_uvd.c 
b/src/gallium/drivers/r600/radeon_uvd.c
index fabc73e..b0551d7 100644
--- a/src/gallium/drivers/r600/radeon_uvd.c
+++ b/src/gallium/drivers/r600/radeon_uvd.c
@@ -205,8 +205,7 @@ static uint32_t profile2stream_type(struct ruvd_decoder 
*dec, unsigned family)
  {
        switch (u_reduce_video_profile(dec->base.profile)) {
        case PIPE_VIDEO_FORMAT_MPEG4_AVC:
-               return (family >= CHIP_TONGA) ?
-                       RUVD_CODEC_H264_PERF : RUVD_CODEC_H264;
+               return RUVD_CODEC_H264;
case PIPE_VIDEO_FORMAT_VC1:
                return RUVD_CODEC_VC1;
@@ -229,60 +228,6 @@ static uint32_t profile2stream_type(struct ruvd_decoder 
*dec, unsigned family)
        }
  }
-static unsigned calc_ctx_size_h264_perf(struct ruvd_decoder *dec)
-{
-       unsigned width_in_mb, height_in_mb, ctx_size;
-       unsigned width = align(dec->base.width, VL_MACROBLOCK_WIDTH);
-       unsigned height = align(dec->base.height, VL_MACROBLOCK_HEIGHT);
-
-       unsigned max_references = dec->base.max_references + 1;
-
-       // picture width & height in 16 pixel units
-       width_in_mb = width / VL_MACROBLOCK_WIDTH;
-       height_in_mb = align(height / VL_MACROBLOCK_HEIGHT, 2);
-
-       if (!dec->use_legacy) {
-               unsigned fs_in_mb = width_in_mb * height_in_mb;
-               unsigned num_dpb_buffer;
-               switch(dec->base.level) {
-               case 30:
-                       num_dpb_buffer = 8100 / fs_in_mb;
-                       break;
-               case 31:
-                       num_dpb_buffer = 18000 / fs_in_mb;
-                       break;
-               case 32:
-                       num_dpb_buffer = 20480 / fs_in_mb;
-                       break;
-               case 41:
-                       num_dpb_buffer = 32768 / fs_in_mb;
-                       break;
-               case 42:
-                       num_dpb_buffer = 34816 / fs_in_mb;
-                       break;
-               case 50:
-                       num_dpb_buffer = 110400 / fs_in_mb;
-                       break;
-               case 51:
-                       num_dpb_buffer = 184320 / fs_in_mb;
-                       break;
-               default:
-                       num_dpb_buffer = 184320 / fs_in_mb;
-                       break;
-               }
-               num_dpb_buffer++;
-               max_references = MAX2(MIN2(NUM_H264_REFS, num_dpb_buffer), 
max_references);
-               ctx_size = max_references * align(width_in_mb * height_in_mb  * 
192, 256);
-       } else {
-               // the firmware seems to always assume a minimum of ref frames
-               max_references = MAX2(NUM_H264_REFS, max_references);
-               // macroblock context buffer
-               ctx_size = align(width_in_mb * height_in_mb * max_references * 
192, 256);
-       }
-
-       return ctx_size;
-}
-
  static unsigned calc_ctx_size_h265_main(struct ruvd_decoder *dec)
  {
        unsigned width = align(dec->base.width, VL_MACROBLOCK_WIDTH);
@@ -335,10 +280,7 @@ static unsigned calc_ctx_size_h265_main10(struct 
ruvd_decoder *dec, struct pipe_
static unsigned get_db_pitch_alignment(struct ruvd_decoder *dec)
  {
-       if (((struct r600_common_screen*)dec->screen)->family < CHIP_VEGA10)
-               return 16;
-       else
-               return 32;
+       return 16;
  }
/* calculate size of reference picture buffer */
@@ -399,8 +341,7 @@ static unsigned calc_dpb_size(struct ruvd_decoder *dec)
                        num_dpb_buffer++;
                        max_references = MAX2(MIN2(NUM_H264_REFS, 
num_dpb_buffer), max_references);
                        dpb_size = image_size * max_references;
-                       if ((dec->stream_type != RUVD_CODEC_H264_PERF) ||
-                           (((struct r600_common_screen*)dec->screen)->family 
< CHIP_POLARIS10)) {
+                       if ((dec->stream_type != RUVD_CODEC_H264_PERF)) {
                                dpb_size += max_references * align(width_in_mb 
* height_in_mb  * 192, alignment);
                                dpb_size += align(width_in_mb * height_in_mb * 
32, alignment);
                        }
@@ -409,8 +350,7 @@ static unsigned calc_dpb_size(struct ruvd_decoder *dec)
                        max_references = MAX2(NUM_H264_REFS, max_references);
                        // reference picture buffer
                        dpb_size = image_size * max_references;
-                       if ((dec->stream_type != RUVD_CODEC_H264_PERF) ||
-                           (((struct r600_common_screen*)dec->screen)->family 
< CHIP_POLARIS10)) {
+                       if ((dec->stream_type != RUVD_CODEC_H264_PERF)) {
                                // macroblock context buffer
                                dpb_size += width_in_mb * height_in_mb * 
max_references * 192;
                                // IT surface buffer
@@ -610,8 +550,6 @@ static struct ruvd_h265 get_h265_msg(struct ruvd_decoder 
*dec, struct pipe_video
        result.sps_info_flags |= pic->pps->sps->sps_temporal_mvp_enabled_flag 
<< 6;
        result.sps_info_flags |= pic->pps->sps->strong_intra_smoothing_enabled_flag 
<< 7;
        result.sps_info_flags |= pic->pps->sps->separate_colour_plane_flag << 8;
-       if (((struct r600_common_screen*)dec->screen)->family == CHIP_CARRIZO)
-               result.sps_info_flags |= 1 << 9;
        if (pic->UseRefPicList == true)
                result.sps_info_flags |= 1 << 10;
@@ -1250,13 +1188,7 @@ static void ruvd_end_frame(struct pipe_video_codec *decoder,
        dec->msg->body.decode.bsd_size = bs_size;
        dec->msg->body.decode.db_pitch = align(dec->base.width, 
get_db_pitch_alignment(dec));
- if (dec->stream_type == RUVD_CODEC_H264_PERF &&
-           ((struct r600_common_screen*)dec->screen)->family >= CHIP_POLARIS10)
-               dec->msg->body.decode.dpb_reserved = dec->ctx.res->buf->size;
-
        dt = dec->set_dtb(dec->msg, (struct vl_video_buffer *)target);
-       if (((struct r600_common_screen*)dec->screen)->family >= CHIP_STONEY)
-               dec->msg->body.decode.dt_wa_chroma_top_offset = 
dec->msg->body.decode.dt_pitch / 2;
switch (u_reduce_video_profile(picture->profile)) {
        case PIPE_VIDEO_FORMAT_MPEG4_AVC:
@@ -1407,8 +1339,7 @@ struct pipe_video_codec *ruvd_create_decoder(struct 
pipe_context *context,
                goto error;
        }
- dec->fb_size = (info.family == CHIP_TONGA) ? FB_BUFFER_SIZE_TONGA :
-                       FB_BUFFER_SIZE;
+       dec->fb_size = FB_BUFFER_SIZE;
        bs_buf_size = width * height * (512 / (16 * 16));
        for (i = 0; i < NUM_BUFFERS; ++i) {
                unsigned msg_fb_it_size = FB_BUFFER_OFFSET + dec->fb_size;
@@ -1440,36 +1371,10 @@ struct pipe_video_codec *ruvd_create_decoder(struct 
pipe_context *context,
                rvid_clear_buffer(context, &dec->dpb);
        }
- if (dec->stream_type == RUVD_CODEC_H264_PERF && info.family >= CHIP_POLARIS10) {
-               unsigned ctx_size = calc_ctx_size_h264_perf(dec);
-               if (!rvid_create_buffer(dec->screen, &dec->ctx, ctx_size, 
PIPE_USAGE_DEFAULT)) {
-                       RVID_ERR("Can't allocated context buffer.\n");
-                       goto error;
-               }
-               rvid_clear_buffer(context, &dec->ctx);
-       }
-
-       if (info.family >= CHIP_POLARIS10 && info.drm_minor >= 3) {
-               if (!rvid_create_buffer(dec->screen, &dec->sessionctx,
-                                       UVD_SESSION_CONTEXT_SIZE,
-                                       PIPE_USAGE_DEFAULT)) {
-                       RVID_ERR("Can't allocated session ctx.\n");
-                       goto error;
-               }
-               rvid_clear_buffer(context, &dec->sessionctx);
-       }
-
-       if (info.family >= CHIP_VEGA10) {
-               dec->reg.data0 = RUVD_GPCOM_VCPU_DATA0_SOC15;
-               dec->reg.data1 = RUVD_GPCOM_VCPU_DATA1_SOC15;
-               dec->reg.cmd = RUVD_GPCOM_VCPU_CMD_SOC15;
-               dec->reg.cntl = RUVD_ENGINE_CNTL_SOC15;
-       } else {
-               dec->reg.data0 = RUVD_GPCOM_VCPU_DATA0;
-               dec->reg.data1 = RUVD_GPCOM_VCPU_DATA1;
-               dec->reg.cmd = RUVD_GPCOM_VCPU_CMD;
-               dec->reg.cntl = RUVD_ENGINE_CNTL;
-       }
+       dec->reg.data0 = RUVD_GPCOM_VCPU_DATA0;
+       dec->reg.data1 = RUVD_GPCOM_VCPU_DATA1;
+       dec->reg.cmd = RUVD_GPCOM_VCPU_CMD;
+       dec->reg.cntl = RUVD_ENGINE_CNTL;
map_msg_fb_it_buf(dec);
        dec->msg->size = sizeof(*dec->msg);
@@ -1506,20 +1411,10 @@ error:
  }
/* calculate top/bottom offset */
-static unsigned texture_offset(struct radeon_surf *surface, unsigned layer,
-                               enum ruvd_surface_type type)
+static unsigned texture_offset(struct radeon_surf *surface, unsigned layer)
  {
-       switch (type) {
-       default:
-       case RUVD_SURFACE_TYPE_LEGACY:
-               return surface->u.legacy.level[0].offset +
-                       layer * surface->u.legacy.level[0].slice_size;
-               break;
-       case RUVD_SURFACE_TYPE_GFX9:
-               return surface->u.gfx9.surf_offset +
-                       layer * surface->u.gfx9.surf_slice_size;
-               break;
-       }
+       return surface->u.legacy.level[0].offset +
+               layer * surface->u.legacy.level[0].slice_size;
  }
/* hw encode the aspect of macro tiles */
@@ -1552,67 +1447,46 @@ static unsigned bank_wh(unsigned bankwh)
   * fill decoding target field from the luma and chroma surfaces
   */
  void ruvd_set_dt_surfaces(struct ruvd_msg *msg, struct radeon_surf *luma,
-                       struct radeon_surf *chroma, enum ruvd_surface_type type)
+                         struct radeon_surf *chroma)
  {
-       switch (type) {
+       msg->body.decode.dt_pitch = luma->u.legacy.level[0].nblk_x * 
luma->blk_w;
+       switch (luma->u.legacy.level[0].mode) {
+       case RADEON_SURF_MODE_LINEAR_ALIGNED:
+               msg->body.decode.dt_tiling_mode = RUVD_TILE_LINEAR;
+               msg->body.decode.dt_array_mode = RUVD_ARRAY_MODE_LINEAR;
+               break;
+       case RADEON_SURF_MODE_1D:
+               msg->body.decode.dt_tiling_mode = RUVD_TILE_8X8;
+               msg->body.decode.dt_array_mode = RUVD_ARRAY_MODE_1D_THIN;
+               break;
+       case RADEON_SURF_MODE_2D:
+               msg->body.decode.dt_tiling_mode = RUVD_TILE_8X8;
+               msg->body.decode.dt_array_mode = RUVD_ARRAY_MODE_2D_THIN;
+               break;
        default:
-       case RUVD_SURFACE_TYPE_LEGACY:
-               msg->body.decode.dt_pitch = luma->u.legacy.level[0].nblk_x * 
luma->blk_w;
-               switch (luma->u.legacy.level[0].mode) {
-               case RADEON_SURF_MODE_LINEAR_ALIGNED:
-                       msg->body.decode.dt_tiling_mode = RUVD_TILE_LINEAR;
-                       msg->body.decode.dt_array_mode = RUVD_ARRAY_MODE_LINEAR;
-                       break;
-               case RADEON_SURF_MODE_1D:
-                       msg->body.decode.dt_tiling_mode = RUVD_TILE_8X8;
-                       msg->body.decode.dt_array_mode = 
RUVD_ARRAY_MODE_1D_THIN;
-                       break;
-               case RADEON_SURF_MODE_2D:
-                       msg->body.decode.dt_tiling_mode = RUVD_TILE_8X8;
-                       msg->body.decode.dt_array_mode = 
RUVD_ARRAY_MODE_2D_THIN;
-                       break;
-               default:
-                       assert(0);
-                       break;
-               }
+               assert(0);
+               break;
+       }
- msg->body.decode.dt_luma_top_offset = texture_offset(luma, 0, type);
+       msg->body.decode.dt_luma_top_offset = texture_offset(luma, 0);
+       if (chroma)
+               msg->body.decode.dt_chroma_top_offset = texture_offset(chroma, 
0);
+       if (msg->body.decode.dt_field_mode) {
+               msg->body.decode.dt_luma_bottom_offset = texture_offset(luma, 
1);
                if (chroma)
-                       msg->body.decode.dt_chroma_top_offset = 
texture_offset(chroma, 0, type);
-               if (msg->body.decode.dt_field_mode) {
-                       msg->body.decode.dt_luma_bottom_offset = 
texture_offset(luma, 1, type);
-                       if (chroma)
-                               msg->body.decode.dt_chroma_bottom_offset = 
texture_offset(chroma, 1, type);
-               } else {
-                       msg->body.decode.dt_luma_bottom_offset = 
msg->body.decode.dt_luma_top_offset;
-                       msg->body.decode.dt_chroma_bottom_offset = 
msg->body.decode.dt_chroma_top_offset;
-               }
-
-               if (chroma) {
-                       assert(luma->u.legacy.bankw == chroma->u.legacy.bankw);
-                       assert(luma->u.legacy.bankh == chroma->u.legacy.bankh);
-                       assert(luma->u.legacy.mtilea == 
chroma->u.legacy.mtilea);
-               }
+                       msg->body.decode.dt_chroma_bottom_offset = 
texture_offset(chroma, 1);
+       } else {
+               msg->body.decode.dt_luma_bottom_offset = 
msg->body.decode.dt_luma_top_offset;
+               msg->body.decode.dt_chroma_bottom_offset = 
msg->body.decode.dt_chroma_top_offset;
+       }
- msg->body.decode.dt_surf_tile_config |= RUVD_BANK_WIDTH(bank_wh(luma->u.legacy.bankw));
-               msg->body.decode.dt_surf_tile_config |= 
RUVD_BANK_HEIGHT(bank_wh(luma->u.legacy.bankh));
-               msg->body.decode.dt_surf_tile_config |= 
RUVD_MACRO_TILE_ASPECT_RATIO(macro_tile_aspect(luma->u.legacy.mtilea));
-               break;
-       case RUVD_SURFACE_TYPE_GFX9:
-               msg->body.decode.dt_pitch = luma->u.gfx9.surf_pitch * 
luma->blk_w;
-               /* SWIZZLE LINEAR MODE */
-               msg->body.decode.dt_tiling_mode = RUVD_TILE_LINEAR;
-               msg->body.decode.dt_array_mode = RUVD_ARRAY_MODE_LINEAR;
-               msg->body.decode.dt_luma_top_offset = texture_offset(luma, 0, 
type);
-               msg->body.decode.dt_chroma_top_offset = texture_offset(chroma, 
0, type);
-               if (msg->body.decode.dt_field_mode) {
-                       msg->body.decode.dt_luma_bottom_offset = 
texture_offset(luma, 1, type);
-                       msg->body.decode.dt_chroma_bottom_offset = 
texture_offset(chroma, 1, type);
-               } else {
-                       msg->body.decode.dt_luma_bottom_offset = 
msg->body.decode.dt_luma_top_offset;
-                       msg->body.decode.dt_chroma_bottom_offset = 
msg->body.decode.dt_chroma_top_offset;
-               }
-               msg->body.decode.dt_surf_tile_config = 0;
-               break;
+       if (chroma) {
+               assert(luma->u.legacy.bankw == chroma->u.legacy.bankw);
+               assert(luma->u.legacy.bankh == chroma->u.legacy.bankh);
+               assert(luma->u.legacy.mtilea == chroma->u.legacy.mtilea);
        }
+
+       msg->body.decode.dt_surf_tile_config |= 
RUVD_BANK_WIDTH(bank_wh(luma->u.legacy.bankw));
+       msg->body.decode.dt_surf_tile_config |= 
RUVD_BANK_HEIGHT(bank_wh(luma->u.legacy.bankh));
+       msg->body.decode.dt_surf_tile_config |= 
RUVD_MACRO_TILE_ASPECT_RATIO(macro_tile_aspect(luma->u.legacy.mtilea));
  }
diff --git a/src/gallium/drivers/r600/radeon_uvd.h 
b/src/gallium/drivers/r600/radeon_uvd.h
index a927c84..c371b14 100644
--- a/src/gallium/drivers/r600/radeon_uvd.h
+++ b/src/gallium/drivers/r600/radeon_uvd.h
@@ -117,11 +117,6 @@
  #define RUVD_VC1_PROFILE_MAIN         0x00000001
  #define RUVD_VC1_PROFILE_ADVANCED     0x00000002
-enum ruvd_surface_type {
-       RUVD_SURFACE_TYPE_LEGACY = 0,
-       RUVD_SURFACE_TYPE_GFX9
-};
-
  struct ruvd_mvc_element {
        uint16_t        viewOrderIndex;
        uint16_t        viewId;
@@ -443,5 +438,5 @@ struct pipe_video_codec *ruvd_create_decoder(struct 
pipe_context *context,
/* fill decoding target field from the luma and chroma surfaces */
  void ruvd_set_dt_surfaces(struct ruvd_msg *msg, struct radeon_surf *luma,
-                       struct radeon_surf *chroma, enum ruvd_surface_type 
type);
+                         struct radeon_surf *chroma);
  #endif
diff --git a/src/gallium/drivers/r600/radeon_vce.c 
b/src/gallium/drivers/r600/radeon_vce.c
index e8b1a63..16a0127 100644
--- a/src/gallium/drivers/r600/radeon_vce.c
+++ b/src/gallium/drivers/r600/radeon_vce.c
@@ -225,16 +225,10 @@ struct rvce_cpb_slot *l1_slot(struct rvce_encoder *enc)
  void rvce_frame_offset(struct rvce_encoder *enc, struct rvce_cpb_slot *slot,
                       signed *luma_offset, signed *chroma_offset)
  {
-       struct r600_common_screen *rscreen = (struct r600_common_screen 
*)enc->screen;
        unsigned pitch, vpitch, fsize;
- if (rscreen->chip_class < GFX9) {
-               pitch = align(enc->luma->u.legacy.level[0].nblk_x * 
enc->luma->bpe, 128);
-               vpitch = align(enc->luma->u.legacy.level[0].nblk_y, 16);
-       } else {
-               pitch = align(enc->luma->u.gfx9.surf_pitch * enc->luma->bpe, 
256);
-               vpitch = align(enc->luma->u.gfx9.surf_height, 16);
-       }
+       pitch = align(enc->luma->u.legacy.level[0].nblk_x * enc->luma->bpe, 
128);
+       vpitch = align(enc->luma->u.legacy.level[0].nblk_y, 16);
        fsize = pitch * (vpitch + vpitch / 2);
*luma_offset = slot->index * fsize;
@@ -420,16 +414,6 @@ struct pipe_video_codec *rvce_create_encoder(struct 
pipe_context *context,
        if ((rscreen->info.drm_major == 2 && rscreen->info.drm_minor >= 42) ||
              rscreen->info.drm_major == 3)
                enc->use_vui = true;
-       if (rscreen->info.family >= CHIP_TONGA &&
-           rscreen->info.family != CHIP_STONEY &&
-           rscreen->info.family != CHIP_POLARIS11 &&
-           rscreen->info.family != CHIP_POLARIS12)
-               enc->dual_pipe = true;
-       /* TODO enable B frame with dual instance */
-       if ((rscreen->info.family >= CHIP_TONGA) &&
-               (templ->max_references == 1) &&
-               (rscreen->info.vce_harvest_config == 0))
-               enc->dual_inst = true;
enc->base = *templ;
        enc->base.context = context;
@@ -466,12 +450,8 @@ struct pipe_video_codec *rvce_create_encoder(struct 
pipe_context *context,
get_buffer(((struct vl_video_buffer *)tmp_buf)->resources[0], NULL, &tmp_surf); - cpb_size = (rscreen->chip_class < GFX9) ?
-               align(tmp_surf->u.legacy.level[0].nblk_x * tmp_surf->bpe, 128) *
-               align(tmp_surf->u.legacy.level[0].nblk_y, 32) :
-
-               align(tmp_surf->u.gfx9.surf_pitch * tmp_surf->bpe, 256) *
-               align(tmp_surf->u.gfx9.surf_height, 32);
+       cpb_size = align(tmp_surf->u.legacy.level[0].nblk_x * tmp_surf->bpe, 
128) *
+         align(tmp_surf->u.legacy.level[0].nblk_y, 32);
cpb_size = cpb_size * 3 / 2;
        cpb_size = cpb_size * enc->cpb_num;
diff --git a/src/gallium/drivers/r600/radeon_video.c 
b/src/gallium/drivers/r600/radeon_video.c
index 99b6676..c7acc3d 100644
--- a/src/gallium/drivers/r600/radeon_video.c
+++ b/src/gallium/drivers/r600/radeon_video.c
@@ -156,13 +156,11 @@ void rvid_join_surfaces(struct r600_common_context *rctx,
                if (!surfaces[i])
                        continue;
- if (rctx->chip_class < GFX9) {
-                       /* choose the smallest bank w/h for now */
-                       wh = surfaces[i]->u.legacy.bankw * 
surfaces[i]->u.legacy.bankh;
-                       if (wh < best_wh) {
-                               best_wh = wh;
-                               best_tiling = i;
-                       }
+               /* choose the smallest bank w/h for now */
+               wh = surfaces[i]->u.legacy.bankw * surfaces[i]->u.legacy.bankh;
+               if (wh < best_wh) {
+                       best_wh = wh;
+                       best_tiling = i;
                }
        }
@@ -173,17 +171,14 @@ void rvid_join_surfaces(struct r600_common_context *rctx,
                /* adjust the texture layer offsets */
                off = align(off, surfaces[i]->surf_alignment);
- if (rctx->chip_class < GFX9) {
-                       /* copy the tiling parameters */
-                       surfaces[i]->u.legacy.bankw = 
surfaces[best_tiling]->u.legacy.bankw;
-                       surfaces[i]->u.legacy.bankh = 
surfaces[best_tiling]->u.legacy.bankh;
-                       surfaces[i]->u.legacy.mtilea = 
surfaces[best_tiling]->u.legacy.mtilea;
-                       surfaces[i]->u.legacy.tile_split = 
surfaces[best_tiling]->u.legacy.tile_split;
+               /* copy the tiling parameters */
+               surfaces[i]->u.legacy.bankw = 
surfaces[best_tiling]->u.legacy.bankw;
+               surfaces[i]->u.legacy.bankh = 
surfaces[best_tiling]->u.legacy.bankh;
+               surfaces[i]->u.legacy.mtilea = 
surfaces[best_tiling]->u.legacy.mtilea;
+               surfaces[i]->u.legacy.tile_split = 
surfaces[best_tiling]->u.legacy.tile_split;
- for (j = 0; j < ARRAY_SIZE(surfaces[i]->u.legacy.level); ++j)
-                               surfaces[i]->u.legacy.level[j].offset += off;
-               } else
-                       surfaces[i]->u.gfx9.surf_offset += off;
+               for (j = 0; j < ARRAY_SIZE(surfaces[i]->u.legacy.level); ++j)
+                       surfaces[i]->u.legacy.level[j].offset += off;
off += surfaces[i]->surf_size;
        }
@@ -237,9 +232,9 @@ int rvid_get_video_param(struct pipe_screen *screen,
                case PIPE_VIDEO_CAP_NPOT_TEXTURES:
                        return 1;
                case PIPE_VIDEO_CAP_MAX_WIDTH:
-                       return (rscreen->family < CHIP_TONGA) ? 2048 : 4096;
+                       return 2048;
                case PIPE_VIDEO_CAP_MAX_HEIGHT:
-                       return (rscreen->family < CHIP_TONGA) ? 1152 : 2304;
+                       return 1152;
                case PIPE_VIDEO_CAP_PREFERED_FORMAT:
                        return PIPE_FORMAT_NV12;
                case PIPE_VIDEO_CAP_PREFERS_INTERLACED:
@@ -249,7 +244,7 @@ int rvid_get_video_param(struct pipe_screen *screen,
                case PIPE_VIDEO_CAP_SUPPORTS_PROGRESSIVE:
                        return true;
                case PIPE_VIDEO_CAP_STACKED_FRAMES:
-                       return (rscreen->family < CHIP_TONGA) ? 1 : 2;
+                       return 1;
                default:
                        return 0;
                }
@@ -264,40 +259,22 @@ int rvid_get_video_param(struct pipe_screen *screen,
                        /* no support for MPEG4 on older hw */
                        return rscreen->family >= CHIP_PALM;
                case PIPE_VIDEO_FORMAT_MPEG4_AVC:
-                       if ((rscreen->family == CHIP_POLARIS10 ||
-                            rscreen->family == CHIP_POLARIS11) &&
-                           info.uvd_fw_version < UVD_FW_1_66_16 ) {
-                               RVID_ERR("POLARIS10/11 firmware version need to be 
updated.\n");
-                               return false;
-                       }
                        return true;
                case PIPE_VIDEO_FORMAT_VC1:
                        return true;
                case PIPE_VIDEO_FORMAT_HEVC:
-                       /* Carrizo only supports HEVC Main */
-                       if (rscreen->family >= CHIP_STONEY)
-                               return (profile == PIPE_VIDEO_PROFILE_HEVC_MAIN 
||
-                                       profile == 
PIPE_VIDEO_PROFILE_HEVC_MAIN_10);
-                       else if (rscreen->family >= CHIP_CARRIZO)
-                               return profile == PIPE_VIDEO_PROFILE_HEVC_MAIN;
                        return false;
                case PIPE_VIDEO_FORMAT_JPEG:
-                       if (rscreen->family < CHIP_CARRIZO || rscreen->family 
>= CHIP_VEGA10)
-                               return false;
-                       if (!(rscreen->info.drm_major == 3 && 
rscreen->info.drm_minor >= 19)) {
-                               RVID_ERR("No MJPEG support for the kernel 
version\n");
-                               return false;
-                       }
-                       return true;
+                       return false;
                default:
                        return false;
                }
        case PIPE_VIDEO_CAP_NPOT_TEXTURES:
                return 1;
        case PIPE_VIDEO_CAP_MAX_WIDTH:
-               return (rscreen->family < CHIP_TONGA) ? 2048 : 4096;
+               return 2048;
        case PIPE_VIDEO_CAP_MAX_HEIGHT:
-               return (rscreen->family < CHIP_TONGA) ? 1152 : 4096;
+               return 1152;
        case PIPE_VIDEO_CAP_PREFERED_FORMAT:
                if (profile == PIPE_VIDEO_PROFILE_HEVC_MAIN_10)
                        return PIPE_FORMAT_P016;
@@ -342,7 +319,7 @@ int rvid_get_video_param(struct pipe_screen *screen,
                case PIPE_VIDEO_PROFILE_MPEG4_AVC_BASELINE:
                case PIPE_VIDEO_PROFILE_MPEG4_AVC_MAIN:
                case PIPE_VIDEO_PROFILE_MPEG4_AVC_HIGH:
-                       return (rscreen->family < CHIP_TONGA) ? 41 : 52;
+                       return 41;
                case PIPE_VIDEO_PROFILE_HEVC_MAIN:
                case PIPE_VIDEO_PROFILE_HEVC_MAIN_10:
                        return 186;



--
Lerne, wie die Welt wirklich ist,
Aber vergiss niemals, wie sie sein sollte.
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to