diff options
author | Daniel Stone <daniels@collabora.com> | 2017-08-08 11:25:53 +0100 |
---|---|---|
committer | Daniel Stone <daniels@collabora.com> | 2017-08-10 10:46:54 +0100 |
commit | 5bd2aa785cce6aab893fe6328a60b915667eb1c2 (patch) | |
tree | 47dc1c7781507acc2758183701ea6207c5279f48 /tests/kms_ccs.c | |
parent | c129026622accef6f54c0cfb0dc55e930cfa60b5 (diff) |
tests/kms_ccs: Convert int/bool to enum
Rather than using TEST_UNCOMPRESSED / TEST_COMPRESSED as alternately
either an int or a bool, change it to a bitfield enum.
This will let us add more parameters later to control framebuffer
generation.
Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Diffstat (limited to 'tests/kms_ccs.c')
-rw-r--r-- | tests/kms_ccs.c | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/tests/kms_ccs.c b/tests/kms_ccs.c index ef952f2b..14d23ac1 100644 --- a/tests/kms_ccs.c +++ b/tests/kms_ccs.c @@ -35,6 +35,10 @@ enum test_flags { TEST_BAD_ROTATION_90 = 1 << 4, }; +enum test_fb_flags { + FB_COMPRESSED = 1 << 0, +}; + typedef struct { int drm_fd; igt_display_t display; @@ -53,7 +57,7 @@ typedef struct { #define RED 0x00ff0000 -static void render_fb(data_t *data, bool compressed, +static void render_fb(data_t *data, enum test_fb_flags fb_flags, int height, unsigned int stride) { struct igt_fb *fb = &data->fb; @@ -67,7 +71,7 @@ static void render_fb(data_t *data, bool compressed, 0, fb->size, PROT_READ | PROT_WRITE); - if (compressed) { + if (fb_flags & FB_COMPRESSED) { /* In the compressed case, we want the top half of the * surface to be uncompressed and the bottom half to be * compressed. @@ -128,7 +132,7 @@ static void render_ccs(data_t *data, uint32_t gem_handle, munmap(ptr, size); } -static void display_fb(data_t *data, int compressed) +static void display_fb(data_t *data, enum test_fb_flags fb_flags) { struct local_drm_mode_fb_cmd2 f = {}; struct igt_fb *fb = &data->fb; @@ -146,7 +150,7 @@ static void display_fb(data_t *data, int compressed) mode = igt_output_get_mode(data->output); - if (compressed) + if (fb_flags & FB_COMPRESSED) modifier = LOCAL_I915_FORMAT_MOD_Y_TILED_CCS; else modifier = LOCAL_I915_FORMAT_MOD_Y_TILED; @@ -167,7 +171,7 @@ static void display_fb(data_t *data, int compressed) f.offsets[0] = 0; size[0] = f.pitches[0] * ALIGN(height, 32); - if (compressed) { + if (fb_flags & FB_COMPRESSED) { /* From the Sky Lake PRM, Vol 12, "Color Control Surface": * * "The compression state of the cache-line pair is @@ -215,9 +219,9 @@ static void display_fb(data_t *data, int compressed) fb->cairo_surface = NULL; fb->domain = 0; - render_fb(data, compressed, f.height, f.pitches[0]); + render_fb(data, fb_flags, f.height, f.pitches[0]); - if (compressed) + if (fb_flags & FB_COMPRESSED) render_ccs(data, f.handles[0], f.offsets[1], size[1], f.height, f.pitches[1]); @@ -238,25 +242,24 @@ static void display_fb(data_t *data, int compressed) igt_debug_wait_for_keypress("ccs"); } -#define TEST_UNCOMPRESSED 0 -#define TEST_COMPRESSED 1 - static void test_output(data_t *data) { igt_display_t *display = &data->display; igt_plane_t *primary; igt_crc_t crc, ref_crc; igt_pipe_crc_t *pipe_crc; + enum test_fb_flags fb_flags = 0; igt_output_set_pipe(data->output, data->pipe); if (data->flags & TEST_CRC) { + pipe_crc = igt_pipe_crc_new(data->drm_fd, data->pipe, INTEL_PIPE_CRC_SOURCE_AUTO); - display_fb(data, TEST_COMPRESSED); + display_fb(data, fb_flags | FB_COMPRESSED); igt_pipe_crc_collect_crc(pipe_crc, &ref_crc); - display_fb(data, TEST_UNCOMPRESSED); + display_fb(data, fb_flags); igt_pipe_crc_collect_crc(pipe_crc, &crc); igt_assert_crc_equal(&crc, &ref_crc); @@ -267,7 +270,7 @@ static void test_output(data_t *data) if (data->flags & TEST_BAD_PIXEL_FORMAT || data->flags & TEST_BAD_ROTATION_90) { - display_fb(data, TEST_COMPRESSED); + display_fb(data, fb_flags | FB_COMPRESSED); } primary = igt_output_get_plane_type(data->output, DRM_PLANE_TYPE_PRIMARY); |