vkd3d-proton/libs/vkd3d
Hans-Kristian Arntzen be2aafff1a vkd3d: Resolve fence waiters early.
Temporarily abandons the idea to fuse waiters with execution.
For whatever reason, this seemed to cause random flicker in Halo Infinite
with async compute on, and I have failed to figure out exactly why.
By playing around with how commands are fused, the results changed
dramatically, which means I doubt vkd3d-proton was actually at fault
here.

There is some questionable code around UpdateTileMappings in the game
where a COPY queue is used, and it does not seem to synchronize this with other
queues as far as I can tell. It is uncertain at this time if D3D12
requires a tile update to synchronize with *every* queue or just the
queue being submitted to. We assume the latter, as it's the only
behavior that makes sense.

It is possible that submitting waits as they are queued up
affects synchronization between queues in unexpected ways.

When separating out the wait operations, everything appears to work.
It is also simpler code.

Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2022-07-21 21:10:34 +02:00
..
shaders vkd3d: Use index type LUT for DGC. 2022-07-11 15:14:13 +02:00
acceleration_structure.c vkd3d: Implement extended DXR queries. 2022-05-30 20:26:50 +02:00
breadcrumbs.c vkd3d: Trace breadcrumbs for execute indirect templates. 2022-07-11 14:59:00 +02:00
bundle.c vkd3d: Implement ID3D12GraphicsCommandList6. 2021-11-19 14:57:51 +01:00
cache.c cache: Unmap files before attempting to delete. 2022-06-28 12:13:03 +02:00
command.c vkd3d: Resolve fence waiters early. 2022-07-21 21:10:34 +02:00
command_list_profiled.h vkd3d: Implement ID3D12GraphicsCommandList6. 2021-11-19 14:57:51 +01:00
command_list_vkd3d_ext.c vkd3d: Implement new interfaces required for DX12 DLSS support. 2021-08-27 11:37:15 +02:00
debug_ring.c debug: Add concept of implicit instance index to debug ring. 2022-07-11 14:59:00 +02:00
descriptor_debug.c vkd3d: Clean up straggling getenv() calls. 2022-04-25 16:42:41 +02:00
device.c vkd3d: HACK: Don't create host pointer heap for Halo Infinite. 2022-07-21 20:48:56 +02:00
device_profiled.h vkd3d: Implement ID3D12Device9. 2021-11-19 14:57:51 +01:00
device_vkd3d_ext.c vkd3d: Rewrite memory layout for resource descriptors. 2022-02-25 13:04:43 +01:00
heap.c vkd3d: Don't suballocate scratch buffers. 2022-06-23 14:39:22 +02:00
memory.c vkd3d: HACK: Don't create host pointer heap for Halo Infinite. 2022-07-21 20:48:56 +02:00
meson.build vkd3d: Implement ID3D12Resource sharing. 2022-07-21 20:48:56 +02:00
meta.c vkd3d: Add debug ring path for execute indirect template patches. 2022-07-11 14:59:00 +02:00
raytracing_pipeline.c vkd3d: Do a best effort in handling COLLECTION local static samplers. 2022-07-11 14:58:19 +02:00
renderdoc.c vkd3d: Clean up straggling getenv() calls. 2022-04-25 16:42:41 +02:00
resource.c vkd3d: Implement ID3D12Resource sharing. 2022-07-21 20:48:56 +02:00
shared_metadata.c vkd3d: Implement ID3D12Resource sharing. 2022-07-21 20:48:56 +02:00
state.c vkd3d-shader: Normalize root signature compatibility hashing. 2022-07-11 14:34:34 +02:00
swapchain.c vkd3d: Implement ID3D12Resource sharing. 2022-07-21 20:48:56 +02:00
utils.c utils: Report Wine segfault VkResult directly. 2022-05-23 16:58:15 +02:00
va_map.c vkd3d: Fix some const warnings on MSVC. 2021-03-10 10:48:01 +00:00
vkd3d_descriptor_debug.h vkd3d: Fix some type errors after idl update. 2021-11-22 16:25:13 +01:00
vkd3d_main.c vkd3d-shader: Normalize root signature compatibility hashing. 2022-07-11 14:34:34 +02:00
vkd3d_private.h vkd3d: Implement ID3D12Resource sharing. 2022-07-21 20:48:56 +02:00
vkd3d_renderdoc.h renderdoc: Add global capture support. 2021-10-07 15:33:06 +02:00
vkd3d_shaders.h vkd3d: Add debug ring path for execute indirect template patches. 2022-07-11 14:59:00 +02:00
vulkan_procs.h vkd3d: Implement ID3D12Resource sharing. 2022-07-21 20:48:56 +02:00