diff options
-rw-r--r-- | lib/igt_fb.c | 26 | ||||
-rw-r--r-- | lib/igt_fb.h | 1 |
2 files changed, 27 insertions, 0 deletions
diff --git a/lib/igt_fb.c b/lib/igt_fb.c index c6291e62..fbdfca8a 100644 --- a/lib/igt_fb.c +++ b/lib/igt_fb.c @@ -217,6 +217,32 @@ uint64_t igt_fb_mod_to_tiling(uint64_t modifier) } } +/** + * igt_fb_tiling_to_mod: + * @tiling: DRM framebuffer tiling + * + * This function converts a DRM framebuffer tiling to its corresponding + * modifier constant. + * + * Returns: + * A modifier constant + */ +uint64_t igt_fb_tiling_to_mod(uint64_t tiling) +{ + switch (tiling) { + case I915_TILING_NONE: + return LOCAL_DRM_FORMAT_MOD_NONE; + case I915_TILING_X: + return LOCAL_I915_FORMAT_MOD_X_TILED; + case I915_TILING_Y: + return LOCAL_I915_FORMAT_MOD_Y_TILED; + case I915_TILING_Yf: + return LOCAL_I915_FORMAT_MOD_Yf_TILED; + default: + igt_assert(0); + } +} + /* helpers to create nice-looking framebuffers */ static int create_bo_for_fb(int fd, int width, int height, uint32_t format, uint64_t tiling, unsigned size, unsigned stride, diff --git a/lib/igt_fb.h b/lib/igt_fb.h index df9ad1fc..a193a1e7 100644 --- a/lib/igt_fb.h +++ b/lib/igt_fb.h @@ -132,6 +132,7 @@ int igt_create_bo_with_dimensions(int fd, int width, int height, uint32_t format bool *is_dumb); uint64_t igt_fb_mod_to_tiling(uint64_t modifier); +uint64_t igt_fb_tiling_to_mod(uint64_t tiling); /* cairo-based painting */ cairo_surface_t *igt_get_cairo_surface(int fd, struct igt_fb *fb); |