video: variant: update buffer calculation in iris2 variant
Update the buffer sizes for h264 codec in IRIS2 variant to align with updated buffer calculation for IRIS3. Change-Id: Ic211cdc88bb173f790ac11dad68ad248ed4a3f34 Signed-off-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
这个提交包含在:
@@ -371,7 +371,7 @@ typedef HFI_U32 HFI_BOOL;
|
||||
{ \
|
||||
HFI_U32 _height = HFI_ALIGN(frame_height, \
|
||||
BUFFER_ALIGNMENT_32_BYTES); \
|
||||
_size = MIN((((_height + 15) >> 4) * 3 * 4), H264D_MAX_SLICE) *\
|
||||
_size = MIN((((_height + 15) >> 4) * 48), H264D_MAX_SLICE) *\
|
||||
SIZE_H264D_BSE_CMD_PER_BUF; \
|
||||
} while (0)
|
||||
|
||||
@@ -380,7 +380,7 @@ typedef HFI_U32 HFI_BOOL;
|
||||
{ \
|
||||
HFI_U32 _height = HFI_ALIGN(frame_height, \
|
||||
BUFFER_ALIGNMENT_32_BYTES); \
|
||||
_size = MIN((((_height + 15) >> 4) * 3 * 4), H264D_MAX_SLICE) * \
|
||||
_size = MIN((((_height + 15) >> 4) * 48), H264D_MAX_SLICE) * \
|
||||
SIZE_H264D_VPP_CMD_PER_BUF; \
|
||||
if (_size > VPP_CMD_MAX_SIZE) { _size = VPP_CMD_MAX_SIZE; } \
|
||||
} while (0)
|
||||
@@ -512,9 +512,15 @@ typedef HFI_U32 HFI_BOOL;
|
||||
#define NUM_SLIST_BUF_H264 (256 + 32)
|
||||
#define SIZE_SLIST_BUF_H264 (512)
|
||||
#define SIZE_SEI_USERDATA (4096)
|
||||
#define HFI_BUFFER_PERSIST_H264D(_size) \
|
||||
_size = HFI_ALIGN((SIZE_SLIST_BUF_H264 * NUM_SLIST_BUF_H264 + \
|
||||
NUM_HW_PIC_BUF * SIZE_SEI_USERDATA), VENUS_DMA_ALIGNMENT)
|
||||
#define H264_NUM_FRM_INFO (66)
|
||||
#define H264_DISPLAY_BUF_SIZE (3328)
|
||||
#define SIZE_DOLBY_RPU_METADATA (41 * 1024)
|
||||
#define HFI_BUFFER_PERSIST_H264D(_size, rpu_enabled) \
|
||||
(_size = HFI_ALIGN((SIZE_SLIST_BUF_H264 * NUM_SLIST_BUF_H264 + \
|
||||
H264_DISPLAY_BUF_SIZE * H264_NUM_FRM_INFO + \
|
||||
NUM_HW_PIC_BUF * SIZE_SEI_USERDATA + \
|
||||
(rpu_enabled) * NUM_HW_PIC_BUF * SIZE_DOLBY_RPU_METADATA), \
|
||||
VENUS_DMA_ALIGNMENT))
|
||||
|
||||
#define LCU_MAX_SIZE_PELS 64
|
||||
#define LCU_MIN_SIZE_PELS 16
|
||||
@@ -712,10 +718,14 @@ typedef HFI_U32 HFI_BOOL;
|
||||
#define H265_NUM_TILE_COL 32
|
||||
#define H265_NUM_TILE_ROW 128
|
||||
#define H265_NUM_TILE (H265_NUM_TILE_ROW * H265_NUM_TILE_COL + 1)
|
||||
#define HFI_BUFFER_PERSIST_H265D(_size) \
|
||||
_size = HFI_ALIGN((SIZE_SLIST_BUF_H265 * NUM_SLIST_BUF_H265 + \
|
||||
H265_NUM_TILE * sizeof(HFI_U32) + NUM_HW_PIC_BUF * SIZE_SEI_USERDATA),\
|
||||
VENUS_DMA_ALIGNMENT)
|
||||
#define H265_NUM_FRM_INFO (48)
|
||||
#define H265_DISPLAY_BUF_SIZE (3072)
|
||||
#define HFI_BUFFER_PERSIST_H265D(_size, rpu_enabled) \
|
||||
(_size = HFI_ALIGN((SIZE_SLIST_BUF_H265 * NUM_SLIST_BUF_H265 + \
|
||||
H265_NUM_FRM_INFO * H265_DISPLAY_BUF_SIZE + \
|
||||
H265_NUM_TILE * sizeof(HFI_U32) + NUM_HW_PIC_BUF * SIZE_SEI_USERDATA + \
|
||||
(rpu_enabled) * NUM_HW_PIC_BUF * SIZE_DOLBY_RPU_METADATA),\
|
||||
VENUS_DMA_ALIGNMENT))
|
||||
|
||||
#define SIZE_VPXD_LB_FE_LEFT_CTRL(frame_width, frame_height) \
|
||||
MAX(((frame_height + 15) >> 4) * \
|
||||
@@ -827,6 +837,7 @@ typedef HFI_U32 HFI_BOOL;
|
||||
#define VP9_NUM_FRAME_INFO_BUF 32
|
||||
#define VP9_NUM_PROBABILITY_TABLE_BUF (VP9_NUM_FRAME_INFO_BUF + 4)
|
||||
#define VP9_PROB_TABLE_SIZE (3840)
|
||||
#define VP9_FRAME_INFO_BUF_SIZE (6144)
|
||||
|
||||
#define VP9_UDC_HEADER_BUF_SIZE (3 * 128)
|
||||
#define MAX_SUPERFRAME_HEADER_LEN (34)
|
||||
@@ -839,7 +850,8 @@ typedef HFI_U32 HFI_BOOL;
|
||||
VENUS_DMA_ALIGNMENT) + HFI_ALIGN(VP9_UDC_HEADER_BUF_SIZE, \
|
||||
VENUS_DMA_ALIGNMENT) + HFI_ALIGN(VP9_NUM_FRAME_INFO_BUF * \
|
||||
CCE_TILE_OFFSET_SIZE, VENUS_DMA_ALIGNMENT) + \
|
||||
HDR10_HIST_EXTRADATA_SIZE
|
||||
HFI_ALIGN(VP9_NUM_FRAME_INFO_BUF * VP9_FRAME_INFO_BUF_SIZE, \
|
||||
VENUS_DMA_ALIGNMENT) + HDR10_HIST_EXTRADATA_SIZE
|
||||
|
||||
#define HFI_BUFFER_LINE_MP2D(_size, frame_width, frame_height, \
|
||||
_yuv_bufcount_min, is_opb, num_vpp_pipes) \
|
||||
|
@@ -182,16 +182,20 @@ static u32 msm_vidc_decoder_line_size_iris2(struct msm_vidc_inst *inst)
|
||||
static u32 msm_vidc_decoder_persist_size_iris2(struct msm_vidc_inst *inst)
|
||||
{
|
||||
u32 size = 0;
|
||||
u32 rpu_enabled = 0;
|
||||
|
||||
if (!inst) {
|
||||
d_vpr_e("%s: invalid params\n", __func__);
|
||||
return size;
|
||||
}
|
||||
|
||||
if (inst->capabilities->cap[META_DOLBY_RPU].value)
|
||||
rpu_enabled = 1;
|
||||
|
||||
if (inst->codec == MSM_VIDC_H264)
|
||||
HFI_BUFFER_PERSIST_H264D(size);
|
||||
HFI_BUFFER_PERSIST_H264D(size, rpu_enabled);
|
||||
else if (inst->codec == MSM_VIDC_HEVC || inst->codec == MSM_VIDC_HEIC)
|
||||
HFI_BUFFER_PERSIST_H265D(size);
|
||||
HFI_BUFFER_PERSIST_H265D(size, rpu_enabled);
|
||||
else if (inst->codec == MSM_VIDC_VP9)
|
||||
HFI_BUFFER_PERSIST_VP9D(size);
|
||||
|
||||
|
在新工单中引用
屏蔽一个用户