[igt-dev] [PATCH v2 5/7] lib/igt_fb: Fall back from gtt map to coherent map on platforms w/o aperture
Imre Deak
imre.deak at intel.com
Thu Jan 30 18:30:59 UTC 2020
Use a device coherent map instead of GGTT map on platforms w/o an
aperture.
Cc: Juha-Pekka Heikkila <juhapekka.heikkila at gmail.com>
Signed-off-by: Imre Deak <imre.deak at intel.com>
---
lib/igt_fb.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/lib/igt_fb.c b/lib/igt_fb.c
index f8ed8622..613a9706 100644
--- a/lib/igt_fb.c
+++ b/lib/igt_fb.c
@@ -2379,18 +2379,23 @@ static void destroy_cairo_surface__gtt(void *arg)
static void *map_bo(int fd, struct igt_fb *fb)
{
+ bool is_i915 = is_i915_device(fd);
void *ptr;
- if (is_i915_device(fd))
+ if (is_i915)
gem_set_domain(fd, fb->gem_handle,
I915_GEM_DOMAIN_GTT, I915_GEM_DOMAIN_GTT);
if (fb->is_dumb)
ptr = kmstest_dumb_map_buffer(fd, fb->gem_handle, fb->size,
PROT_READ | PROT_WRITE);
- else if (is_i915_device(fd))
+ else if (is_i915 && gem_has_mappable_ggtt(fd))
ptr = gem_mmap__gtt(fd, fb->gem_handle, fb->size,
PROT_READ | PROT_WRITE);
+ else if (is_i915)
+ ptr = gem_mmap__device_coherent(fd, fb->gem_handle, 0,
+ fb->size,
+ PROT_READ | PROT_WRITE);
else if (is_vc4_device(fd))
ptr = igt_vc4_mmap_bo(fd, fb->gem_handle, fb->size,
PROT_READ | PROT_WRITE);
--
2.23.1
More information about the igt-dev
mailing list