frontends/va: Add slice_count to AV1 slice_parameter
Save the number of slice in AV1 slice parameter, so that the underlying driver (such as virgl) can handle the slice parameters better. Signed-off-by: Feng Jiang <jiangfeng@kylinos.cn> Suggested-by: Sil Vilerino <sivileri@microsoft.com> Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com> Reviewed-by: Daniel Almeida <daniel.almeida@collabora.com> Reviewed-by: Sil Vilerino <sivileri@microsoft.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23386>
This commit is contained in:
@@ -392,6 +392,8 @@ void vlVaHandlePictureParameterBufferAV1(vlVaDriver *drv, vlVaContext *context,
|
||||
else
|
||||
vlVaGetReferenceFrame(drv, av1->ref_frame_map[i], &context->desc.av1.ref[i]);
|
||||
}
|
||||
|
||||
context->desc.av1.slice_parameter.slice_count = 0;
|
||||
}
|
||||
|
||||
void vlVaHandleSliceParameterBufferAV1(vlVaContext *context, vlVaBuffer *buf, unsigned num_slices)
|
||||
@@ -409,5 +411,6 @@ void vlVaHandleSliceParameterBufferAV1(vlVaContext *context, vlVaBuffer *buf, un
|
||||
context->desc.av1.slice_parameter.slice_data_row[slice_index] = av1->tile_row;
|
||||
context->desc.av1.slice_parameter.slice_data_col[slice_index] = av1->tile_column;
|
||||
context->desc.av1.slice_parameter.slice_data_anchor_frame_idx[slice_index] = av1->anchor_frame_idx;
|
||||
context->desc.av1.slice_parameter.slice_count = slice_index + 1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1377,6 +1377,7 @@ struct pipe_av1_picture_desc
|
||||
uint16_t slice_data_row[256];
|
||||
uint16_t slice_data_col[256];
|
||||
uint8_t slice_data_anchor_frame_idx[256];
|
||||
uint16_t slice_count;
|
||||
} slice_parameter;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user