From: Kenneth Graunke Date: Mon, 4 Mar 2013 19:37:35 +0000 (-0800) Subject: i965: Fix off-by-one in query object result gathering. X-Git-Tag: android-x86-4.4-r1~1032 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=89e5c8e0fa0f7ec6e1dc0d1ee269c164fd1cf3b0;p=android-x86%2Fexternal-mesa.git i965: Fix off-by-one in query object result gathering. If we've written N pairs of values to the buffer, then last_index = N, but the values are 0 .. N-1. Thus, we need to use <, not <=. This worked anyway because we fill the buffer with zeroes, so we just added an extra (0 - 0) to our results. Signed-off-by: Kenneth Graunke Reviewed-by: Eric Anholt --- diff --git a/src/mesa/drivers/dri/i965/brw_queryobj.c b/src/mesa/drivers/dri/i965/brw_queryobj.c index de3be83c8d7..a45435eaf9c 100644 --- a/src/mesa/drivers/dri/i965/brw_queryobj.c +++ b/src/mesa/drivers/dri/i965/brw_queryobj.c @@ -208,7 +208,7 @@ brw_queryobj_get_results(struct gl_context *ctx, * run out of space in the query's BO and allocated a new one. If so, * this function was already called to accumulate the results so far. */ - for (i = 0; i <= query->last_index; i++) { + for (i = 0; i < query->last_index; i++) { query->Base.Result += results[i * 2 + 1] - results[i * 2]; } break; @@ -218,7 +218,7 @@ brw_queryobj_get_results(struct gl_context *ctx, /* If the starting and ending PS_DEPTH_COUNT from any of the batches * differ, then some fragments passed the depth test. */ - for (i = 0; i <= query->last_index; i++) { + for (i = 0; i < query->last_index; i++) { if (results[i * 2 + 1] != results[i * 2]) { query->Base.Result = GL_TRUE; break;