summaryrefslogtreecommitdiffstats
path: root/src/gallium
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2010-05-28 00:04:05 +0200
committerMarek Olšák <[email protected]>2010-05-28 03:30:11 +0200
commit49244df5a87f0e6fbf49c8bba6bd42e2852fe957 (patch)
treee4bdaba880cc6a8a23e285aba1a51731e2a7326c /src/gallium
parent6a143b84248d9b32b51238291647c7b8c02ab9b4 (diff)
r300g/swtcl: avoid an infinite loop if an occl. query doesn't return anything
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/drivers/r300/r300_query.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/gallium/drivers/r300/r300_query.c b/src/gallium/drivers/r300/r300_query.c
index 4ce7114d821..97081c4a00f 100644
--- a/src/gallium/drivers/r300/r300_query.c
+++ b/src/gallium/drivers/r300/r300_query.c
@@ -146,9 +146,13 @@ static boolean r300_get_query_result(struct pipe_context* pipe,
/* Looks like our results aren't ready yet. */
if (wait) {
fprintf(stderr, "r300: Despite waiting, OQ results haven't "
- "come in yet.\n");
+ "come in yet. This is a driver bug.\n"
+ "r300: Returning bogus results to avoid "
+ "a possible infinite loop...\n");
+ temp = 987654321;
+ } else {
+ temp = ~0U;
}
- temp = ~0U;
break;
}
temp += *map;