From 50485723523d2948a44570ba110f02f726f86a54 Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Thu, 11 Jan 2018 17:33:36 -0800 Subject: [PATCH] i965: Set tiling on BOs imported with modifiers We need this to ensure that GTT maps work on buffers we get from Vulkan on the off chance that someone does a readpixels or something. Soon, we will be removing GTT maps from i965 entirely and this can be reverted. None the less, it's needed for stable. Reviewed-by: Kenneth Graunke Cc: mesa-stable@lists.freedesktop.org --- src/mesa/drivers/dri/i965/intel_screen.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/mesa/drivers/dri/i965/intel_screen.c b/src/mesa/drivers/dri/i965/intel_screen.c index 9dbda51..a4e34e9 100644 --- a/src/mesa/drivers/dri/i965/intel_screen.c +++ b/src/mesa/drivers/dri/i965/intel_screen.c @@ -1032,7 +1032,16 @@ intel_create_image_from_fds_common(__DRIscreen *dri_screen, image->planar_format = f; - image->bo = brw_bo_gem_create_from_prime(screen->bufmgr, fds[0]); + if (modifier != DRM_FORMAT_MOD_INVALID) { + const struct isl_drm_modifier_info *mod_info = + isl_drm_modifier_get_info(modifier); + uint32_t tiling = isl_tiling_to_i915_tiling(mod_info->tiling); + image->bo = brw_bo_gem_create_from_prime_tiled(screen->bufmgr, fds[0], + tiling, strides[0]); + } else { + image->bo = brw_bo_gem_create_from_prime(screen->bufmgr, fds[0]); + } + if (image->bo == NULL) { free(image); return NULL; -- 2.7.4