Sweden-Number/dlls/wined3d
Jan Sikorski 9a799898a1 wined3d: Avoid waiting for a command buffer to finish executing to read off its queries.
Some games wait for query results on the frame executing the query,
expecting that enough time have passed for it to be available. By
requiring that the entire command buffer is done, we risk stalling the
whole frame if it wasn't flushed along the way. This patch drops this
requirement.

Mainly, we need to ensure that we don't call vkGetQueryPoolResults()
before the reset command is executed, and accidentally retrieve result
from previous usage. Using host query reset doesn't quite solve the
problem, as it might get called too early, if the application decides to
reuse a query without waiting for results. Besides, we want to support
devices where host query reset is not available.

To make it work, when a Vulkan query is no longer needed, we queue it
for resetting at command buffer submission time, and only mark it free
for reuse after this command buffer is finished executing.

Signed-off-by: Jan Sikorski <jsikorski@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2022-02-11 17:13:10 +01:00
..
Makefile.in
adapter_gl.c
adapter_vk.c wined3d: Introduce wined3d_lock_init() and wined3d_lock_cleanup() helpers. 2022-02-11 17:08:22 +01:00
arb_program_shader.c
ati_fragment_shader.c
buffer.c wined3d: Call wined3d_context_unmap_bo_address() when updating a buffer BO. 2022-02-10 18:09:36 +01:00
context.c
context_gl.c wined3d: Always set map_ptr for mapped OpenGL BOs. 2022-02-11 17:08:05 +01:00
context_vk.c wined3d: Avoid waiting for a command buffer to finish executing to read off its queries. 2022-02-11 17:13:10 +01:00
cs.c wined3d: Always submit UPDATE_SUB_RESOURCE ops when uploading if not mapping persistently. 2022-02-11 17:08:27 +01:00
device.c
directx.c
gl_compat.c
glsl_shader.c
nvidia_texture_shader.c
palette.c
query.c wined3d: Avoid waiting for a command buffer to finish executing to read off its queries. 2022-02-11 17:13:10 +01:00
resource.c
sampler.c
shader.c
shader_sm1.c
shader_sm4.c wined3d: Skip non-color outputs in SM4 shader output mapping. 2022-02-09 20:08:27 +01:00
shader_spirv.c
state.c
stateblock.c
surface.c
swapchain.c wined3d: Use StretchBlt() in swapchain_blit_gdi(). 2022-02-11 17:07:48 +01:00
texture.c
utils.c
version.rc
vertexdeclaration.c
view.c
wined3d.spec
wined3d_gl.h
wined3d_main.c
wined3d_private.h wined3d: Avoid waiting for a command buffer to finish executing to read off its queries. 2022-02-11 17:13:10 +01:00
wined3d_shaders.h
wined3d_vk.h