summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/panfrost/pan_context.h
diff options
context:
space:
mode:
authorAlyssa Rosenzweig <[email protected]>2019-03-12 03:32:17 +0000
committerAlyssa Rosenzweig <[email protected]>2019-03-14 22:47:11 +0000
commit9dd84db7a5d7ae74f7fca835ae51fa6a88313d09 (patch)
tree1c077d4d8e8de71a4e7191a8cb3c2b9a7ef31f50 /src/gallium/drivers/panfrost/pan_context.h
parent4d1a356a570dfcec1dbde6790bcb9a3e7598c53e (diff)
panfrost: Break out fragment to SFBD/MFBD files
This substantially cleans up the corresponding logic at the expense of a bit of code duplication; nevertheless, it's a net win since otherwise incompatible hardware code is mixed confusingly. Signed-off-by: Alyssa Rosenzweig <[email protected]>
Diffstat (limited to 'src/gallium/drivers/panfrost/pan_context.h')
-rw-r--r--src/gallium/drivers/panfrost/pan_context.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/gallium/drivers/panfrost/pan_context.h b/src/gallium/drivers/panfrost/pan_context.h
index 091d9988698..a304d83e4fe 100644
--- a/src/gallium/drivers/panfrost/pan_context.h
+++ b/src/gallium/drivers/panfrost/pan_context.h
@@ -59,6 +59,12 @@ struct prim_convert_context;
#define PAN_DIRTY_SAMPLERS (1 << 8)
#define PAN_DIRTY_TEXTURES (1 << 9)
+#define SET_BIT(lval, bit, cond) \
+ if (cond) \
+ lval |= (bit); \
+ else \
+ lval &= ~(bit);
+
struct panfrost_constant_buffer {
bool dirty;
size_t size;
@@ -361,6 +367,21 @@ panfrost_flush(
struct pipe_fence_handle **fence,
unsigned flags);
+bool
+panfrost_is_scanout(struct panfrost_context *ctx);
+
+mali_ptr
+panfrost_sfbd_fragment(struct panfrost_context *ctx);
+
+mali_ptr
+panfrost_mfbd_fragment(struct panfrost_context *ctx);
+
+struct bifrost_framebuffer
+panfrost_emit_mfbd(struct panfrost_context *ctx);
+
+struct mali_single_framebuffer
+panfrost_emit_sfbd(struct panfrost_context *ctx);
+
mali_ptr
panfrost_fragment_job(struct panfrost_context *ctx);