diff options
author | Jason Ekstrand <[email protected]> | 2018-01-11 17:33:36 -0800 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2018-01-21 23:07:18 -0800 |
commit | 50485723523d2948a44570ba110f02f726f86a54 (patch) | |
tree | ede5f838aed537a5c5e79fad9db951c8af4e4382 | |
parent | b9e7b29705cb17ef7f88d346db823c9b99810249 (diff) |
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 <[email protected]>
Cc: [email protected]
-rw-r--r-- | src/mesa/drivers/dri/i965/intel_screen.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/mesa/drivers/dri/i965/intel_screen.c b/src/mesa/drivers/dri/i965/intel_screen.c index 9dbda5142e5..a4e34e9f2cf 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; |