diff options
author | Marek Olšák <[email protected]> | 2010-05-26 01:23:07 +0200 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2010-05-26 01:23:11 +0200 |
commit | 2c072c8f72647a3b32e9855f7635b37ba399f5be (patch) | |
tree | 861a0b424ed1e4e17b6ca9f0f0503b8daa8ea161 /src/gallium/drivers/r300/r300_context.h | |
parent | e1c117d87bd1c77c6093a7a77b7994a8313b084e (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.h | 17 |
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 0933d6b833a..82183cfcb8b 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) |