mesa/src
Kenneth Graunke ab49063f44 iris: Only use SET/GET_TILING when exporting/importing BOs
In the past, we tracked bo->tiling_mode and bo->stride, and used
GEM_{GET,SET}_TILING on all buffers we allocated.  This made more sense
in the old days (long before iris even existed) when we used GTT maps to
detile resources.  However, that support is now gone, and we never used
it in iris anyway.  We don't need to do this in most cases anymore.

We are trying to deprecate these kernel APIs.  They have many issues.
One is having a global tiling mode for a buffer when userspace may
want to suballocate multiple resources with different tiling modes
from the same object.  Another is...what if processes want to interpret
the data differently, and hot-swap the tiling mode out from under
another process?  Another is the fundamental race conditions.  There
are many reasons not to use these APIs.

Unfortunately, there is still one case where it's used: when importing
and exporting DMABUFs, we have to communicate the tiling somehow.  The
right way to do that is using modifiers, but those didn't always exist,
and aren't always enabled (maybe aren't even commonly enabled).  So we
use GET/SET_TILING as a poor-man's IPC mechanism of sorts.

This patch stops calling those APIs in general but continues doing so
for imported/exported objects when we don't have modifiers.

We eliminate iris_bo_alloc_tiled entirely.  There is now only one!

One small behavioral change snuck in: iris_memobj_create_from_handle
now aligns the virtual address to 64K rather than 1B when modifiers
aren't present.  This should be harmless, and lets us delete a whole
bunch of code.

Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11169>
2021-06-07 10:35:25 -07:00
..
amd aco/scheduler: Move cursor handling state to dedicated interfaces 2021-06-07 12:09:39 +02:00
android_stub android: add some more stub functions for cross compilation 2021-03-25 06:06:16 +00:00
asahi agx: Handle load_back_face_agx 2021-06-05 20:38:22 +00:00
broadcom v3dv: fix incorrect render area setup 2021-06-07 11:25:22 +00:00
compiler nir: Add nir_intrinsic_load_back_face_agx 2021-06-05 20:38:22 +00:00
drm-shim drm-shim: fix compile with glibc >= 2.33 2021-04-20 05:49:29 +00:00
egl meson: egl: Do not build platform_drm for Android 2021-06-07 16:04:15 +00:00
etnaviv etnaviv: tell the truth if alpha-test is supported 2021-04-08 19:25:26 +00:00
freedreno freedreno/regs: split old/not used phy registers to separate DB 2021-06-05 19:20:50 +00:00
gallium iris: Only use SET/GET_TILING when exporting/importing BOs 2021-06-07 10:35:25 -07:00
gbm gbm: list to stderr all the missing extension 2021-05-24 16:17:47 +00:00
getopt
glx glx: create DRI screen for display GPU incase of prime 2021-06-03 09:12:32 +00:00
gtest
hgl
imgui
intel intel/fs/ra: Fix payload node setup for SIMD16 on Gen4-5 2021-06-07 16:52:19 +00:00
loader loader: allocate VRAM in display GPU in case of prime 2021-06-03 09:12:32 +00:00
mapi util: Add a helper macro for defining initial-exec variables. 2021-06-02 03:10:49 +00:00
mesa st/pbo: use correct type for images and textures 2021-06-07 12:13:32 +00:00
microsoft microsoft/compiler: Maintain sorting of resource type in the context 2021-04-29 23:55:02 +00:00
nouveau
panfrost panfrost: Elucidate thread group split field 2021-06-01 19:10:28 +00:00
tool pps: Intel pps driver 2021-05-18 14:28:48 +00:00
util util/ra: Use the conflicting neighbor to skip unavailable registers. 2021-06-04 19:08:57 +00:00
virtio venus: unify VkNativeBufferANDROID and AHardwareBuffer image create info 2021-06-05 22:50:23 +00:00
vulkan vulkan/util: add vk_default_allocator 2021-06-03 08:13:26 +00:00
meson.build freedreno: Add freedreno pps driver 2021-05-10 15:34:07 +00:00