summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;
}