[igt-dev] [RFC 3/5] tests/kms_available_modes_crc: Add cases for 64bit formats
Maarten Lankhorst
maarten.lankhorst at linux.intel.com
Mon Mar 4 08:17:16 UTC 2019
Op 03-03-2019 om 02:39 schreef Kevin Strasser:
> This test iterates through all supported formats, add cases for new 64 bit
> formats so it continues passing.
>
> Signed-off-by: Kevin Strasser <kevin.strasser at intel.com>
> ---
> tests/kms_available_modes_crc.c | 19 ++++++++++++++++++-
> 1 file changed, 18 insertions(+), 1 deletion(-)
>
> diff --git a/tests/kms_available_modes_crc.c b/tests/kms_available_modes_crc.c
> index 7ff385f..fd20f28 100644
> --- a/tests/kms_available_modes_crc.c
> +++ b/tests/kms_available_modes_crc.c
> @@ -124,10 +124,11 @@ static const struct {
> enum { BYTES_PP_1=1,
> BYTES_PP_2=2,
> BYTES_PP_4=4,
> + BYTES_PP_8=8,
> NV12,
> P010,
> SKIP4 } bpp;
> - uint32_t value;
> + uint64_t value;
> } fillers[] = {
> { DRM_FORMAT_C8, 0, BYTES_PP_1, 0xff},
> { DRM_FORMAT_RGB565, 0, BYTES_PP_2, 0xffff},
> @@ -146,6 +147,11 @@ static const struct {
> { DRM_FORMAT_XRGB2101010, 0, BYTES_PP_4, 0xffffffff},
> { DRM_FORMAT_XBGR2101010, 0, BYTES_PP_4, 0xffffffff},
>
> + { DRM_FORMAT_XRGB16161616F, 0, BYTES_PP_8, 0x3c003c003c003c00},
> + { DRM_FORMAT_XBGR16161616F, 0, BYTES_PP_8, 0x3c003c003c003c00},
> + { DRM_FORMAT_ARGB16161616F, 0, BYTES_PP_8, 0x3c003c003c003c00},
> + { DRM_FORMAT_ABGR16161616F, 0, BYTES_PP_8, 0x3c003c003c003c00},
> +
> { DRM_FORMAT_YUYV, 0, BYTES_PP_4, 0x80eb80eb},
> { DRM_FORMAT_YVYU, 0, BYTES_PP_4, 0x80eb80eb},
> { DRM_FORMAT_VYUY, 0, BYTES_PP_4, 0xeb80eb80},
> @@ -177,6 +183,7 @@ static bool fill_in_fb(data_t *data, igt_output_t *output, igt_plane_t *plane,
> signed i, c, writesize;
> unsigned short* ptemp_16_buf;
> unsigned int* ptemp_32_buf;
> + unsigned long int* ptemp_64_buf;
>
> for( i = 0; fillers[i].fourcc != 0; i++ ) {
> if( fillers[i].fourcc == format )
> @@ -184,6 +191,12 @@ static bool fill_in_fb(data_t *data, igt_output_t *output, igt_plane_t *plane,
> }
>
> switch (fillers[i].bpp) {
> + case BYTES_PP_8:
> + ptemp_64_buf = (unsigned long int*)data->buf;
Use uint64_t ? Otherwise looks good.
> + for (c = 0; c < data->size/8; c++)
> + ptemp_64_buf[c] = fillers[i].value;
> + writesize = data->size;
> + break;
> case BYTES_PP_4:
> ptemp_32_buf = (unsigned int*)data->buf;
> for (c = 0; c < data->size/4; c++)
> @@ -291,6 +304,10 @@ static bool setup_fb(data_t *data, igt_output_t *output, igt_plane_t *plane,
> case BYTES_PP_4:
> bpp = 32;
> break;
> +
> + case BYTES_PP_8:
> + bpp = 64;
> + break;
> }
>
> igt_get_fb_tile_size(data->gfx_fd, tiling, bpp,
More information about the igt-dev
mailing list