Module: Mesa
Branch: main
Commit: 1fe201f7a3488f424ae0b296bee903be1dc65f6a
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=1fe201f7a3488f424ae0b296bee903be1dc65f6a

Author: Rob Clark <[email protected]>
Date:   Tue Oct  3 10:08:52 2023 -0700

panfrost: Add PIPE_CAP_HAS_CONST_BW support

Signed-off-by: Rob Clark <[email protected]>
Reviewed-by: Marek Olšák <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25464>

---

 src/gallium/drivers/panfrost/pan_resource.c | 4 ++++
 src/gallium/drivers/panfrost/pan_screen.c   | 1 +
 2 files changed, 5 insertions(+)

diff --git a/src/gallium/drivers/panfrost/pan_resource.c 
b/src/gallium/drivers/panfrost/pan_resource.c
index 4e114f2ccbf..d653fe6ceb5 100644
--- a/src/gallium/drivers/panfrost/pan_resource.c
+++ b/src/gallium/drivers/panfrost/pan_resource.c
@@ -337,6 +337,10 @@ panfrost_should_afbc(struct panfrost_device *dev,
    if (pres->base.usage == PIPE_USAGE_STREAM)
       return false;
 
+   /* If constant (non-data-dependent) format is requested, don't AFBC: */
+   if (pres->base.bind & PIPE_BIND_CONST_BW)
+      return false;
+
    /* Only a small selection of formats are AFBC'able */
    if (!panfrost_format_supports_afbc(dev, fmt))
       return false;
diff --git a/src/gallium/drivers/panfrost/pan_screen.c 
b/src/gallium/drivers/panfrost/pan_screen.c
index 0286c01e7bb..5517c9891cb 100644
--- a/src/gallium/drivers/panfrost/pan_screen.c
+++ b/src/gallium/drivers/panfrost/pan_screen.c
@@ -123,6 +123,7 @@ panfrost_get_param(struct pipe_screen *screen, enum 
pipe_cap param)
    case PIPE_CAP_FRAMEBUFFER_NO_ATTACHMENT:
    case PIPE_CAP_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION:
    case PIPE_CAP_SHADER_PACK_HALF_FLOAT:
+   case PIPE_CAP_HAS_CONST_BW:
       return 1;
 
    case PIPE_CAP_MAX_RENDER_TARGETS:

Reply via email to