On Mon, Mar 25, 2013 at 6:11 PM, Martin Andersson <g02ma...@gmail.com> wrote: > Virtual address is used for PIPE_QUERY_SO* queries in > r600_emit_query_begin, but not in r600_emit_query_end. > > This will trigger a GPU fault when one of those queries is > made and virtual address is enabled.
Should also go to the 9.1 branch. Reviewed-by: Alex Deucher <alexander.deuc...@amd.com> > --- > src/gallium/drivers/r600/r600_query.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/src/gallium/drivers/r600/r600_query.c > b/src/gallium/drivers/r600/r600_query.c > index 0335189..782ad26 100644 > --- a/src/gallium/drivers/r600/r600_query.c > +++ b/src/gallium/drivers/r600/r600_query.c > @@ -186,10 +186,11 @@ static void r600_emit_query_end(struct r600_context > *ctx, struct r600_query *que > case PIPE_QUERY_PRIMITIVES_GENERATED: > case PIPE_QUERY_SO_STATISTICS: > case PIPE_QUERY_SO_OVERFLOW_PREDICATE: > + va += query->buffer.results_end + query->result_size/2; > cs->buf[cs->cdw++] = PKT3(PKT3_EVENT_WRITE, 2, 0); > cs->buf[cs->cdw++] = > EVENT_TYPE(EVENT_TYPE_SAMPLE_STREAMOUTSTATS) | EVENT_INDEX(3); > - cs->buf[cs->cdw++] = query->buffer.results_end + > query->result_size/2; > - cs->buf[cs->cdw++] = 0; > + cs->buf[cs->cdw++] = va; > + cs->buf[cs->cdw++] = (va >> 32UL) & 0xFF; > break; > case PIPE_QUERY_TIME_ELAPSED: > va += query->buffer.results_end + query->result_size/2; > -- > 1.8.2 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev