r300g/swtcl: avoid an infinite loop if an occl. query doesn't return anything
authorMarek Olšák <maraeo@gmail.com>
Thu, 27 May 2010 22:04:05 +0000 (00:04 +0200)
committerMarek Olšák <maraeo@gmail.com>
Fri, 28 May 2010 01:30:11 +0000 (03:30 +0200)
src/gallium/drivers/r300/r300_query.c

index 4ce7114d821ab8318ace6c59450b83c7e8ec0223..97081c4a00f3fc24ac09cb6f4bda58869e76d844 100644 (file)
@@ -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;