OSDN Git Service

tests/amdgpu: fix uvd enc data corruption issue
authorJames Zhu <James.Zhu@amd.com>
Thu, 5 Oct 2017 14:57:42 +0000 (10:57 -0400)
committerLeo Liu <leo.liu@amd.com>
Fri, 6 Oct 2017 13:40:06 +0000 (09:40 -0400)
In uvd encode parameter package, parameters input_pic_luma_pitch and
input_pic_chroma_pitch should be picture width align with hardware alignment.
The hardware alignment is 16 for amdgpu family earlier than AMDGPU_FAMILY_AI,
and 256 for later than and including AMDGPU_FAMILY_AI.

Signed-off-by: James Zhu <James.Zhu@amd.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
tests/amdgpu/uvd_enc_tests.c
tests/amdgpu/uve_ib.h

index 7518103..bbda131 100644 (file)
@@ -272,7 +272,7 @@ static void amdgpu_cs_uvd_enc_create(void)
 static void check_result(struct amdgpu_uvd_enc *enc)
 {
        uint64_t sum;
-       uint32_t s = 26382;
+       uint32_t s = 175602;
        uint32_t *ptr, size;
        int i, j, r;
 
@@ -463,6 +463,8 @@ static void amdgpu_cs_uvd_enc_encode(void)
        ib_cpu[len++] = chroma_offset >> 32;
        ib_cpu[len++] = chroma_offset;
        memcpy((ib_cpu + len), uve_encode_param, sizeof(uve_encode_param));
+       ib_cpu[len] = ALIGN(enc.width, align);
+       ib_cpu[len + 1] = ALIGN(enc.width, align);
        len += sizeof(uve_encode_param) / 4;
 
        memcpy((ib_cpu + len), uve_op_speed_enc_mode, sizeof(uve_op_speed_enc_mode));
index 9abd406..cb72be2 100644 (file)
@@ -297,8 +297,8 @@ static const uint32_t uve_slice_header[] = {
 };
 
 static const uint32_t uve_encode_param[] = {
-       0x000000a0,
-       0x00000080,
+       0x00000000,
+       0x00000000,
        0x00000000,
        0x00000000,
        0xffffffff,