summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlyssa Rosenzweig <[email protected]>2019-03-08 23:41:12 +0000
committerAlyssa Rosenzweig <[email protected]>2019-03-12 02:37:41 +0000
commit2df4537f911178e545e78aab9f3b37bb72438c00 (patch)
tree7cce680e471f66daa58391f9fae551746358f8a9
parent9f25a4e65c025364df0b52cbb3e9aa2e525b1a74 (diff)
panfrost: Support linear depth textures
This combination has not yet been seen "in the wild" in traces, but to support linear depth FBOs, ~bruteforce reveals this bit pattern is necessary. It's not yet clear why the meanings of 0x1 and 0x2 are essentially flipped (tiled vs linear for colour, linear vs some sort of tiled for depth). Signed-off-by: Alyssa Rosenzweig <[email protected]> Reviewed-by: Tomeu Vizoso <[email protected]>
-rw-r--r--src/gallium/drivers/panfrost/pan_context.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/gallium/drivers/panfrost/pan_context.c b/src/gallium/drivers/panfrost/pan_context.c
index 4c02fbbe125..9d89a8978ae 100644
--- a/src/gallium/drivers/panfrost/pan_context.c
+++ b/src/gallium/drivers/panfrost/pan_context.c
@@ -2266,17 +2266,19 @@ panfrost_create_sampler_view(
enum mali_format format = panfrost_find_format(desc);
+ bool is_depth = desc->format == PIPE_FORMAT_Z32_UNORM;
+
unsigned usage2_layout = 0x10;
switch (prsrc->bo->layout) {
case PAN_AFBC:
- usage2_layout |= 0xc;
+ usage2_layout |= 0x8 | 0x4;
break;
case PAN_TILED:
usage2_layout |= 0x1;
break;
case PAN_LINEAR:
- usage2_layout |= 0x2;
+ usage2_layout |= is_depth ? 0x1 : 0x2;
break;
default:
assert(0);