etnaviv: slim down resource waiting
[mesa.git] / src / gallium / drivers / etnaviv / etnaviv_resource.h
index a6c6a78269ec6ceec1646313d7347f93e1ac7a97..913316f193c2bd41a57962e8ee7adb1f4ac9b118 100644 (file)
@@ -61,6 +61,7 @@ struct etna_resource {
    struct pipe_resource base;
    struct renderonly_scanout *scanout;
    uint32_t seqno;
+   uint32_t flush_seqno;
 
    /* only lod 0 used for non-texture buffers */
    /* Layout for surface (tiled, multitiled, split tiled, ...) */
@@ -97,6 +98,13 @@ etna_resource_older(struct etna_resource *a, struct etna_resource *b)
    return (int)(a->seqno - b->seqno) < 0;
 }
 
+/* returns TRUE if the resource needs a resolve to itself */
+static inline bool
+etna_resource_needs_flush(struct etna_resource *res)
+{
+   return (int)(res->seqno - res->flush_seqno) > 0;
+}
+
 /* is the resource only used on the sampler? */
 static inline bool
 etna_resource_sampler_only(const struct pipe_resource *pres)
@@ -116,9 +124,6 @@ void
 etna_resource_used(struct etna_context *ctx, struct pipe_resource *prsc,
                    enum etna_resource_status status);
 
-void
-etna_resource_wait(struct pipe_context *ctx, struct etna_resource *rsc);
-
 static inline void
 resource_read(struct etna_context *ctx, struct pipe_resource *prsc)
 {