The interesting thing is that if we don't do this, we still get a
Y tiled framebuffer, but there won't be a fence around it, which makes
the GTT mmaps less interesting. Is this a Kernel bug?

Signed-off-by: Paulo Zanoni <paulo.r.zan...@intel.com>
---
 lib/igt_fb.c | 39 ++++++++++++++++++++-------------------
 1 file changed, 20 insertions(+), 19 deletions(-)

diff --git a/lib/igt_fb.c b/lib/igt_fb.c
index 5f23136..efdd793 100644
--- a/lib/igt_fb.c
+++ b/lib/igt_fb.c
@@ -73,6 +73,22 @@ static struct format_desc_struct {
 #define for_each_format(f)     \
        for (f = format_desc; f - format_desc < ARRAY_SIZE(format_desc); f++)
 
+static unsigned int fb_mod_to_obj_tiling(uint64_t fb_mod)
+{
+       switch (fb_mod) {
+       case LOCAL_DRM_FORMAT_MOD_NONE:
+               return I915_TILING_NONE;
+       case LOCAL_I915_FORMAT_MOD_X_TILED:
+               return I915_TILING_X;
+       case LOCAL_I915_FORMAT_MOD_Y_TILED:
+               return I915_TILING_Y;
+       case LOCAL_I915_FORMAT_MOD_Yf_TILED:
+               return I915_TILING_Yf;
+       default:
+               igt_assert(0);
+       }
+}
+
 static void igt_get_fb_tile_size(int fd, uint64_t tiling, int fb_bpp,
                                 unsigned *width_ret, unsigned *height_ret)
 {
@@ -191,9 +207,10 @@ static int create_bo_for_fb(int fd, int width, int height, 
int bpp,
 
        gem_handle = gem_create(fd, bo_size);
 
-       if (tiling == LOCAL_I915_FORMAT_MOD_X_TILED)
-               ret = __gem_set_tiling(fd, gem_handle, I915_TILING_X,
-                                      bo_stride);
+       if (tiling == LOCAL_I915_FORMAT_MOD_X_TILED ||
+           tiling == LOCAL_I915_FORMAT_MOD_Y_TILED)
+               ret = __gem_set_tiling(fd, gem_handle,
+                                     fb_mod_to_obj_tiling(tiling), bo_stride);
 
        *stride_ret = bo_stride;
        *size_ret = bo_size;
@@ -862,22 +879,6 @@ struct fb_blit_upload {
        } linear;
 };
 
-static unsigned int fb_mod_to_obj_tiling(uint64_t fb_mod)
-{
-       switch (fb_mod) {
-       case LOCAL_DRM_FORMAT_MOD_NONE:
-               return I915_TILING_NONE;
-       case LOCAL_I915_FORMAT_MOD_X_TILED:
-               return I915_TILING_X;
-       case LOCAL_I915_FORMAT_MOD_Y_TILED:
-               return I915_TILING_Y;
-       case LOCAL_I915_FORMAT_MOD_Yf_TILED:
-               return I915_TILING_Yf;
-       default:
-               igt_assert(0);
-       }
-}
-
 static void destroy_cairo_surface__blit(void *arg)
 {
        struct fb_blit_upload *blit = arg;
-- 
2.7.0.rc3

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to