From 9f4299d6b24a206b059782df1cd40d233c49dcbb Mon Sep 17 00:00:00 2001 From: Hyunjun Ko Date: Fri, 16 Jun 2023 14:54:21 +0900 Subject: [PATCH] anv: fix to set predicted weight tables correctly. Fixes: 8d519eb5f ("anv: add initial video decode support for h265") Closes: mesa/mesa#9214 Signed-off-by: Hyunjun Ko Reviewed-by: Dave Airlie Part-of: --- src/intel/vulkan/genX_video.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/intel/vulkan/genX_video.c b/src/intel/vulkan/genX_video.c index ed86720cd38..29604c82f93 100644 --- a/src/intel/vulkan/genX_video.c +++ b/src/intel/vulkan/genX_video.c @@ -756,12 +756,12 @@ anv_h265_decode_video(struct anv_cmd_buffer *cmd_buffer, w.ReferencePictureListSelect = 0; for (unsigned i = 0; i < ANV_VIDEO_H265_MAX_NUM_REF_FRAME; i++) { - w.LumaOffsets->DeltaLumaWeightLX = slice_params[s].luma_weight_l0[i]; - w.LumaOffsets->LumaOffsetLX = slice_params[s].luma_offset_l0[i]; - w.ChromaOffsets->DeltaChromaWeightLX0 = slice_params[s].chroma_weight_l0[i][0]; - w.ChromaOffsets->DeltaChromaWeightLX1 = slice_params[s].chroma_weight_l0[i][1]; - w.ChromaOffsets->ChromaOffsetLX0 = slice_params[s].chroma_offset_l0[i][0]; - w.ChromaOffsets->ChromaOffsetLX1 = slice_params[s].chroma_offset_l0[i][1]; + w.LumaOffsets[i].DeltaLumaWeightLX = slice_params[s].delta_luma_weight_l0[i] & 0xff; + w.LumaOffsets[i].LumaOffsetLX = slice_params[s].luma_offset_l0[i] & 0xff; + w.ChromaOffsets[i].DeltaChromaWeightLX0 = slice_params[s].delta_chroma_weight_l0[i][0] & 0xff; + w.ChromaOffsets[i].ChromaOffsetLX0 = slice_params[s].chroma_offset_l0[i][0] & 0xff; + w.ChromaOffsets[i].DeltaChromaWeightLX1 = slice_params[s].delta_chroma_weight_l0[i][1] & 0xff; + w.ChromaOffsets[i].ChromaOffsetLX1 = slice_params[s].chroma_offset_l0[i][1] & 0xff; } } @@ -770,12 +770,12 @@ anv_h265_decode_video(struct anv_cmd_buffer *cmd_buffer, w.ReferencePictureListSelect = 1; for (unsigned i = 0; i < ANV_VIDEO_H265_MAX_NUM_REF_FRAME; i++) { - w.LumaOffsets->DeltaLumaWeightLX = slice_params[s].luma_weight_l1[i]; - w.LumaOffsets->LumaOffsetLX = slice_params[s].luma_offset_l1[i]; - w.ChromaOffsets->DeltaChromaWeightLX0 = slice_params[s].chroma_weight_l1[i][0]; - w.ChromaOffsets->DeltaChromaWeightLX1 = slice_params[s].chroma_weight_l1[i][1]; - w.ChromaOffsets->ChromaOffsetLX0 = slice_params[s].chroma_offset_l1[i][0]; - w.ChromaOffsets->ChromaOffsetLX1 = slice_params[s].chroma_offset_l1[i][1]; + w.LumaOffsets[i].DeltaLumaWeightLX = slice_params[s].delta_luma_weight_l1[i] & 0xff; + w.LumaOffsets[i].LumaOffsetLX = slice_params[s].luma_offset_l1[i] & 0xff; + w.ChromaOffsets[i].DeltaChromaWeightLX0 = slice_params[s].delta_chroma_weight_l1[i][0] & 0xff; + w.ChromaOffsets[i].DeltaChromaWeightLX1 = slice_params[s].delta_chroma_weight_l1[i][1] & 0xff; + w.ChromaOffsets[i].ChromaOffsetLX0 = slice_params[s].chroma_offset_l1[i][0] & 0xff; + w.ChromaOffsets[i].ChromaOffsetLX1 = slice_params[s].chroma_offset_l1[i][1] & 0xff; } } }