mirror of
https://github.com/elwrcl/intel-hard-graphics.git
synced 2026-10-31 10:58:03 +03:00
add some qm bits
This commit is contained in:
1 parent
f4c05ec0dc
commit
0496c5dbc9
1 file changed
+39
@@ -257,19 +257,58 @@ anv_h264_decode_video(struct anv_cmd_buffer *cmd_buffer,
|
||||
anv_batch_emit(&cmd_buffer->batch, GENX(MFX_QM_STATE), qm) {
|
||||
qm.DWordLength = 16;
|
||||
qm.AVC = AVC_4x4_Intra_MATRIX;
|
||||
for (unsigned m = 0; m < 3; m++)
|
||||
for (unsigned q = 0; q < 16; q++)
|
||||
qm.ForwardQuantizerMatrix[m * 16 + q] = pps->pScalingLists->ScalingList4x4[m][q];
|
||||
}
|
||||
anv_batch_emit(&cmd_buffer->batch, GENX(MFX_QM_STATE), qm) {
|
||||
qm.DWordLength = 16;
|
||||
qm.AVC = AVC_4x4_Inter_MATRIX;
|
||||
for (unsigned m = 0; m < 3; m++)
|
||||
for (unsigned q = 0; q < 16; q++)
|
||||
qm.ForwardQuantizerMatrix[m * 16 + q] = pps->pScalingLists->ScalingList4x4[m + 3][q];
|
||||
}
|
||||
if (pps->flags.transform_8x8_mode_flag) {
|
||||
anv_batch_emit(&cmd_buffer->batch, GENX(MFX_QM_STATE), qm) {
|
||||
qm.DWordLength = 16;
|
||||
qm.AVC = AVC_8x8_Intra_MATRIX;
|
||||
for (unsigned q = 0; q < 64; q++)
|
||||
qm.ForwardQuantizerMatrix[q] = pps->pScalingLists->ScalingList8x8[0][q];
|
||||
}
|
||||
anv_batch_emit(&cmd_buffer->batch, GENX(MFX_QM_STATE), qm) {
|
||||
qm.DWordLength = 16;
|
||||
qm.AVC = AVC_8x8_Inter_MATRIX;
|
||||
for (unsigned q = 0; q < 64; q++)
|
||||
qm.ForwardQuantizerMatrix[q] = pps->pScalingLists->ScalingList8x8[3][q];
|
||||
}
|
||||
}
|
||||
} else if (sps->flags.seq_scaling_matrix_present_flag) {
|
||||
anv_batch_emit(&cmd_buffer->batch, GENX(MFX_QM_STATE), qm) {
|
||||
qm.DWordLength = 16;
|
||||
qm.AVC = AVC_4x4_Intra_MATRIX;
|
||||
for (unsigned m = 0; m < 3; m++)
|
||||
for (unsigned q = 0; q < 16; q++)
|
||||
qm.ForwardQuantizerMatrix[m * 16 + q] = sps->pScalingLists->ScalingList4x4[m][q];
|
||||
}
|
||||
anv_batch_emit(&cmd_buffer->batch, GENX(MFX_QM_STATE), qm) {
|
||||
qm.DWordLength = 16;
|
||||
qm.AVC = AVC_4x4_Inter_MATRIX;
|
||||
for (unsigned m = 0; m < 3; m++)
|
||||
for (unsigned q = 0; q < 16; q++)
|
||||
qm.ForwardQuantizerMatrix[m * 16 + q] = sps->pScalingLists->ScalingList4x4[m + 3][q];
|
||||
}
|
||||
if (pps->flags.transform_8x8_mode_flag) {
|
||||
anv_batch_emit(&cmd_buffer->batch, GENX(MFX_QM_STATE), qm) {
|
||||
qm.DWordLength = 16;
|
||||
qm.AVC = AVC_8x8_Intra_MATRIX;
|
||||
for (unsigned q = 0; q < 64; q++)
|
||||
qm.ForwardQuantizerMatrix[q] = sps->pScalingLists->ScalingList8x8[0][q];
|
||||
}
|
||||
anv_batch_emit(&cmd_buffer->batch, GENX(MFX_QM_STATE), qm) {
|
||||
qm.DWordLength = 16;
|
||||
qm.AVC = AVC_8x8_Inter_MATRIX;
|
||||
for (unsigned q = 0; q < 64; q++)
|
||||
qm.ForwardQuantizerMatrix[q] = sps->pScalingLists->ScalingList8x8[3][q];
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
||||
Reference in new issue
Block a user