r600g: Use virtual address for PIPE_QUERY_SO* in r600_emit_query_end
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. Note: this is a candidate for the 9.1 branch Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
634fb837ef
commit
92855bcc95
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue