diff options
author | Dave Airlie <[email protected]> | 2009-10-14 16:53:12 +1000 |
---|---|---|
committer | Dave Airlie <[email protected]> | 2009-10-14 16:53:12 +1000 |
commit | c1bee7bdea470b6b5dcebef9aacc8fe4feca687c (patch) | |
tree | d58eb285c84f7b9510565be37c5df0f742fd679d /src/gallium/drivers/r300/r300_flush.c | |
parent | 210481ae16e966865dcf9f1fd5f5dfabf4dc28bc (diff) |
r300g: fixup arb occulsion query support.
1: add rv530 support
- num z pipes cap
- add proper start/finish query options for rv530
2: convert to use linked list properly.
3: add flushing required check.
4: initial Z top disabling support.
TODO:
make it actually work on my rv530.
Diffstat (limited to 'src/gallium/drivers/r300/r300_flush.c')
-rw-r--r-- | src/gallium/drivers/r300/r300_flush.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/gallium/drivers/r300/r300_flush.c b/src/gallium/drivers/r300/r300_flush.c index 0dff1c6f4fb..a8ab0d72120 100644 --- a/src/gallium/drivers/r300/r300_flush.c +++ b/src/gallium/drivers/r300/r300_flush.c @@ -26,9 +26,10 @@ static void r300_flush(struct pipe_context* pipe, unsigned flags, struct pipe_fence_handle** fence) { - struct r300_context* r300 = r300_context(pipe); - CS_LOCALS(r300); + struct r300_context *r300 = r300_context(pipe); + struct r300_query *query; + CS_LOCALS(r300); /* We probably need to flush Draw, but we may have been called from * within Draw. This feels kludgy, but it might be the best thing. */ if (!r300->draw->flushing) { @@ -41,8 +42,13 @@ static void r300_flush(struct pipe_context* pipe, r300->dirty_state = R300_NEW_KITCHEN_SINK; r300->dirty_hw = 0; } + /* reset flushed query */ + foreach(query, &r300->query_list) { + query->flushed = TRUE; + } } + void r300_init_flush_functions(struct r300_context* r300) { r300->context.flush = r300_flush; |