Mesa (master): panfrost: Support linear depth textures

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Mar 12 02:40:33 UTC 2019


Module: Mesa
Branch: master
Commit: 2df4537f911178e545e78aab9f3b37bb72438c00
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=2df4537f911178e545e78aab9f3b37bb72438c00

Author: Alyssa Rosenzweig <alyssa at rosenzweig.io>
Date:   Fri Mar  8 23:41:12 2019 +0000

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 <alyssa at rosenzweig.io>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso at collabora.com>

---

 src/gallium/drivers/panfrost/pan_context.c | 6 ++++--
 1 file 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);




More information about the mesa-commit mailing list