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>
This commit is contained in:
parent
cd04679a08
commit
b538519bbc
|
@ -762,9 +762,7 @@ panfrost_batch_submit(struct panfrost_context *ctx,
|
||||||
|
|
||||||
/* Shared depth/stencil resources are not supported, and would
|
/* Shared depth/stencil resources are not supported, and would
|
||||||
* break this optimisation. */
|
* break this optimisation. */
|
||||||
assert(!(z_rsrc->base.bind & (PIPE_BIND_SHARED |
|
assert(!(z_rsrc->base.bind & PAN_BIND_SHARED_MASK));
|
||||||
PIPE_BIND_SCANOUT |
|
|
||||||
PIPE_BIND_DISPLAY_TARGET)));
|
|
||||||
|
|
||||||
if (batch->clear & PIPE_CLEAR_STENCIL) {
|
if (batch->clear & PIPE_CLEAR_STENCIL) {
|
||||||
z_rsrc->stencil_value = batch->clear_stencil;
|
z_rsrc->stencil_value = batch->clear_stencil;
|
||||||
|
|
|
@ -619,8 +619,7 @@ panfrost_resource_create_with_modifier(struct pipe_screen *screen,
|
||||||
|
|
||||||
util_range_init(&so->valid_buffer_range);
|
util_range_init(&so->valid_buffer_range);
|
||||||
|
|
||||||
if (template->bind & (PIPE_BIND_DISPLAY_TARGET | PIPE_BIND_SCANOUT |
|
if (template->bind & PAN_BIND_SHARED_MASK) {
|
||||||
PIPE_BIND_SHARED)) {
|
|
||||||
/* For compatibility with older consumers that may not be
|
/* For compatibility with older consumers that may not be
|
||||||
* modifiers aware, treat INVALID as LINEAR for shared
|
* modifiers aware, treat INVALID as LINEAR for shared
|
||||||
* resources.
|
* resources.
|
||||||
|
@ -814,7 +813,7 @@ pan_alloc_staging(struct panfrost_context *ctx, struct panfrost_resource *rsc,
|
||||||
}
|
}
|
||||||
tmpl.last_level = 0;
|
tmpl.last_level = 0;
|
||||||
tmpl.bind |= PIPE_BIND_LINEAR;
|
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 =
|
struct pipe_resource *pstaging =
|
||||||
pctx->screen->resource_create(pctx->screen, &tmpl);
|
pctx->screen->resource_create(pctx->screen, &tmpl);
|
||||||
|
|
|
@ -35,6 +35,9 @@
|
||||||
#define LAYOUT_CONVERT_THRESHOLD 8
|
#define LAYOUT_CONVERT_THRESHOLD 8
|
||||||
#define PAN_MAX_BATCHES 32
|
#define PAN_MAX_BATCHES 32
|
||||||
|
|
||||||
|
#define PAN_BIND_SHARED_MASK (PIPE_BIND_DISPLAY_TARGET | PIPE_BIND_SCANOUT | \
|
||||||
|
PIPE_BIND_SHARED)
|
||||||
|
|
||||||
struct panfrost_resource {
|
struct panfrost_resource {
|
||||||
struct pipe_resource base;
|
struct pipe_resource base;
|
||||||
struct {
|
struct {
|
||||||
|
|
Loading…
Reference in New Issue