There was an error fetching the commit references. Please try again later.
gl_query_cache: Implement host queries using a deferred cache
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.
Showing
- src/video_core/engines/maxwell_3d.cpp 23 additions, 18 deletionssrc/video_core/engines/maxwell_3d.cpp
- src/video_core/engines/maxwell_3d.h 4 additions, 0 deletionssrc/video_core/engines/maxwell_3d.h
- src/video_core/rasterizer_interface.h 3 additions, 2 deletionssrc/video_core/rasterizer_interface.h
- src/video_core/renderer_opengl/gl_query_cache.cpp 173 additions, 28 deletionssrc/video_core/renderer_opengl/gl_query_cache.cpp
- src/video_core/renderer_opengl/gl_query_cache.h 108 additions, 15 deletionssrc/video_core/renderer_opengl/gl_query_cache.h
- src/video_core/renderer_opengl/gl_rasterizer.cpp 10 additions, 20 deletionssrc/video_core/renderer_opengl/gl_rasterizer.cpp
- src/video_core/renderer_opengl/gl_rasterizer.h 7 additions, 3 deletionssrc/video_core/renderer_opengl/gl_rasterizer.h
Loading
Please register or sign in to comment