If state tracker asked us to map resource directly and we can't
do it (because of tiling), return NULL instead of doing full transfer
- state tracker should handle it and fallback to some other method
or repeat transfer without PIPE_TRANSFER_MAP_DIRECTLY.
It greatly improves performance of xorg state tracker on nv50+,
because its fallback (DFS/UTS) is much faster than full transfer.
uint32_t w, h, d, z, layer;
int ret;
+ if (usage & PIPE_TRANSFER_MAP_DIRECTLY)
+ return NULL;
+
if (mt->layout_3d) {
z = box->z;
d = u_minify(res->depth0, level);
uint32_t w, h, d, z, layer;
int ret;
+ if (usage & PIPE_TRANSFER_MAP_DIRECTLY)
+ return NULL;
+
tx = CALLOC_STRUCT(nvc0_transfer);
if (!tx)
return NULL;