summaryrefslogtreecommitdiff
path: root/tests/kms_available_modes_crc.c
diff options
context:
space:
mode:
authorDhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>2019-01-18 00:58:18 -0800
committerDhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>2019-01-18 15:54:27 -0800
commitd4199510374514489b1ab56e3416f53f6c1d6291 (patch)
tree230e975525a25f30dd20b4c2f81cd099be98de09 /tests/kms_available_modes_crc.c
parent1c0790447d6c3827819eafa341aeacd6c076d10e (diff)
tests/kms_modes_available_crc: Fix NV12 failure
The size of the UV plane is not calculated correctly - height is not tile aligned. Make use of the stride and offset values intitialized in the previous patch to calculate plane size. The next step would be to rewrite the test to make use of library functions, but for now this should fix NV12. Cc: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com> Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com> Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Diffstat (limited to 'tests/kms_available_modes_crc.c')
-rw-r--r--tests/kms_available_modes_crc.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/tests/kms_available_modes_crc.c b/tests/kms_available_modes_crc.c
index 3551061a..7ff385f2 100644
--- a/tests/kms_available_modes_crc.c
+++ b/tests/kms_available_modes_crc.c
@@ -197,17 +197,18 @@ static bool fill_in_fb(data_t *data, igt_output_t *output, igt_plane_t *plane,
writesize = data->size;
break;
case BYTES_PP_1:
- memset((void*)data->buf, fillers[i].value, data->size);
+ memset((void *)data->buf, fillers[i].value, data->size);
writesize = data->size;
break;
case NV12:
- memset((void*)data->buf, fillers[i].value&0xff,
- data->size);
+ memset((void *)data->buf, fillers[i].value&0xff,
+ data->fb.offsets[1]);
- memset((void*)(data->buf+data->size),
- (fillers[i].value>>8)&0xff, data->size/2);
+ memset((void *)(data->buf+data->fb.offsets[1]),
+ (fillers[i].value>>8)&0xff,
+ data->size - data->fb.offsets[1]);
- writesize = data->size+data->size/2;
+ writesize = data->size;
break;
case P010:
ptemp_16_buf = (unsigned short*)data->buf;
@@ -302,6 +303,10 @@ static bool setup_fb(data_t *data, igt_output_t *output, igt_plane_t *plane,
data->fb.offsets[1] = data->size;
data->fb.strides[1] = data->fb.strides[0];
gemsize = data->size * 2;
+
+ if (fillers[i].bpp == NV12)
+ data->size += data->fb.strides[1] * ALIGN(h/2, tile_height);
+
num_planes = 2;
}