#define RDECODE_ARRAY_MODE_MACRO_TILED_MICRO_LINEAR 0x00000004
#define RDECODE_ARRAY_MODE_MACRO_TILED_MICRO_TILED 0x00000005
+#define RDECODE_ARRAY_MODE_ADDRLIB_SEL_GFX10 0x00000000
+#define RDECODE_ARRAY_MODE_ADDRLIB_SEL_GFX9 0x00000001
+#define RDECODE_ARRAY_MODE_ADDRLIB_SEL_GFX8 0x00000002
+#define RDECODE_ARRAY_MODE_ADDRLIB_SEL_GFX11 0x00000003
+
#define RDECODE_H264_PROFILE_BASELINE 0x00000000
#define RDECODE_H264_PROFILE_MAIN 0x00000001
#define RDECODE_H264_PROFILE_HIGH 0x00000002
decode->db_aligned_height = align(dec->base.height, 64);
decode->db_surf_tile_config = 0;
+ decode->db_array_mode = dec->addr_gfx_mode;
decode->dt_pitch = luma->surface.u.gfx9.surf_pitch * luma->surface.blk_w;
decode->dt_uv_pitch = chroma->surface.u.gfx9.surf_pitch * chroma->surface.blk_w;
decode->dt_tiling_mode = 0;
decode->dt_swizzle_mode = luma->surface.u.gfx9.swizzle_mode;
- decode->dt_array_mode = RDECODE_ARRAY_MODE_LINEAR;
+ decode->dt_array_mode = dec->addr_gfx_mode;
decode->dt_field_mode = ((struct vl_video_buffer *)target)->base.interlaced;
decode->dt_surf_tile_config = 0;
decode->dt_uv_surf_tile_config = 0;
}
si_vid_clear_buffer(context, &dec->sessionctx);
+ dec->addr_gfx_mode = RDECODE_ARRAY_MODE_LINEAR;
+
switch (sctx->family) {
case CHIP_RAVEN:
case CHIP_RAVEN2:
case CHIP_GFX1100:
case CHIP_GFX1102:
dec->jpg.direct_reg = true;
+ dec->addr_gfx_mode = RDECODE_ARRAY_MODE_ADDRLIB_SEL_GFX11;
break;
default:
RVID_ERR("VCN is not supported.\n");