r300g: do not track whether occlusion queries have been flushed

The winsys takes care of flushing automatically.
This commit is contained in:
Marek Olšák 2011-02-14 23:33:06 +01:00
parent 89ee0d527c
commit 20112cca26
4 changed files with 5 additions and 18 deletions

View File

@ -268,8 +268,6 @@ struct r300_query {
/* How many results have been written, in dwords. It's incremented
* after end_query and flush. */
unsigned num_results;
/* if we've flushed the query */
boolean flushed;
/* if begin has been emitted */
boolean begin_emitted;

View File

@ -559,7 +559,6 @@ void r300_emit_query_start(struct r300_context *r300, unsigned size, void*state)
OUT_CS_REG(R300_ZB_ZPASS_DATA, 0);
END_CS;
query->begin_emitted = TRUE;
query->flushed = FALSE;
}
static void r300_emit_query_end_frag_pipes(struct r300_context *r300,

View File

@ -36,7 +36,6 @@ static void r300_flush(struct pipe_context* pipe,
struct pipe_fence_handle** fence)
{
struct r300_context *r300 = r300_context(pipe);
struct r300_query *query;
struct r300_atom *atom;
struct r300_fence **rfence = (struct r300_fence**)fence;
@ -76,11 +75,6 @@ static void r300_flush(struct pipe_context* pipe,
r300->rws->cs_flush(r300->cs);
}
/* reset flushed query */
foreach(query, &r300->query_list) {
query->flushed = TRUE;
}
/* Create a new fence. */
if (rfence) {
*rfence = CALLOC_STRUCT(r300_fence);

View File

@ -127,16 +127,12 @@ static boolean r300_get_query_result(struct pipe_context* pipe,
{
struct r300_context* r300 = r300_context(pipe);
struct r300_query *q = r300_query(query);
unsigned flags, i;
unsigned i;
uint32_t temp, *map;
uint64_t *result = (uint64_t*)vresult;
if (!q->flushed)
pipe->flush(pipe, 0, NULL);
flags = PIPE_TRANSFER_READ | (!wait ? PIPE_TRANSFER_DONTBLOCK : 0);
map = r300->rws->buffer_map(q->buf, r300->cs, flags);
map = r300->rws->buffer_map(q->buf, r300->cs,
PIPE_TRANSFER_READ |
(!wait ? PIPE_TRANSFER_DONTBLOCK : 0));
if (!map)
return FALSE;
@ -149,7 +145,7 @@ static boolean r300_get_query_result(struct pipe_context* pipe,
r300->rws->buffer_unmap(q->buf);
*result = temp;
*((uint64_t*)vresult) = temp;
return TRUE;
}