Mesa (main): panfrost: Use a macro for checking for a shared bind type
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Fri Jun 17 18:38:57 UTC 2022
Module: Mesa
Branch: main
Commit: b538519bbcfdfadab443c045a09a130e07e17602
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b538519bbcfdfadab443c045a09a130e07e17602
Author: Icecream95 <ixn at disroot.org>
Date: Fri Jun 10 22:51:07 2022 +1200
panfrost: Use a macro for checking for a shared bind type
PAN_BIND_SHARED_MASK is all binding flags that mean that a resource
might be shared and accessible by other contexts.
Don't replace the usage of this pattern in panfrost_should_afbc and
panfrost_should_tile in case a new binding is introduced that not all
layouts can support.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16966>
---
src/gallium/drivers/panfrost/pan_job.c | 4 +---
src/gallium/drivers/panfrost/pan_resource.c | 5 ++---
src/gallium/drivers/panfrost/pan_resource.h | 3 +++
3 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/src/gallium/drivers/panfrost/pan_job.c b/src/gallium/drivers/panfrost/pan_job.c
index ba07c6cfc65..3ba8948387a 100644
--- a/src/gallium/drivers/panfrost/pan_job.c
+++ b/src/gallium/drivers/panfrost/pan_job.c
@@ -762,9 +762,7 @@ panfrost_batch_submit(struct panfrost_context *ctx,
/* Shared depth/stencil resources are not supported, and would
* break this optimisation. */
- assert(!(z_rsrc->base.bind & (PIPE_BIND_SHARED |
- PIPE_BIND_SCANOUT |
- PIPE_BIND_DISPLAY_TARGET)));
+ assert(!(z_rsrc->base.bind & PAN_BIND_SHARED_MASK));
if (batch->clear & PIPE_CLEAR_STENCIL) {
z_rsrc->stencil_value = batch->clear_stencil;
diff --git a/src/gallium/drivers/panfrost/pan_resource.c b/src/gallium/drivers/panfrost/pan_resource.c
index fcf5114eb11..65d8be8127b 100644
--- a/src/gallium/drivers/panfrost/pan_resource.c
+++ b/src/gallium/drivers/panfrost/pan_resource.c
@@ -619,8 +619,7 @@ panfrost_resource_create_with_modifier(struct pipe_screen *screen,
util_range_init(&so->valid_buffer_range);
- if (template->bind & (PIPE_BIND_DISPLAY_TARGET | PIPE_BIND_SCANOUT |
- PIPE_BIND_SHARED)) {
+ if (template->bind & PAN_BIND_SHARED_MASK) {
/* For compatibility with older consumers that may not be
* modifiers aware, treat INVALID as LINEAR for shared
* resources.
@@ -814,7 +813,7 @@ pan_alloc_staging(struct panfrost_context *ctx, struct panfrost_resource *rsc,
}
tmpl.last_level = 0;
tmpl.bind |= PIPE_BIND_LINEAR;
- tmpl.bind &= ~(PIPE_BIND_DISPLAY_TARGET | PIPE_BIND_SCANOUT | PIPE_BIND_SHARED);
+ tmpl.bind &= ~PAN_BIND_SHARED_MASK;
struct pipe_resource *pstaging =
pctx->screen->resource_create(pctx->screen, &tmpl);
diff --git a/src/gallium/drivers/panfrost/pan_resource.h b/src/gallium/drivers/panfrost/pan_resource.h
index 06ced7bd5af..beeb233fccc 100644
--- a/src/gallium/drivers/panfrost/pan_resource.h
+++ b/src/gallium/drivers/panfrost/pan_resource.h
@@ -35,6 +35,9 @@
#define LAYOUT_CONVERT_THRESHOLD 8
#define PAN_MAX_BATCHES 32
+#define PAN_BIND_SHARED_MASK (PIPE_BIND_DISPLAY_TARGET | PIPE_BIND_SCANOUT | \
+ PIPE_BIND_SHARED)
+
struct panfrost_resource {
struct pipe_resource base;
struct {
More information about the mesa-commit
mailing list