summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2017-12-07 09:41:26 +0000
committerArkadiusz Hiler <arkadiusz.hiler@intel.com>2017-12-19 15:20:12 +0200
commitda0889bfacff106fb3ecb7049a7a21f78b4b301b (patch)
tree6e31c89e7665fa233c4820832bc2022de121c559
parent8b6b95f31785014ccfdeb19de9bd093245176348 (diff)
igt/kms_frontbuffer_tracking: Access via GGTT is not guaranteed to be tracked
As the system may use a partial vma for a GGTT mmap, access via the GGTT mmap is not guaranteed to be tracked by FBC's fence. The rule expressed has been that any access to the frontbuffer should be followed by a fb-dirty ioctl, so always apply and expect the driver to ellide no-ops. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
-rw-r--r--tests/kms_frontbuffer_tracking.c13
1 files changed, 3 insertions, 10 deletions
diff --git a/tests/kms_frontbuffer_tracking.c b/tests/kms_frontbuffer_tracking.c
index c6586c41..a6f5f377 100644
--- a/tests/kms_frontbuffer_tracking.c
+++ b/tests/kms_frontbuffer_tracking.c
@@ -1130,8 +1130,7 @@ static void draw_rect(struct draw_pattern_info *pattern, struct fb_region *fb,
fb->x + rect.x, fb->y + rect.y,
rect.w, rect.h, rect.color);
- if (method == IGT_DRAW_MMAP_WC)
- fb_dirty_ioctl(fb, &rect);
+ fb_dirty_ioctl(fb, &rect);
}
static void draw_rect_igt_fb(struct draw_pattern_info *pattern,
@@ -2135,16 +2134,10 @@ static void multidraw_subtest(const struct test_mode *t)
draw_rect(pattern, target, used_method, r);
- if (used_method == IGT_DRAW_MMAP_WC)
+ if (used_method == IGT_DRAW_MMAP_WC ||
+ used_method == IGT_DRAW_MMAP_GTT)
wc_used = true;
- if (used_method == IGT_DRAW_MMAP_GTT &&
- wc_used) {
- struct rect rect =
- pattern->get_rect(target, r);
- fb_dirty_ioctl(target, &rect);
- }
-
update_wanted_crc(t,
&pattern->crcs[t->format][r]);