summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_opengl/gl_query_cache.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* query_cache: Address feedbackReinUsesLisp2020-02-141-0/+2
|
* vk_query_cache: Implement generic query cache on VulkanReinUsesLisp2020-02-141-8/+3
|
* query_cache: Abstract OpenGL implementationReinUsesLisp2020-02-141-99/+23
| | | | | | Abstract the current OpenGL implementation into the VideoCommon namespace and reimplement it on top of that. Doing this avoids repeating code and logic in the Vulkan implementation.
* gl_query_cache: Optimize query cacheReinUsesLisp2020-02-141-19/+42
| | | | Use a custom cache instead of relying on a ranged cache.
* gl_query_cache: Implement host queries using a deferred cacheReinUsesLisp2020-02-141-15/+108
| | | | | | | | | | | | | | Instead of waiting immediately for executed commands, defer the query until the guest CPU reads it. This way we get closer to what the guest program is doing. To archive this we have to build a dependency queue, because host APIs (like OpenGL and Vulkan) use ranged queries instead of counters like NVN. Waiting for queries implicitly uses fences and this requires a command being queued, otherwise the driver will lock waiting until a timeout. To fix this when there are no commands queued, we explicitly call glFlush.
* maxwell_3d: Slow implementation of passed samples (query 21)ReinUsesLisp2020-02-141-0/+41
Implements GL_SAMPLES_PASSED by waiting immediately for queries.