summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/r300/r300_context.h
diff options
context:
space:
mode:
authorMarek Olšák <maraeo@gmail.com>2010-05-26 01:23:07 +0200
committerMarek Olšák <maraeo@gmail.com>2010-05-26 01:23:11 +0200
commit2c072c8f72647a3b32e9855f7635b37ba399f5be (patch)
tree861a0b424ed1e4e17b6ca9f0f0503b8daa8ea161 /src/gallium/drivers/r300/r300_context.h
parente1c117d87bd1c77c6093a7a77b7994a8313b084e (diff)
r300g: implement fake but compliant fences
Diffstat (limited to 'src/gallium/drivers/r300/r300_context.h')
-rw-r--r--src/gallium/drivers/r300/r300_context.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/gallium/drivers/r300/r300_context.h b/src/gallium/drivers/r300/r300_context.h
index 0933d6b833..82183cfcb8 100644
--- a/src/gallium/drivers/r300/r300_context.h
+++ b/src/gallium/drivers/r300/r300_context.h
@@ -252,6 +252,22 @@ struct r300_query {
struct r300_query* next;
};
+/* Fence object.
+ *
+ * This is a fake fence. Instead of syncing with the fence, we sync
+ * with the context, which is inefficient but compliant.
+ *
+ * This is not a subclass of pipe_fence_handle because pipe_fence_handle is
+ * never actually fully defined. So, rather than have it as a member, and do
+ * subclass-style casting, we treat pipe_query as an opaque, and just
+ * trust that our state tracker does not ever mess up query objects.
+ */
+struct r300_fence {
+ struct pipe_reference reference;
+ struct r300_context *ctx;
+ boolean signalled;
+};
+
struct r300_texture {
/* Parent class */
struct u_resource b;
@@ -474,6 +490,7 @@ void r300_init_render_functions(struct r300_context *r300);
void r300_init_state_functions(struct r300_context* r300);
void r300_init_resource_functions(struct r300_context* r300);
+void r300_finish(struct r300_context *r300);
void r500_dump_rs_block(struct r300_rs_block *rs);
static INLINE boolean CTX_DBG_ON(struct r300_context * ctx, unsigned flags)