diff options
author | Tomeu Vizoso <[email protected]> | 2019-03-08 10:27:07 +0100 |
---|---|---|
committer | Alyssa Rosenzweig <[email protected]> | 2019-03-10 19:09:23 +0000 |
commit | 756f7b99895404bc7d7ce0cfcd84044cc21a799f (patch) | |
tree | 10eb58e22224f67c6c904aa7243404e6aada1fe3 /src/gallium/drivers/panfrost/pan_context.h | |
parent | d4dc79df72e05346b4dd40d19e346ada9e4af98c (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.h | 17 |
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 */ |