Re: [PATCH] igt/kms_addfb_basic: New subtest to check for fb modifier and tiling mode mismatch

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





Hi,

On 16/10/15 02:10, Vivek Kasireddy wrote:
On 07/10/15 03:35, Vivek Kasireddy wrote:
This new subtest will validate a Y-tiled object's tiling mode
against its associated fb modifier.

Cc: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx>
Signed-off-by: Vivek Kasireddy <vivek.kasireddy@xxxxxxxxx>
---
    tests/kms_addfb_basic.c | 9 +++++++++
    1 file changed, 9 insertions(+)

diff --git a/tests/kms_addfb_basic.c b/tests/kms_addfb_basic.c
index d466e4d..7ca1add 100644
--- a/tests/kms_addfb_basic.c
+++ b/tests/kms_addfb_basic.c
@@ -373,6 +373,15 @@ static void addfb25_ytile(int fd, int gen)
            f.handles[0] = gem_bo;
        }

+    igt_subtest("addfb25-Y-tiled-X-modifier-mismatch") {
+        igt_require(gen >= 9);
+        igt_require_fb_modifiers(fd);
+        gem_set_tiling(fd, gem_bo, I915_TILING_Y, 1024*4);
+
+        f.modifier[0] = LOCAL_I915_FORMAT_MOD_X_TILED;
+        igt_assert(drmIoctl(fd,
LOCAL_DRM_IOCTL_MODE_ADDFB2, &f) < 0 && errno == EINVAL);
+    }
+
        igt_subtest("addfb25-Y-tiled") {
            igt_require_fb_modifiers(fd);


Wasn't the original WARN triggered by Y tiled object and Y fb
modifier?

Creating a new fb using a Y-tiled object and Y/X fb modifier will
not trigger the original WARN. It'll be triggered only if the fb
is going to be pinned -- and flipped. I am not sure how to get
that WARN to be triggered with the existing suite of igt tests.

Ah yes, you would need to attempt display it, not even necessarily
flip it. I am sure there are tests which do that. :) I know from
recent activity kms_rotation_crc for example creates a Y tiled FB
and displays it. So maybe borrow some code to start with from there.

Even better, kms_flip_tiling does the majority of what is needed here
already. Just drop in a subtest which will do set_tiling and that
should be good.

I have realized that I cannot get the the map_and_fenceable WARN to be
triggered with any of the IGT tests. This is because the WARN is
triggered only when pinning/fencing a Y-tiled fb that has a rotated
view (90/270 degree rotation) that none of the IGT tests can do. I
looked at and wrote a subtest in kms_rotation_crc but the WARN was not
triggered because IGT does not support atomic flip/commit yet.
Currently, since it does a SetPlane first, the object has a normal view
and its map_and-fenceable bit is set, however, when the rotation
property is applied, the object though has a rotated view, its
map_and-fenceable bit never gets updated and stays 1 and hence the
warning doesn't get triggered. I am copying the subtest code below for
reference.

It is possible and it looks like you have been on the right track. If you just avoided rendering to the fb (paint_squares) I think it might have worked.

Unfortunately before reading your e-mail thoroughly I rushed and developed my own POC so you will now see a patch series I copied you on.

That triggers the WARN nicely.

But your approach, localized changes to kms_rotation_crc, is probably better. So feel free to refine your test case and we can drop my patch series.

Regards,

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




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux