iris: try to set the specified tiling when importing a dmabuf
authorJames Xiong <james.xiong@intel.com>
Thu, 4 Apr 2019 15:27:33 +0000 (08:27 -0700)
committerRafael Antognolli <rafael.antognolli@intel.com>
Mon, 4 Nov 2019 17:59:52 +0000 (17:59 +0000)
commitb6d45e7f748e9ff7e198391f5ce5d1253101fedb
treecfa64225b1cea36ed1c35c96e36a7bb4fadcf87a
parentfc7b7480867d6049ca12f87d9b6ab0d9ad55d59f
iris: try to set the specified tiling when importing a dmabuf

When importing a dmabuf with a specified tiling, the dmabuf user
should always try to set the tiling mode because: 1) the exporter
can set tiling AFTER exporting/importing. 2) a dmabuf could be
exported from a kernel driver other than i915, in this case the
dmabuf user and exporter need to set tiling separately.

This patch fixes a problem when running vkmark under weston with
iris on ICL, it crashed to console with the following assert. i965
doesn't have this problem as it always tries to set the specified
tiling mode.

weston: ../src/gallium/drivers/iris/iris_resource.c:990: iris_resource_from_handle: Assertion `res->bo->tiling_mode == isl_tiling_to_i915_tiling(res->surf.tiling)' failed.

Signed-off-by: James Xiong <james.xiong@intel.com>
Reviewed-by: Rafael Antognolli <rafael.antognolli@intel.com>
src/gallium/drivers/iris/iris_bufmgr.c
src/gallium/drivers/iris/iris_bufmgr.h
src/gallium/drivers/iris/iris_resource.c