summaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2019-04-23 17:40:09 -0700
committerKenneth Graunke <[email protected]>2019-04-23 18:59:27 -0700
commit864873dea97bdc084ccca83849e02b8604a37a4f (patch)
tree87f25d6465b47da724002f9d8e8077511b233dc7 /src/gallium
parentd8b296d3ad96cb04ee57234a0b1a6a046e08a1a7 (diff)
iris: Prefer staging blits when destination supports CCS_E.
Otherwise our textures don't get color compression. Thanks to Eero Tamminen for noticing this was missing! Improves performance of GLB27_FillTestC24Z16 on my Apollolake laptop with single channel RAM by 2.3x. Reported-by: Eero Tamminen <[email protected]>
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/drivers/iris/iris_resource.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/gallium/drivers/iris/iris_resource.c b/src/gallium/drivers/iris/iris_resource.c
index 0e9e42feaa0..7013d5e8984 100644
--- a/src/gallium/drivers/iris/iris_resource.c
+++ b/src/gallium/drivers/iris/iris_resource.c
@@ -1443,7 +1443,7 @@ iris_transfer_map(struct pipe_context *ctx,
no_gpu = true;
}
- if (map_would_stall && !no_gpu) {
+ if ((map_would_stall || res->aux.usage == ISL_AUX_USAGE_CCS_E) && !no_gpu) {
/* If we need a synchronous mapping and the resource is busy,
* we copy to/from a linear temporary buffer using the GPU.
*/