diff options
author | Alex Deucher <[email protected]> | 2009-10-28 15:36:53 -0400 |
---|---|---|
committer | Alex Deucher <[email protected]> | 2009-10-28 15:53:24 -0400 |
commit | 660acd60d00366c97fbe7caf3995a75ce935a19b (patch) | |
tree | 7ed302291c6ded4d913e5f797e56aa608333d94d /src/gallium/state_trackers | |
parent | f3d8d534e6f1d102d71338d58fbaa98c382f1858 (diff) |
r600: add occlusion query support
Based on initial patch from Stephan Schmid <[email protected]>.
Basic idea is to dump the zpass count at the start and end of the query
and subtract to get the total number of visible fragments. HW writes
alternating qwords for up to 4 DBs. On the first pass, we start at
buffer address + 0; on the second pass, we start at buffer address + 8
(bytes). The resulting buffer at the end of the query looks like:
qw[0]: db0 start
qw[1]: db0 end
...
qw[6]: db3 start
qw[7]: db3 end
The MSB of each qword is the valid bit and the lower 63 bits are
the zpass count for that DB.
OQ on RV740 is disabled at the moment as it only seems to report
results for half of its DBs. This needs further investigation.
Signed-off-by: Alex Deucher <[email protected]>
Diffstat (limited to 'src/gallium/state_trackers')
0 files changed, 0 insertions, 0 deletions