Path: blob/21.2-virgl/src/gallium/drivers/radeon/radeon_vcn_dec.h
4570 views
/**************************************************************************1*2* Copyright 2017 Advanced Micro Devices, Inc.3* All Rights Reserved.4*5* Permission is hereby granted, free of charge, to any person obtaining a6* copy of this software and associated documentation files (the7* "Software"), to deal in the Software without restriction, including8* without limitation the rights to use, copy, modify, merge, publish,9* distribute, sub license, and/or sell copies of the Software, and to10* permit persons to whom the Software is furnished to do so, subject to11* the following conditions:12*13* The above copyright notice and this permission notice (including the14* next paragraph) shall be included in all copies or substantial portions15* of the Software.16*17* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS18* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF19* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.20* IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR21* ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,22* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE23* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.24*25**************************************************************************/2627#ifndef _RADEON_VCN_DEC_H28#define _RADEON_VCN_DEC_H2930#include "radeon_video.h"31#include "util/list.h"3233#define RDECODE_PKT_TYPE_S(x) (((unsigned)(x)&0x3) << 30)34#define RDECODE_PKT_TYPE_G(x) (((x) >> 30) & 0x3)35#define RDECODE_PKT_TYPE_C 0x3FFFFFFF36#define RDECODE_PKT_COUNT_S(x) (((unsigned)(x)&0x3FFF) << 16)37#define RDECODE_PKT_COUNT_G(x) (((x) >> 16) & 0x3FFF)38#define RDECODE_PKT_COUNT_C 0xC000FFFF39#define RDECODE_PKT0_BASE_INDEX_S(x) (((unsigned)(x)&0xFFFF) << 0)40#define RDECODE_PKT0_BASE_INDEX_G(x) (((x) >> 0) & 0xFFFF)41#define RDECODE_PKT0_BASE_INDEX_C 0xFFFF000042#define RDECODE_PKT0(index, count) \43(RDECODE_PKT_TYPE_S(0) | RDECODE_PKT0_BASE_INDEX_S(index) | RDECODE_PKT_COUNT_S(count))4445#define RDECODE_PKT2() (RDECODE_PKT_TYPE_S(2))4647#define RDECODE_PKT_REG_J(x) ((unsigned)(x)&0x3FFFF)48#define RDECODE_PKT_RES_J(x) (((unsigned)(x)&0x3F) << 18)49#define RDECODE_PKT_COND_J(x) (((unsigned)(x)&0xF) << 24)50#define RDECODE_PKT_TYPE_J(x) (((unsigned)(x)&0xF) << 28)51#define RDECODE_PKTJ(reg, cond, type) \52(RDECODE_PKT_REG_J(reg) | RDECODE_PKT_RES_J(0) | RDECODE_PKT_COND_J(cond) | \53RDECODE_PKT_TYPE_J(type))5455#define RDECODE_CMD_MSG_BUFFER 0x0000000056#define RDECODE_CMD_DPB_BUFFER 0x0000000157#define RDECODE_CMD_DECODING_TARGET_BUFFER 0x0000000258#define RDECODE_CMD_FEEDBACK_BUFFER 0x0000000359#define RDECODE_CMD_PROB_TBL_BUFFER 0x0000000460#define RDECODE_CMD_SESSION_CONTEXT_BUFFER 0x0000000561#define RDECODE_CMD_BITSTREAM_BUFFER 0x0000010062#define RDECODE_CMD_IT_SCALING_TABLE_BUFFER 0x0000020463#define RDECODE_CMD_CONTEXT_BUFFER 0x000002066465#define RDECODE_MSG_CREATE 0x0000000066#define RDECODE_MSG_DECODE 0x0000000167#define RDECODE_MSG_DESTROY 0x000000026869#define RDECODE_CODEC_H264 0x0000000070#define RDECODE_CODEC_VC1 0x0000000171#define RDECODE_CODEC_MPEG2_VLD 0x0000000372#define RDECODE_CODEC_MPEG4 0x0000000473#define RDECODE_CODEC_H264_PERF 0x0000000774#define RDECODE_CODEC_JPEG 0x0000000875#define RDECODE_CODEC_H265 0x0000001076#define RDECODE_CODEC_VP9 0x0000001177#define RDECODE_CODEC_AV1 0x000000137879#define RDECODE_ARRAY_MODE_LINEAR 0x0000000080#define RDECODE_ARRAY_MODE_MACRO_LINEAR_MICRO_TILED 0x0000000181#define RDECODE_ARRAY_MODE_1D_THIN 0x0000000282#define RDECODE_ARRAY_MODE_2D_THIN 0x0000000483#define RDECODE_ARRAY_MODE_MACRO_TILED_MICRO_LINEAR 0x0000000484#define RDECODE_ARRAY_MODE_MACRO_TILED_MICRO_TILED 0x000000058586#define RDECODE_H264_PROFILE_BASELINE 0x0000000087#define RDECODE_H264_PROFILE_MAIN 0x0000000188#define RDECODE_H264_PROFILE_HIGH 0x0000000289#define RDECODE_H264_PROFILE_STEREO_HIGH 0x0000000390#define RDECODE_H264_PROFILE_MVC 0x000000049192#define RDECODE_VC1_PROFILE_SIMPLE 0x0000000093#define RDECODE_VC1_PROFILE_MAIN 0x0000000194#define RDECODE_VC1_PROFILE_ADVANCED 0x000000029596#define RDECODE_SW_MODE_LINEAR 0x0000000097#define RDECODE_256B_S 0x0000000198#define RDECODE_256B_D 0x0000000299#define RDECODE_4KB_S 0x00000005100#define RDECODE_4KB_D 0x00000006101#define RDECODE_64KB_S 0x00000009102#define RDECODE_64KB_D 0x0000000A103#define RDECODE_4KB_S_X 0x00000015104#define RDECODE_4KB_D_X 0x00000016105#define RDECODE_64KB_S_X 0x00000019106#define RDECODE_64KB_D_X 0x0000001A107108#define RDECODE_MESSAGE_NOT_SUPPORTED 0x00000000109#define RDECODE_MESSAGE_CREATE 0x00000001110#define RDECODE_MESSAGE_DECODE 0x00000002111#define RDECODE_MESSAGE_DRM 0x00000003112#define RDECODE_MESSAGE_AVC 0x00000006113#define RDECODE_MESSAGE_VC1 0x00000007114#define RDECODE_MESSAGE_MPEG2_VLD 0x0000000A115#define RDECODE_MESSAGE_MPEG4_ASP_VLD 0x0000000B116#define RDECODE_MESSAGE_HEVC 0x0000000D117#define RDECODE_MESSAGE_VP9 0x0000000E118#define RDECODE_MESSAGE_DYNAMIC_DPB 0x00000010119#define RDECODE_MESSAGE_AV1 0x00000011120121#define RDECODE_FEEDBACK_PROFILING 0x00000001122123#define RDECODE_SPS_INFO_H264_EXTENSION_SUPPORT_FLAG_SHIFT 7124125#define NUM_BUFFERS 4126127#define RDECODE_VP9_PROBS_DATA_SIZE 2304128129#define mmUVD_JPEG_CNTL 0x0200130#define mmUVD_JPEG_CNTL_BASE_IDX 1131#define mmUVD_JPEG_RB_BASE 0x0201132#define mmUVD_JPEG_RB_BASE_BASE_IDX 1133#define mmUVD_JPEG_RB_WPTR 0x0202134#define mmUVD_JPEG_RB_WPTR_BASE_IDX 1135#define mmUVD_JPEG_RB_RPTR 0x0203136#define mmUVD_JPEG_RB_RPTR_BASE_IDX 1137#define mmUVD_JPEG_RB_SIZE 0x0204138#define mmUVD_JPEG_RB_SIZE_BASE_IDX 1139#define mmUVD_JPEG_TIER_CNTL2 0x021a140#define mmUVD_JPEG_TIER_CNTL2_BASE_IDX 1141#define mmUVD_JPEG_UV_TILING_CTRL 0x021c142#define mmUVD_JPEG_UV_TILING_CTRL_BASE_IDX 1143#define mmUVD_JPEG_TILING_CTRL 0x021e144#define mmUVD_JPEG_TILING_CTRL_BASE_IDX 1145#define mmUVD_JPEG_OUTBUF_RPTR 0x0220146#define mmUVD_JPEG_OUTBUF_RPTR_BASE_IDX 1147#define mmUVD_JPEG_OUTBUF_WPTR 0x0221148#define mmUVD_JPEG_OUTBUF_WPTR_BASE_IDX 1149#define mmUVD_JPEG_PITCH 0x0222150#define mmUVD_JPEG_PITCH_BASE_IDX 1151#define mmUVD_JPEG_INT_EN 0x0229152#define mmUVD_JPEG_INT_EN_BASE_IDX 1153#define mmUVD_JPEG_UV_PITCH 0x022b154#define mmUVD_JPEG_UV_PITCH_BASE_IDX 1155#define mmUVD_JPEG_INDEX 0x023e156#define mmUVD_JPEG_INDEX_BASE_IDX 1157#define mmUVD_JPEG_DATA 0x023f158#define mmUVD_JPEG_DATA_BASE_IDX 1159#define mmUVD_LMI_JPEG_WRITE_64BIT_BAR_HIGH 0x0438160#define mmUVD_LMI_JPEG_WRITE_64BIT_BAR_HIGH_BASE_IDX 1161#define mmUVD_LMI_JPEG_WRITE_64BIT_BAR_LOW 0x0439162#define mmUVD_LMI_JPEG_WRITE_64BIT_BAR_LOW_BASE_IDX 1163#define mmUVD_LMI_JPEG_READ_64BIT_BAR_HIGH 0x045a164#define mmUVD_LMI_JPEG_READ_64BIT_BAR_HIGH_BASE_IDX 1165#define mmUVD_LMI_JPEG_READ_64BIT_BAR_LOW 0x045b166#define mmUVD_LMI_JPEG_READ_64BIT_BAR_LOW_BASE_IDX 1167#define mmUVD_CTX_INDEX 0x0528168#define mmUVD_CTX_INDEX_BASE_IDX 1169#define mmUVD_CTX_DATA 0x0529170#define mmUVD_CTX_DATA_BASE_IDX 1171#define mmUVD_SOFT_RESET 0x05a0172#define mmUVD_SOFT_RESET_BASE_IDX 1173174#define vcnipUVD_JPEG_DEC_SOFT_RST 0x402f175#define vcnipUVD_JRBC_IB_COND_RD_TIMER 0x408e176#define vcnipUVD_JRBC_IB_REF_DATA 0x408f177#define vcnipUVD_LMI_JPEG_READ_64BIT_BAR_HIGH 0x40e1178#define vcnipUVD_LMI_JPEG_READ_64BIT_BAR_LOW 0x40e0179#define vcnipUVD_JPEG_RB_BASE 0x4001180#define vcnipUVD_JPEG_RB_SIZE 0x4004181#define vcnipUVD_JPEG_RB_WPTR 0x4002182#define vcnipUVD_JPEG_PITCH 0x401f183#define vcnipUVD_JPEG_UV_PITCH 0x4020184#define vcnipJPEG_DEC_ADDR_MODE 0x4027185#define vcnipJPEG_DEC_Y_GFX10_TILING_SURFACE 0x4024186#define vcnipJPEG_DEC_UV_GFX10_TILING_SURFACE 0x4025187#define vcnipUVD_LMI_JPEG_WRITE_64BIT_BAR_HIGH 0x40e3188#define vcnipUVD_LMI_JPEG_WRITE_64BIT_BAR_LOW 0x40e2189#define vcnipUVD_JPEG_INDEX 0x402c190#define vcnipUVD_JPEG_DATA 0x402d191#define vcnipUVD_JPEG_TIER_CNTL2 0x400f192#define vcnipUVD_JPEG_OUTBUF_RPTR 0x401e193#define vcnipUVD_JPEG_OUTBUF_CNTL 0x401c194#define vcnipUVD_JPEG_INT_EN 0x400a195#define vcnipUVD_JPEG_CNTL 0x4000196#define vcnipUVD_JPEG_RB_RPTR 0x4003197#define vcnipUVD_JPEG_OUTBUF_WPTR 0x401d198199#define UVD_BASE_INST0_SEG0 0x00007800200#define UVD_BASE_INST0_SEG1 0x00007E00201#define UVD_BASE_INST0_SEG2 0202#define UVD_BASE_INST0_SEG3 0203#define UVD_BASE_INST0_SEG4 0204205#define SOC15_REG_ADDR(reg) (UVD_BASE_INST0_SEG1 + reg)206207#define COND0 0208#define COND1 1209#define COND2 2210#define COND3 3211#define COND4 4212#define COND5 5213#define COND6 6214#define COND7 7215216#define TYPE0 0217#define TYPE1 1218#define TYPE2 2219#define TYPE3 3220#define TYPE4 4221#define TYPE5 5222#define TYPE6 6223#define TYPE7 7224225/* VP9 Frame header flags */226#define RDECODE_FRAME_HDR_INFO_VP9_USE_PREV_IN_FIND_MV_REFS_SHIFT (13)227#define RDECODE_FRAME_HDR_INFO_VP9_MODE_REF_DELTA_UPDATE_SHIFT (12)228#define RDECODE_FRAME_HDR_INFO_VP9_MODE_REF_DELTA_ENABLED_SHIFT (11)229#define RDECODE_FRAME_HDR_INFO_VP9_SEGMENTATION_UPDATE_DATA_SHIFT (10)230#define RDECODE_FRAME_HDR_INFO_VP9_SEGMENTATION_TEMPORAL_UPDATE_SHIFT (9)231#define RDECODE_FRAME_HDR_INFO_VP9_SEGMENTATION_UPDATE_MAP_SHIFT (8)232#define RDECODE_FRAME_HDR_INFO_VP9_SEGMENTATION_ENABLED_SHIFT (7)233#define RDECODE_FRAME_HDR_INFO_VP9_FRAME_PARALLEL_DECODING_MODE_SHIFT (6)234#define RDECODE_FRAME_HDR_INFO_VP9_REFRESH_FRAME_CONTEXT_SHIFT (5)235#define RDECODE_FRAME_HDR_INFO_VP9_ALLOW_HIGH_PRECISION_MV_SHIFT (4)236#define RDECODE_FRAME_HDR_INFO_VP9_INTRA_ONLY_SHIFT (3)237#define RDECODE_FRAME_HDR_INFO_VP9_ERROR_RESILIENT_MODE_SHIFT (2)238#define RDECODE_FRAME_HDR_INFO_VP9_FRAME_TYPE_SHIFT (1)239#define RDECODE_FRAME_HDR_INFO_VP9_SHOW_EXISTING_FRAME_SHIFT (0)240241#define RDECODE_FRAME_HDR_INFO_VP9_USE_PREV_IN_FIND_MV_REFS_MASK (0x00002000)242#define RDECODE_FRAME_HDR_INFO_VP9_MODE_REF_DELTA_UPDATE_MASK (0x00001000)243#define RDECODE_FRAME_HDR_INFO_VP9_MODE_REF_DELTA_ENABLED_MASK (0x00000800)244#define RDECODE_FRAME_HDR_INFO_VP9_SEGMENTATION_UPDATE_DATA_MASK (0x00000400)245#define RDECODE_FRAME_HDR_INFO_VP9_SEGMENTATION_TEMPORAL_UPDATE_MASK (0x00000200)246#define RDECODE_FRAME_HDR_INFO_VP9_SEGMENTATION_UPDATE_MAP_MASK (0x00000100)247#define RDECODE_FRAME_HDR_INFO_VP9_SEGMENTATION_ENABLED_MASK (0x00000080)248#define RDECODE_FRAME_HDR_INFO_VP9_FRAME_PARALLEL_DECODING_MODE_MASK (0x00000040)249#define RDECODE_FRAME_HDR_INFO_VP9_REFRESH_FRAME_CONTEXT_MASK (0x00000020)250#define RDECODE_FRAME_HDR_INFO_VP9_ALLOW_HIGH_PRECISION_MV_MASK (0x00000010)251#define RDECODE_FRAME_HDR_INFO_VP9_INTRA_ONLY_MASK (0x00000008)252#define RDECODE_FRAME_HDR_INFO_VP9_ERROR_RESILIENT_MODE_MASK (0x00000004)253#define RDECODE_FRAME_HDR_INFO_VP9_FRAME_TYPE_MASK (0x00000002)254#define RDECODE_FRAME_HDR_INFO_VP9_SHOW_EXISTING_FRAME_MASK (0x00000001)255256/* Drm definitions */257#define DRM_CMD_KEY_SHIFT 0258#define DRM_CMD_CNT_KEY_SHIFT 1259#define DRM_CMD_CNT_DATA_SHIFT 2260#define DRM_CMD_OFFSET_SHIFT 3261#define DRM_CMD_SESSION_SEL_SHIFT 4262#define DRM_CMD_UNWRAP_KEY_SHIFT 8263#define DRM_CMD_GEN_MASK_SHIFT 9264#define DRM_CMD_ALGORITHM_SHIFT 10265#define DRM_CMD_BYTE_MASK_SHIFT 16266#define DRM_CMD_DRM_BYPASS_SHIFT 31267268#define DRM_CMD_KEY_MASK (0x00000001)269#define DRM_CMD_CNT_KEY_MASK (0x00000002)270#define DRM_CMD_CNT_DATA_MASK (0x00000004)271#define DRM_CMD_OFFSET_MASK (0x00000008)272#define DRM_CMD_SESSION_SEL_MASK (0x000000F0)273#define DRM_CMD_UNWRAP_KEY_MASK (0x00000100)274#define DRM_CMD_GEN_MASK_MASK (0x00000200)275#define DRM_CMD_ALGORITHM_MASK (0x00000C00)276#define DRM_CMD_BYTE_MASK_MASK (0x00FF0000)277#define DRM_CMD_DRM_BYPASS_MASK (0x80000000)278279/* Drm_cntl definitions */280#define DRM_CNTL_ENC_BYTECNT_SHIFT (6)281#define DRM_CNTL_CLR_BYTECNT_SHIFT (16)282#define DRM_CNTL_BYPASS_SHIFT (24)283#define DRM_CNTL_PARTIAL_MODE_SHIFT (25)284#define DRM_CNTL_OFFSET_MODE_SHIFT (26)285#define DRM_CNTL_HEADER_MODE_SHIFT (27)286#define DRM_CNTL_HEADER_BYTECNT_SHIFT (28)287288#define DRM_CNTL_ENC_BYTECNT_MASK (0x00000FC0)289#define DRM_CNTL_CLR_BYTECNT_MASK (0x003F0000)290#define DRM_CNTL_BYPASS_MASK (0x01000000)291#define DRM_CNTL_PARTIAL_MODE_MASK (0x02000000)292#define DRM_CNTL_OFFSET_MODE_MASK (0x04000000)293#define DRM_CNTL_HEADER_MODE_MASK (0x08000000)294#define DRM_CNTL_HEADER_BYTECNT_MASK (0xF0000000)295296#define SAMU_DRM_DISABLE 0x00000000297#define SAMU_DRM_ENABLE 0x00000001298299/* AV1 Frame header flags */300#define RDECODE_FRAME_HDR_INFO_AV1_DISABLE_REF_FRAME_MVS_SHIFT (31)301#define RDECODE_FRAME_HDR_INFO_AV1_SKIP_REFERENCE_UPDATE_SHIFT (30)302#define RDECODE_FRAME_HDR_INFO_AV1_SWITCHABLE_SKIP_MODE_SHIFT (29)303#define RDECODE_FRAME_HDR_INFO_AV1_DELTA_LF_MULTI_SHIFT (28)304#define RDECODE_FRAME_HDR_INFO_AV1_SEGMENTATION_TEMPORAL_UPDATE_SHIFT (27)305#define RDECODE_FRAME_HDR_INFO_AV1_SEGMENTATION_UPDATE_MAP_SHIFT (26)306#define RDECODE_FRAME_HDR_INFO_AV1_SEGMENTATION_ENABLED_SHIFT (25)307#define RDECODE_FRAME_HDR_INFO_AV1_REDUCED_TX_SET_USED_SHIFT (24)308#define RDECODE_FRAME_HDR_INFO_AV1_DELTA_LF_PRESENT_FLAG_SHIFT (23)309#define RDECODE_FRAME_HDR_INFO_AV1_DELTA_Q_PRESENT_FLAG_SHIFT (22)310#define RDECODE_FRAME_HDR_INFO_AV1_MODE_REF_DELTA_UPDATE_SHIFT (21)311#define RDECODE_FRAME_HDR_INFO_AV1_MODE_REF_DELTA_ENABLED_SHIFT (20)312#define RDECODE_FRAME_HDR_INFO_AV1_CUR_FRAME_FORCE_INTEGER_MV_SHIFT (19)313#define RDECODE_FRAME_HDR_INFO_AV1_ALLOW_SCREEN_CONTENT_TOOLS_SHIFT (18)314#define RDECODE_FRAME_HDR_INFO_AV1_ALLOW_REF_FRAME_MVS_SHIFT (17)315#define RDECODE_FRAME_HDR_INFO_AV1_ENABLE_JNT_COMP_SHIFT (16)316#define RDECODE_FRAME_HDR_INFO_AV1_ENABLE_ORDER_HINT_SHIFT (15)317#define RDECODE_FRAME_HDR_INFO_AV1_ENABLE_DUAL_FILTER_SHIFT (14)318#define RDECODE_FRAME_HDR_INFO_AV1_ALLOW_WARPED_MOTION_SHIFT (13)319#define RDECODE_FRAME_HDR_INFO_AV1_ENABLE_MASKED_COMPOUND_SHIFT (12)320#define RDECODE_FRAME_HDR_INFO_AV1_ENABLE_INTERINTRA_COMPOUND_SHIFT (11)321#define RDECODE_FRAME_HDR_INFO_AV1_ENABLE_INTRA_EDGE_FILTER_SHIFT (10)322#define RDECODE_FRAME_HDR_INFO_AV1_ENABLE_FILTER_INTRA_SHIFT (9)323#define RDECODE_FRAME_HDR_INFO_AV1_USING_QMATRIX_SHIFT (8)324#define RDECODE_FRAME_HDR_INFO_AV1_SKIP_MODE_FLAG_SHIFT (7)325#define RDECODE_FRAME_HDR_INFO_AV1_MONOCHROME_SHIFT (6)326#define RDECODE_FRAME_HDR_INFO_AV1_ALLOW_HIGH_PRECISION_MV_SHIFT (5)327#define RDECODE_FRAME_HDR_INFO_AV1_ALLOW_INTRABC_SHIFT (4)328#define RDECODE_FRAME_HDR_INFO_AV1_INTRA_ONLY_SHIFT (3)329#define RDECODE_FRAME_HDR_INFO_AV1_REFRESH_FRAME_CONTEXT_SHIFT (2)330#define RDECODE_FRAME_HDR_INFO_AV1_DISABLE_CDF_UPDATE_SHIFT (1)331#define RDECODE_FRAME_HDR_INFO_AV1_SHOW_FRAME_SHIFT (0)332333#define RDECODE_FRAME_HDR_INFO_AV1_DISABLE_REF_FRAME_MVS_MASK (0x80000000)334#define RDECODE_FRAME_HDR_INFO_AV1_SKIP_REFERENCE_UPDATE_MASK (0x40000000)335#define RDECODE_FRAME_HDR_INFO_AV1_SWITCHABLE_SKIP_MODE_MASK (0x20000000)336#define RDECODE_FRAME_HDR_INFO_AV1_DELTA_LF_MULTI_MASK (0x10000000)337#define RDECODE_FRAME_HDR_INFO_AV1_SEGMENTATION_TEMPORAL_UPDATE_MASK (0x08000000)338#define RDECODE_FRAME_HDR_INFO_AV1_SEGMENTATION_UPDATE_MAP_MASK (0x04000000)339#define RDECODE_FRAME_HDR_INFO_AV1_SEGMENTATION_ENABLED_MASK (0x02000000)340#define RDECODE_FRAME_HDR_INFO_AV1_REDUCED_TX_SET_USED_MASK (0x01000000)341#define RDECODE_FRAME_HDR_INFO_AV1_DELTA_LF_PRESENT_FLAG_MASK (0x00800000)342#define RDECODE_FRAME_HDR_INFO_AV1_DELTA_Q_PRESENT_FLAG_MASK (0x00400000)343#define RDECODE_FRAME_HDR_INFO_AV1_MODE_REF_DELTA_UPDATE_MASK (0x00200000)344#define RDECODE_FRAME_HDR_INFO_AV1_MODE_REF_DELTA_ENABLED_MASK (0x00100000)345#define RDECODE_FRAME_HDR_INFO_AV1_CUR_FRAME_FORCE_INTEGER_MV_MASK (0x00080000)346#define RDECODE_FRAME_HDR_INFO_AV1_ALLOW_SCREEN_CONTENT_TOOLS_MASK (0x00040000)347#define RDECODE_FRAME_HDR_INFO_AV1_ALLOW_REF_FRAME_MVS_MASK (0x00020000)348#define RDECODE_FRAME_HDR_INFO_AV1_ENABLE_JNT_COMP_MASK (0x00010000)349#define RDECODE_FRAME_HDR_INFO_AV1_ENABLE_ORDER_HINT_MASK (0x00008000)350#define RDECODE_FRAME_HDR_INFO_AV1_ENABLE_DUAL_FILTER_MASK (0x00004000)351#define RDECODE_FRAME_HDR_INFO_AV1_ALLOW_WARPED_MOTION_MASK (0x00002000)352#define RDECODE_FRAME_HDR_INFO_AV1_ENABLE_MASKED_COMPOUND_MASK (0x00001000)353#define RDECODE_FRAME_HDR_INFO_AV1_ENABLE_INTERINTRA_COMPOUND_MASK (0x00000800)354#define RDECODE_FRAME_HDR_INFO_AV1_ENABLE_INTRA_EDGE_FILTER_MASK (0x00000400)355#define RDECODE_FRAME_HDR_INFO_AV1_ENABLE_FILTER_INTRA_MASK (0x00000200)356#define RDECODE_FRAME_HDR_INFO_AV1_USING_QMATRIX_MASK (0x00000100)357#define RDECODE_FRAME_HDR_INFO_AV1_SKIP_MODE_FLAG_MASK (0x00000080)358#define RDECODE_FRAME_HDR_INFO_AV1_MONOCHROME_MASK (0x08000040)359#define RDECODE_FRAME_HDR_INFO_AV1_ALLOW_HIGH_PRECISION_MV_MASK (0x00000020)360#define RDECODE_FRAME_HDR_INFO_AV1_ALLOW_INTRABC_MASK (0x00000010)361#define RDECODE_FRAME_HDR_INFO_AV1_INTRA_ONLY_MASK (0x00000008)362#define RDECODE_FRAME_HDR_INFO_AV1_REFRESH_FRAME_CONTEXT_MASK (0x00000004)363#define RDECODE_FRAME_HDR_INFO_AV1_DISABLE_CDF_UPDATE_MASK (0x00000002)364#define RDECODE_FRAME_HDR_INFO_AV1_SHOW_FRAME_MASK (0x00000001)365366typedef struct rvcn_dec_message_index_s {367unsigned int message_id;368unsigned int offset;369unsigned int size;370unsigned int filled;371} rvcn_dec_message_index_t;372373typedef struct rvcn_dec_message_header_s {374unsigned int header_size;375unsigned int total_size;376unsigned int num_buffers;377unsigned int msg_type;378unsigned int stream_handle;379unsigned int status_report_feedback_number;380381rvcn_dec_message_index_t index[1];382} rvcn_dec_message_header_t;383384typedef struct rvcn_dec_message_create_s {385unsigned int stream_type;386unsigned int session_flags;387unsigned int width_in_samples;388unsigned int height_in_samples;389} rvcn_dec_message_create_t;390391typedef struct rvcn_dec_message_decode_s {392unsigned int stream_type;393unsigned int decode_flags;394unsigned int width_in_samples;395unsigned int height_in_samples;396397unsigned int bsd_size;398unsigned int dpb_size;399unsigned int dt_size;400unsigned int sct_size;401unsigned int sc_coeff_size;402unsigned int hw_ctxt_size;403unsigned int sw_ctxt_size;404unsigned int pic_param_size;405unsigned int mb_cntl_size;406unsigned int reserved0[4];407unsigned int decode_buffer_flags;408409unsigned int db_pitch;410unsigned int db_aligned_height;411unsigned int db_tiling_mode;412unsigned int db_swizzle_mode;413unsigned int db_array_mode;414unsigned int db_field_mode;415unsigned int db_surf_tile_config;416417unsigned int dt_pitch;418unsigned int dt_uv_pitch;419unsigned int dt_tiling_mode;420unsigned int dt_swizzle_mode;421unsigned int dt_array_mode;422unsigned int dt_field_mode;423unsigned int dt_out_format;424unsigned int dt_surf_tile_config;425unsigned int dt_uv_surf_tile_config;426unsigned int dt_luma_top_offset;427unsigned int dt_luma_bottom_offset;428unsigned int dt_chroma_top_offset;429unsigned int dt_chroma_bottom_offset;430unsigned int dt_chromaV_top_offset;431unsigned int dt_chromaV_bottom_offset;432433unsigned int mif_wrc_en;434unsigned int db_pitch_uv;435436unsigned char reserved1[20];437} rvcn_dec_message_decode_t;438439typedef struct rvcn_dec_message_drm_s {440unsigned int drm_key[4];441unsigned int drm_counter[4];442unsigned int drm_wrapped_key[4];443unsigned int drm_offset;444unsigned int drm_cmd;445unsigned int drm_cntl;446unsigned int drm_reserved;447} rvcn_dec_message_drm_t;448449typedef struct rvcn_dec_message_dynamic_dpb_s {450unsigned int dpbConfigFlags;451unsigned int dpbLumaPitch;452unsigned int dpbLumaAlignedHeight;453unsigned int dpbLumaAlignedSize;454unsigned int dpbChromaPitch;455unsigned int dpbChromaAlignedHeight;456unsigned int dpbChromaAlignedSize;457458unsigned char dpbArraySize;459unsigned char dpbCurArraySlice;460unsigned char dpbRefArraySlice[16];461unsigned char dpbReserved0[2];462463unsigned int dpbCurrOffset;464unsigned int dpbAddrOffset[16];465} rvcn_dec_message_dynamic_dpb_t;466467typedef struct rvcn_dec_message_dynamic_dpb_t2_s {468unsigned int dpbConfigFlags;469unsigned int dpbLumaPitch;470unsigned int dpbLumaAlignedHeight;471unsigned int dpbLumaAlignedSize;472unsigned int dpbChromaPitch;473unsigned int dpbChromaAlignedHeight;474unsigned int dpbChromaAlignedSize;475unsigned int dpbArraySize;476477unsigned int dpbCurrLo;478unsigned int dpbCurrHi;479unsigned int dpbAddrLo[16];480unsigned int dpbAddrHi[16];481} rvcn_dec_message_dynamic_dpb_t2_t;482483typedef struct {484unsigned short viewOrderIndex;485unsigned short viewId;486unsigned short numOfAnchorRefsInL0;487unsigned short viewIdOfAnchorRefsInL0[15];488unsigned short numOfAnchorRefsInL1;489unsigned short viewIdOfAnchorRefsInL1[15];490unsigned short numOfNonAnchorRefsInL0;491unsigned short viewIdOfNonAnchorRefsInL0[15];492unsigned short numOfNonAnchorRefsInL1;493unsigned short viewIdOfNonAnchorRefsInL1[15];494} radeon_mvcElement_t;495496typedef struct rvcn_dec_message_avc_s {497unsigned int profile;498unsigned int level;499500unsigned int sps_info_flags;501unsigned int pps_info_flags;502unsigned char chroma_format;503unsigned char bit_depth_luma_minus8;504unsigned char bit_depth_chroma_minus8;505unsigned char log2_max_frame_num_minus4;506507unsigned char pic_order_cnt_type;508unsigned char log2_max_pic_order_cnt_lsb_minus4;509unsigned char num_ref_frames;510unsigned char reserved_8bit;511512signed char pic_init_qp_minus26;513signed char pic_init_qs_minus26;514signed char chroma_qp_index_offset;515signed char second_chroma_qp_index_offset;516517unsigned char num_slice_groups_minus1;518unsigned char slice_group_map_type;519unsigned char num_ref_idx_l0_active_minus1;520unsigned char num_ref_idx_l1_active_minus1;521522unsigned short slice_group_change_rate_minus1;523unsigned short reserved_16bit_1;524525unsigned char scaling_list_4x4[6][16];526unsigned char scaling_list_8x8[2][64];527528unsigned int frame_num;529unsigned int frame_num_list[16];530int curr_field_order_cnt_list[2];531int field_order_cnt_list[16][2];532533unsigned int decoded_pic_idx;534unsigned int curr_pic_ref_frame_num;535unsigned char ref_frame_list[16];536537unsigned int reserved[122];538539struct {540unsigned int numViews;541unsigned int viewId0;542radeon_mvcElement_t mvcElements[1];543} mvc;544545} rvcn_dec_message_avc_t;546547typedef struct rvcn_dec_message_vc1_s {548unsigned int profile;549unsigned int level;550unsigned int sps_info_flags;551unsigned int pps_info_flags;552unsigned int pic_structure;553unsigned int chroma_format;554unsigned short decoded_pic_idx;555unsigned short deblocked_pic_idx;556unsigned short forward_ref_idx;557unsigned short backward_ref_idx;558unsigned int cached_frame_flag;559} rvcn_dec_message_vc1_t;560561typedef struct rvcn_dec_message_mpeg2_vld_s {562unsigned int decoded_pic_idx;563unsigned int forward_ref_pic_idx;564unsigned int backward_ref_pic_idx;565566unsigned char load_intra_quantiser_matrix;567unsigned char load_nonintra_quantiser_matrix;568unsigned char reserved_quantiser_alignement[2];569unsigned char intra_quantiser_matrix[64];570unsigned char nonintra_quantiser_matrix[64];571572unsigned char profile_and_level_indication;573unsigned char chroma_format;574575unsigned char picture_coding_type;576577unsigned char reserved_1;578579unsigned char f_code[2][2];580unsigned char intra_dc_precision;581unsigned char pic_structure;582unsigned char top_field_first;583unsigned char frame_pred_frame_dct;584unsigned char concealment_motion_vectors;585unsigned char q_scale_type;586unsigned char intra_vlc_format;587unsigned char alternate_scan;588} rvcn_dec_message_mpeg2_vld_t;589590typedef struct rvcn_dec_message_mpeg4_asp_vld_s {591unsigned int decoded_pic_idx;592unsigned int forward_ref_pic_idx;593unsigned int backward_ref_pic_idx;594595unsigned int variant_type;596unsigned char profile_and_level_indication;597598unsigned char video_object_layer_verid;599unsigned char video_object_layer_shape;600601unsigned char reserved_1;602603unsigned short video_object_layer_width;604unsigned short video_object_layer_height;605606unsigned short vop_time_increment_resolution;607608unsigned short reserved_2;609610struct {611unsigned int short_video_header : 1;612unsigned int obmc_disable : 1;613unsigned int interlaced : 1;614unsigned int load_intra_quant_mat : 1;615unsigned int load_nonintra_quant_mat : 1;616unsigned int quarter_sample : 1;617unsigned int complexity_estimation_disable : 1;618unsigned int resync_marker_disable : 1;619unsigned int data_partitioned : 1;620unsigned int reversible_vlc : 1;621unsigned int newpred_enable : 1;622unsigned int reduced_resolution_vop_enable : 1;623unsigned int scalability : 1;624unsigned int is_object_layer_identifier : 1;625unsigned int fixed_vop_rate : 1;626unsigned int newpred_segment_type : 1;627unsigned int reserved_bits : 16;628};629630unsigned char quant_type;631unsigned char reserved_3[3];632unsigned char intra_quant_mat[64];633unsigned char nonintra_quant_mat[64];634635struct {636unsigned char sprite_enable;637638unsigned char reserved_4[3];639640unsigned short sprite_width;641unsigned short sprite_height;642short sprite_left_coordinate;643short sprite_top_coordinate;644645unsigned char no_of_sprite_warping_points;646unsigned char sprite_warping_accuracy;647unsigned char sprite_brightness_change;648unsigned char low_latency_sprite_enable;649} sprite_config;650651struct {652struct {653unsigned int check_skip : 1;654unsigned int switch_rounding : 1;655unsigned int t311 : 1;656unsigned int reserved_bits : 29;657};658659unsigned char vol_mode;660661unsigned char reserved_5[3];662} divx_311_config;663664struct {665unsigned char vop_data_present;666unsigned char vop_coding_type;667unsigned char vop_quant;668unsigned char vop_coded;669unsigned char vop_rounding_type;670unsigned char intra_dc_vlc_thr;671unsigned char top_field_first;672unsigned char alternate_vertical_scan_flag;673unsigned char vop_fcode_forward;674unsigned char vop_fcode_backward;675unsigned int TRB[2];676unsigned int TRD[2];677} vop;678679} rvcn_dec_message_mpeg4_asp_vld_t;680681typedef struct rvcn_dec_message_hevc_s {682unsigned int sps_info_flags;683unsigned int pps_info_flags;684unsigned char chroma_format;685unsigned char bit_depth_luma_minus8;686unsigned char bit_depth_chroma_minus8;687unsigned char log2_max_pic_order_cnt_lsb_minus4;688689unsigned char sps_max_dec_pic_buffering_minus1;690unsigned char log2_min_luma_coding_block_size_minus3;691unsigned char log2_diff_max_min_luma_coding_block_size;692unsigned char log2_min_transform_block_size_minus2;693694unsigned char log2_diff_max_min_transform_block_size;695unsigned char max_transform_hierarchy_depth_inter;696unsigned char max_transform_hierarchy_depth_intra;697unsigned char pcm_sample_bit_depth_luma_minus1;698699unsigned char pcm_sample_bit_depth_chroma_minus1;700unsigned char log2_min_pcm_luma_coding_block_size_minus3;701unsigned char log2_diff_max_min_pcm_luma_coding_block_size;702unsigned char num_extra_slice_header_bits;703704unsigned char num_short_term_ref_pic_sets;705unsigned char num_long_term_ref_pic_sps;706unsigned char num_ref_idx_l0_default_active_minus1;707unsigned char num_ref_idx_l1_default_active_minus1;708709signed char pps_cb_qp_offset;710signed char pps_cr_qp_offset;711signed char pps_beta_offset_div2;712signed char pps_tc_offset_div2;713714unsigned char diff_cu_qp_delta_depth;715unsigned char num_tile_columns_minus1;716unsigned char num_tile_rows_minus1;717unsigned char log2_parallel_merge_level_minus2;718719unsigned short column_width_minus1[19];720unsigned short row_height_minus1[21];721722signed char init_qp_minus26;723unsigned char num_delta_pocs_ref_rps_idx;724unsigned char curr_idx;725unsigned char reserved[1];726int curr_poc;727unsigned char ref_pic_list[16];728int poc_list[16];729unsigned char ref_pic_set_st_curr_before[8];730unsigned char ref_pic_set_st_curr_after[8];731unsigned char ref_pic_set_lt_curr[8];732733unsigned char ucScalingListDCCoefSizeID2[6];734unsigned char ucScalingListDCCoefSizeID3[2];735736unsigned char highestTid;737unsigned char isNonRef;738739unsigned char p010_mode;740unsigned char msb_mode;741unsigned char luma_10to8;742unsigned char chroma_10to8;743744unsigned char hevc_reserved[2];745746unsigned char direct_reflist[2][15];747unsigned int st_rps_bits;748} rvcn_dec_message_hevc_t;749750typedef struct rvcn_dec_message_vp9_s {751unsigned int frame_header_flags;752753unsigned char frame_context_idx;754unsigned char reset_frame_context;755756unsigned char curr_pic_idx;757unsigned char interp_filter;758759unsigned char filter_level;760unsigned char sharpness_level;761unsigned char lf_adj_level[8][4][2];762unsigned char base_qindex;763signed char y_dc_delta_q;764signed char uv_ac_delta_q;765signed char uv_dc_delta_q;766767unsigned char log2_tile_cols;768unsigned char log2_tile_rows;769unsigned char tx_mode;770unsigned char reference_mode;771unsigned char chroma_format;772773unsigned char ref_frame_map[8];774775unsigned char frame_refs[3];776unsigned char ref_frame_sign_bias[3];777unsigned char frame_to_show;778unsigned char bit_depth_luma_minus8;779unsigned char bit_depth_chroma_minus8;780781unsigned char p010_mode;782unsigned char msb_mode;783unsigned char luma_10to8;784unsigned char chroma_10to8;785786unsigned int vp9_frame_size;787unsigned int compressed_header_size;788unsigned int uncompressed_header_size;789} rvcn_dec_message_vp9_t;790791typedef enum {792RVCN_DEC_AV1_IDENTITY = 0,793RVCN_DEC_AV1_TRANSLATION = 1,794RVCN_DEC_AV1_ROTZOOM = 2,795RVCN_DEC_AV1_AFFINE = 3,796RVCN_DEC_AV1_HORTRAPEZOID = 4,797RVCN_DEC_AV1_VERTRAPEZOID = 5,798RVCN_DEC_AV1_HOMOGRAPHY = 6,799RVCN_DEC_AV1_TRANS_TYPES = 7,800} rvcn_dec_transformation_type_e;801802typedef struct {803rvcn_dec_transformation_type_e wmtype;804int wmmat[8];805short alpha, beta, gamma, delta;806} rvcn_dec_warped_motion_params_t;807808typedef struct {809unsigned char apply_grain;810unsigned char scaling_points_y[14][2];811unsigned char num_y_points;812unsigned char scaling_points_cb[10][2];813unsigned char num_cb_points;814unsigned char scaling_points_cr[10][2];815unsigned char num_cr_points;816unsigned char scaling_shift;817unsigned char ar_coeff_lag;818signed char ar_coeffs_y[24];819signed char ar_coeffs_cb[25];820signed char ar_coeffs_cr[25];821unsigned char ar_coeff_shift;822unsigned char cb_mult;823unsigned char cb_luma_mult;824unsigned short cb_offset;825unsigned char cr_mult;826unsigned char cr_luma_mult;827unsigned short cr_offset;828unsigned char overlap_flag;829unsigned char clip_to_restricted_range;830unsigned char bit_depth_minus_8;831unsigned char chroma_scaling_from_luma;832unsigned char grain_scale_shift;833unsigned short random_seed;834} rvcn_dec_film_grain_params_t;835836typedef struct rvcn_dec_av1_tile_info_s {837unsigned int offset;838unsigned int size;839} rvcn_dec_av1_tile_info_t;840841typedef struct rvcn_dec_message_av1_s {842unsigned int frame_header_flags;843unsigned int current_frame_id;844unsigned int frame_offset;845846unsigned char profile;847unsigned char is_annexb;848unsigned char frame_type;849unsigned char primary_ref_frame;850unsigned char curr_pic_idx;851852unsigned char sb_size;853unsigned char interp_filter;854unsigned char filter_level[2];855unsigned char filter_level_u;856unsigned char filter_level_v;857unsigned char sharpness_level;858signed char ref_deltas[8];859signed char mode_deltas[2];860unsigned char base_qindex;861signed char y_dc_delta_q;862signed char u_dc_delta_q;863signed char v_dc_delta_q;864signed char u_ac_delta_q;865signed char v_ac_delta_q;866signed char qm_y;867signed char qm_u;868signed char qm_v;869signed char delta_q_res;870signed char delta_lf_res;871872unsigned char tile_cols;873unsigned char tile_rows;874unsigned char tx_mode;875unsigned char reference_mode;876unsigned char chroma_format;877unsigned int tile_size_bytes;878unsigned int context_update_tile_id;879unsigned int tile_col_start_sb[65];880unsigned int tile_row_start_sb[65];881unsigned int max_width;882unsigned int max_height;883unsigned int width;884unsigned int height;885unsigned int superres_upscaled_width;886unsigned char superres_scale_denominator;887unsigned char order_hint_bits;888889unsigned char ref_frame_map[8];890unsigned int ref_frame_offset[8];891unsigned char frame_refs[7];892unsigned char ref_frame_sign_bias[7];893894unsigned char bit_depth_luma_minus8;895unsigned char bit_depth_chroma_minus8;896897int feature_data[8][8];898unsigned char feature_mask[8];899900unsigned char cdef_damping;901unsigned char cdef_bits;902unsigned short cdef_strengths[16];903unsigned short cdef_uv_strengths[16];904unsigned char frame_restoration_type[3];905unsigned char log2_restoration_unit_size_minus5[3];906907unsigned char p010_mode;908unsigned char msb_mode;909unsigned char luma_10to8;910unsigned char chroma_10to8;911unsigned char preskip_segid;912unsigned char last_active_segid;913unsigned char seg_lossless_flag;914unsigned char coded_lossless;915rvcn_dec_film_grain_params_t film_grain;916unsigned int uncompressed_header_size;917rvcn_dec_warped_motion_params_t global_motion[8];918rvcn_dec_av1_tile_info_t tile_info[256];919} rvcn_dec_message_av1_t;920921typedef struct rvcn_dec_feature_index_s {922unsigned int feature_id;923unsigned int offset;924unsigned int size;925unsigned int filled;926} rvcn_dec_feature_index_t;927928typedef struct rvcn_dec_feedback_header_s {929unsigned int header_size;930unsigned int total_size;931unsigned int num_buffers;932unsigned int status_report_feedback_number;933unsigned int status;934unsigned int value;935unsigned int errorBits;936rvcn_dec_feature_index_t index[1];937} rvcn_dec_feedback_header_t;938939typedef struct rvcn_dec_feedback_profiling_s {940unsigned int size;941942unsigned int decodingTime;943unsigned int decodePlusOverhead;944unsigned int masterTimerHits;945unsigned int uvdLBSIREWaitCount;946947unsigned int avgMPCMemLatency;948unsigned int maxMPCMemLatency;949unsigned int uvdMPCLumaHits;950unsigned int uvdMPCLumaHitPend;951unsigned int uvdMPCLumaSearch;952unsigned int uvdMPCChromaHits;953unsigned int uvdMPCChromaHitPend;954unsigned int uvdMPCChromaSearch;955956unsigned int uvdLMIPerfCountLo;957unsigned int uvdLMIPerfCountHi;958unsigned int uvdLMIAvgLatCntrEnvHit;959unsigned int uvdLMILatCntr;960961unsigned int frameCRC0;962unsigned int frameCRC1;963unsigned int frameCRC2;964unsigned int frameCRC3;965966unsigned int uvdLMIPerfMonCtrl;967unsigned int uvdLMILatCtrl;968unsigned int uvdMPCCntl;969unsigned int reserved0[4];970unsigned int decoderID;971unsigned int codec;972973unsigned int dmaHwCrc32Enable;974unsigned int dmaHwCrc32Value;975unsigned int dmaHwCrc32Value2;976} rvcn_dec_feedback_profiling_t;977978typedef struct rvcn_dec_vp9_nmv_ctx_mask_s {979unsigned short classes_mask[2];980unsigned short bits_mask[2];981unsigned char joints_mask;982unsigned char sign_mask[2];983unsigned char class0_mask[2];984unsigned char class0_fp_mask[2];985unsigned char fp_mask[2];986unsigned char class0_hp_mask[2];987unsigned char hp_mask[2];988unsigned char reserve[11];989} rvcn_dec_vp9_nmv_ctx_mask_t;990991typedef struct rvcn_dec_vp9_nmv_component_s {992unsigned char sign;993unsigned char classes[10];994unsigned char class0[1];995unsigned char bits[10];996unsigned char class0_fp[2][3];997unsigned char fp[3];998unsigned char class0_hp;999unsigned char hp;1000} rvcn_dec_vp9_nmv_component_t;10011002typedef struct rvcn_dec_vp9_probs_s {1003rvcn_dec_vp9_nmv_ctx_mask_t nmvc_mask;1004unsigned char coef_probs[4][2][2][6][6][3];1005unsigned char y_mode_prob[4][9];1006unsigned char uv_mode_prob[10][9];1007unsigned char single_ref_prob[5][2];1008unsigned char switchable_interp_prob[4][2];1009unsigned char partition_prob[16][3];1010unsigned char inter_mode_probs[7][3];1011unsigned char mbskip_probs[3];1012unsigned char intra_inter_prob[4];1013unsigned char comp_inter_prob[5];1014unsigned char comp_ref_prob[5];1015unsigned char tx_probs_32x32[2][3];1016unsigned char tx_probs_16x16[2][2];1017unsigned char tx_probs_8x8[2][1];1018unsigned char mv_joints[3];1019rvcn_dec_vp9_nmv_component_t mv_comps[2];1020} rvcn_dec_vp9_probs_t;10211022typedef struct rvcn_dec_vp9_probs_segment_s {1023union {1024rvcn_dec_vp9_probs_t probs;1025unsigned char probs_data[RDECODE_VP9_PROBS_DATA_SIZE];1026};10271028union {1029struct {1030unsigned int feature_data[8];1031unsigned char tree_probs[7];1032unsigned char pred_probs[3];1033unsigned char abs_delta;1034unsigned char feature_mask[8];1035} seg;1036unsigned char segment_data[256];1037};1038} rvcn_dec_vp9_probs_segment_t;10391040typedef struct rvcn_dec_av1_fg_init_buf_s {1041short luma_grain_block[64][96];1042short cb_grain_block[32][48];1043short cr_grain_block[32][48];1044short scaling_lut_y[256];1045short scaling_lut_cb[256];1046short scaling_lut_cr[256];1047unsigned short temp_tile_left_seed[256];1048} rvcn_dec_av1_fg_init_buf_t;10491050typedef struct rvcn_dec_av1_segment_fg_s {1051union {1052struct {1053unsigned char feature_data[128];1054unsigned char feature_mask[8];1055} seg;1056unsigned char segment_data[256];1057};1058rvcn_dec_av1_fg_init_buf_t fg_buf;1059} rvcn_dec_av1_segment_fg_t;10601061struct jpeg_params {1062unsigned bsd_size;1063unsigned dt_pitch;1064unsigned dt_uv_pitch;1065unsigned dt_luma_top_offset;1066unsigned dt_chroma_top_offset;1067bool direct_reg;1068};10691070struct rvcn_dec_dynamic_dpb_t2 {1071struct list_head list;1072uint8_t index;1073struct rvid_buffer dpb;1074};10751076struct radeon_decoder {1077struct pipe_video_codec base;10781079unsigned stream_handle;1080unsigned stream_type;1081unsigned frame_number;1082unsigned db_alignment;1083unsigned dpb_size;10841085struct pipe_screen *screen;1086struct radeon_winsys *ws;1087struct radeon_cmdbuf cs;10881089void *msg;1090uint32_t *fb;1091uint8_t *it;1092uint8_t *probs;1093void *bs_ptr;10941095struct rvid_buffer msg_fb_it_probs_buffers[NUM_BUFFERS];1096struct rvid_buffer bs_buffers[NUM_BUFFERS];1097struct rvid_buffer dpb;1098struct rvid_buffer ctx;1099struct rvid_buffer sessionctx;11001101unsigned bs_size;1102unsigned cur_buffer;1103void *render_pic_list[32];1104bool show_frame;1105unsigned ref_idx;1106bool tmz_ctx;1107struct {1108unsigned data0;1109unsigned data1;1110unsigned cmd;1111unsigned cntl;1112} reg;1113struct jpeg_params jpg;1114enum {1115DPB_MAX_RES = 0,1116DPB_DYNAMIC_TIER_1,1117DPB_DYNAMIC_TIER_21118} dpb_type;11191120struct {1121enum {1122CODEC_8_BITS = 0,1123CODEC_10_BITS1124} bts;1125uint8_t index;1126unsigned ref_size;1127uint8_t ref_list[16];1128} ref_codec;11291130struct list_head dpb_ref_list;1131struct list_head dpb_unref_list;11321133void (*send_cmd)(struct radeon_decoder *dec, struct pipe_video_buffer *target,1134struct pipe_picture_desc *picture);1135};11361137void send_cmd_dec(struct radeon_decoder *dec, struct pipe_video_buffer *target,1138struct pipe_picture_desc *picture);11391140void send_cmd_jpeg(struct radeon_decoder *dec, struct pipe_video_buffer *target,1141struct pipe_picture_desc *picture);11421143struct pipe_video_codec *radeon_create_decoder(struct pipe_context *context,1144const struct pipe_video_codec *templat);11451146#endif114711481149