Update index.md

This commit is contained in:
Matías Locatti 2023-09-09 18:46:40 -03:00 committed by GitHub
parent 5343a6ada8
commit 8d51583d90
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -60,14 +60,14 @@ As soon as you start a game, the game begins making queries to get GPU counters.
Normally, the results are obtained by the Switch's GPU immediately after counting is done--when the rendering is done.
But games like `SUPER MARIO ODYSSEY` which use occlusion culling make a _lot_ of queries.
{{< imgs
"./occ.png| Turn the camera around, and the whole city magically disappears (SUPER MARIO ODYSSEY)"
>}}
So, if we tried to run all those queries and sync the results on the host (user's) GPU in the same way, it would stall the GPU heavily — as the GPU would be forced to synchronize with the CPU after drawing each scene element to write back the counters.
To prevent this from happening, Blinkhawk synchronises memory whenever the game requests the GPU to wait for commands to finish rendering. This allows for efficient batching, and for GPU commands which occur after the wait to utilize the counter values.
{{< imgs
"./occ.png| Turn the camera around, and the whole city magically disappears (SUPER MARIO ODYSSEY)"
>}}
Second, in the guest (Switch's) GPU, counters can be reset at any time, or not at all.
But this behaviour is not exposed in graphics APIs such as OpenGL and Vulkan.
Instead, these APIs have queries that only count a smaller section such as a single draw or multiple draws.