summaryrefslogtreecommitdiff
path: root/tests/kms_ccs.c
diff options
context:
space:
mode:
authorDaniel Stone <daniels@collabora.com>2017-08-08 11:25:53 +0100
committerDaniel Stone <daniels@collabora.com>2017-08-10 10:46:54 +0100
commit5bd2aa785cce6aab893fe6328a60b915667eb1c2 (patch)
tree47dc1c7781507acc2758183701ea6207c5279f48 /tests/kms_ccs.c
parentc129026622accef6f54c0cfb0dc55e930cfa60b5 (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.c29
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);