summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIlia Mirkin <[email protected]>2019-01-01 15:06:34 -0500
committerIlia Mirkin <[email protected]>2019-01-01 15:11:14 -0500
commit8f98ff362c1e967b2997682f0b1b694a6b1bed98 (patch)
treef59885990b0741893669b6d1636330e2e7ab28b5
parent8c93ef5de98a90a93434d351c769f3c06f206397 (diff)
nv30: disable rendering to 3D textures
There's no way to tell the 3D engine about swizzling on such textures. While rendering to NPOT ones may be possible, there's no great way to expose that in gallium, nor would there be any practical benefit. Fixes the non-compressed-format "copyteximage 3D" failures. Something odd going on with the compressed formats. Signed-off-by: Ilia Mirkin <[email protected]>
-rw-r--r--src/gallium/drivers/nouveau/nv30/nv30_screen.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/gallium/drivers/nouveau/nv30/nv30_screen.c b/src/gallium/drivers/nouveau/nv30/nv30_screen.c
index d7563f4a60e..2b69a8f6968 100644
--- a/src/gallium/drivers/nouveau/nv30/nv30_screen.c
+++ b/src/gallium/drivers/nouveau/nv30/nv30_screen.c
@@ -435,6 +435,12 @@ nv30_screen_is_format_supported(struct pipe_screen *pscreen,
if (MAX2(1, sample_count) != MAX2(1, storage_sample_count))
return false;
+ /* No way to render to a swizzled 3d texture. We don't necessarily know if
+ * it's swizzled or not here, but we have to assume anyways.
+ */
+ if (target == PIPE_TEXTURE_3D && (bindings & PIPE_BIND_RENDER_TARGET))
+ return false;
+
/* shared is always supported */
bindings &= ~PIPE_BIND_SHARED;