mirror of
https://github.com/elwrcl/intel-hard-graphics.git
synced 2026-10-31 19:08: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) {
|
anv_batch_emit(&cmd_buffer->batch, GENX(MFX_QM_STATE), qm) {
|
||||||
qm.DWordLength = 16;
|
qm.DWordLength = 16;
|
||||||
qm.AVC = AVC_4x4_Intra_MATRIX;
|
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) {
|
anv_batch_emit(&cmd_buffer->batch, GENX(MFX_QM_STATE), qm) {
|
||||||
qm.DWordLength = 16;
|
qm.DWordLength = 16;
|
||||||
qm.AVC = AVC_4x4_Inter_MATRIX;
|
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) {
|
if (pps->flags.transform_8x8_mode_flag) {
|
||||||
anv_batch_emit(&cmd_buffer->batch, GENX(MFX_QM_STATE), qm) {
|
anv_batch_emit(&cmd_buffer->batch, GENX(MFX_QM_STATE), qm) {
|
||||||
qm.DWordLength = 16;
|
qm.DWordLength = 16;
|
||||||
qm.AVC = AVC_8x8_Intra_MATRIX;
|
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) {
|
anv_batch_emit(&cmd_buffer->batch, GENX(MFX_QM_STATE), qm) {
|
||||||
qm.DWordLength = 16;
|
qm.DWordLength = 16;
|
||||||
qm.AVC = AVC_8x8_Inter_MATRIX;
|
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 {
|
} else {
|
||||||
|
|||||||
Reference in new issue
Block a user