summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/panfrost/pan_context.h
diff options
context:
space:
mode:
authorTomeu Vizoso <[email protected]>2019-03-08 10:27:07 +0100
committerAlyssa Rosenzweig <[email protected]>2019-03-10 19:09:23 +0000
commit756f7b99895404bc7d7ce0cfcd84044cc21a799f (patch)
tree10eb58e22224f67c6c904aa7243404e6aada1fe3 /src/gallium/drivers/panfrost/pan_context.h
parentd4dc79df72e05346b4dd40d19e346ada9e4af98c (diff)
panfrost: Add backend targeting the DRM driver
This backend interacts with the new DRM driver for Midgard GPUs which is currently in development. When using this backend, Panfrost has roughly on-par functionality as when using the non-DRM driver from Arm. Alyssa Rosenzweig: To do so, we implement additional routines for runtime GPU version detection and fencing. We cleanup some duplicate code interfering with the new driver. We fix a long-standing memory leak which is aggravated on the new driver. Finally, we implement BO import/export in a way compatible with the new driver. These changes are squashed to preserve bisectability given the hard-to-track ABI shifts in the nondrm module Signed-off-by: Tomeu Vizoso <[email protected]> Reviewed-by: Alyssa Rosenzweig <[email protected]>
Diffstat (limited to 'src/gallium/drivers/panfrost/pan_context.h')
-rw-r--r--src/gallium/drivers/panfrost/pan_context.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/gallium/drivers/panfrost/pan_context.h b/src/gallium/drivers/panfrost/pan_context.h
index b1a0a09146d..091d9988698 100644
--- a/src/gallium/drivers/panfrost/pan_context.h
+++ b/src/gallium/drivers/panfrost/pan_context.h
@@ -74,6 +74,11 @@ struct panfrost_query {
struct panfrost_transfer transfer;
};
+struct panfrost_fence {
+ struct pipe_reference reference;
+ int fd;
+};
+
#define PANFROST_MAX_TRANSIENT_ENTRIES 64
struct panfrost_transient_pool {
@@ -208,6 +213,18 @@ struct panfrost_context {
struct pipe_blend_color blend_color;
struct pipe_depth_stencil_alpha_state *depth_stencil;
struct pipe_stencil_ref stencil_ref;
+
+ /* True for t6XX, false for t8xx. */
+ bool is_t6xx;
+
+ /* If set, we'll require the use of single render-target framebuffer
+ * descriptors (SFBD), for older hardware -- specifically, <T760 hardware, If
+ * false, we'll use the MFBD no matter what. New hardware -does- retain support
+ * for SFBD, and in theory we could flip between them on a per-RT basis, but
+ * there's no real advantage to doing so */
+ bool require_sfbd;
+
+ uint32_t out_sync;
};
/* Corresponds to the CSO */