diff options
author | Kenneth Graunke <[email protected]> | 2019-05-01 14:34:00 -0700 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2019-05-06 09:50:32 -0700 |
commit | a032a9665f275085c825b54b62128ae90adba1c6 (patch) | |
tree | 066e3347769101f8bb663fd88d241f3fa88fe00c /src/gallium/drivers/iris/iris_screen.c | |
parent | 8139efbbbd2f07cd4d88488ca5c34c2c19ef10d4 (diff) |
iris: Enable PIPE_CAP_SURFACE_REINTERPRET_BLOCKS
This makes CompressedTexSubImage from a PBO source do proper GPU
rendering to upload instead of stalling to map the PBO source on
the CPU (then copying it on the CPU).
Thanks Bas Nieuwenhuizen for pointing out that Vulkan includes this
functionality, and to Jason Ekstrand for writing the code I adapted.
Vulkan only supports a single layer, however, and this code tries to
support multiple layers as long as it's miplevel 0.
Improves performance in Sid Meier's Civilization VI:
Average frame time (ms): -3.67423% +/- 1.46201% (n=5)
99th percentile frame time (ms): -5.09910% +/- 3.87874% (n=5)
Diffstat (limited to 'src/gallium/drivers/iris/iris_screen.c')
-rw-r--r-- | src/gallium/drivers/iris/iris_screen.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/gallium/drivers/iris/iris_screen.c b/src/gallium/drivers/iris/iris_screen.c index 5b321a6f862..30d32b2ed43 100644 --- a/src/gallium/drivers/iris/iris_screen.c +++ b/src/gallium/drivers/iris/iris_screen.c @@ -179,6 +179,7 @@ iris_get_param(struct pipe_screen *pscreen, enum pipe_cap param) case PIPE_CAP_TGSI_FS_FACE_IS_INTEGER_SYSVAL: case PIPE_CAP_COMPUTE_SHADER_DERIVATIVES: case PIPE_CAP_INVALIDATE_BUFFER: + case PIPE_CAP_SURFACE_REINTERPRET_BLOCKS: return true; case PIPE_CAP_CONSERVATIVE_RASTER_INNER_COVERAGE: case PIPE_CAP_TGSI_FS_FBFETCH: |