Hans-Kristian Arntzen
28c8a595fa
vkd3d: Pass down shader quirks for Necromunda.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-06-17 16:42:14 +02:00
Hans-Kristian Arntzen
9207d4f019
vkd3d: Ignore BlendEnable if write mask is 0.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-06-17 16:42:14 +02:00
Hans-Kristian Arntzen
5c971f216e
vkd3d: Invalidate binding state on query resolve.
...
Fixes random broken AO in Necromunda on RADV.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-06-17 15:59:05 +02:00
Philip Rebohle
b97a012787
vkd3d: Enable tiled resources tier 3.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2021-06-14 15:53:33 +02:00
Hans-Kristian Arntzen
42fb018d85
vkd3d: Fix leak of command pools on device destruction.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-06-11 15:17:45 +02:00
Hans-Kristian Arntzen
d7843fa012
vkd3d: Fix potential deadlock in debug ring.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-06-11 11:04:38 +02:00
Hans-Kristian Arntzen
58854b0a9c
vkd3d: Fix potential deadlock in descriptor QA checks.
...
If we destroy device right after creating it, we risk a deadlock.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-06-11 11:04:38 +02:00
Hans-Kristian Arntzen
76a8914d6b
vkd3d: Add validation error workaround.
...
Our internal copy shaders are fine, but we get benign errors about
sample count being wrong since we alias descriptors.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-06-10 14:19:04 +02:00
Hans-Kristian Arntzen
abe0995e88
vkd3d: Use correct allocation size for memory block.
...
We cannot use the memory requirement output, since we will zero-clear
memory with a size that might be larger than the VkBuffer size.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-06-10 14:16:01 +02:00
Hans-Kristian Arntzen
b922292852
vkd3d: Fix view object leak when creating fallback UAV clear view.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-06-10 13:50:54 +02:00
rochaudhari
1699743c37
vkd3d: Enable binary import and image view handle extensions
...
Signed-off-by: Roshan Chaudhari <rochaudhari@nvidia.com>
Reviewed-by: Liam Middlebrook <lmiddlebrook@nvidia.com>
2021-06-10 11:26:34 +02:00
Hans-Kristian Arntzen
9983a1720f
vkd3d: Splat null descriptors to all sets.
...
Some games end up writing the wrong descriptor type when using null
descriptors, and to be robust against that, we have to clear out
all descriptors when creating null descriptors.
If we copy a null descriptor, we will also have to copy from all sets.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-06-07 13:21:31 +02:00
Hans-Kristian Arntzen
969776c1f8
vkd3d: Ignore NULL descriptor ClearUAV.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-06-07 13:21:31 +02:00
Hans-Kristian Arntzen
c7c17d05ed
vkd3d: Fix descriptor QA checks for CBV_AS_SSBO.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-06-07 13:21:06 +02:00
Hans-Kristian Arntzen
ec5b4ccecf
vkd3d: Ensure that swapchain is eventually recreated.
...
Latch SUBOPTIMAL state.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-06-02 19:46:05 +02:00
Joshua Ashton
efa0eccc59
vkd3d: Low latency presentation and acquire semaphores
...
In cases where acquire image is blocking, we should call that after
presentation to avoid latency when the app calls present.
This avoids weird inverse frame cadences with Mesa WSI right now,
as acquiring an image is always a blocking call until it is complete.
In cases when we aren't blocking, this kicks off the acquisition so
it can be waited upon by the next present blit pass.
Use another set of semaphores to wait for the image acquisition on the
GPU.
In the non-blocking vkAcquireNextImageKHR case, this means that a
potential bubble of time between waiting on the fence and submitting
the blit + presentation is eliminated.
Runaway presentation in this setup is avoided by frame latency objects
and normal frame latency which is always 3 according to documentation.
Be careful about handling SUBOPTIMAL. Semaphores will be signaled, but
we might want to tear down the swapchain. In these cases, we need to
wait for the semaphore to be signaled first, which can only be done by
submitting a wait, since QueueWaitIdle or DeviceWaitIdle don't cover
WSI.
Signed-off-by: Joshua Ashton <joshua@froggi.es>
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
Co-authored-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-06-02 19:46:05 +02:00
Joshua Ashton
92ed98ccea
vkd3d: Handle frame latency without WAITABLE_OBJECT
...
Documentation says that this should always be 3 without WAITABLE_OBJECT
unlike in D3D11 where it will use the DXGI device's frame latency.
This stops runaway presentations in the non-blocking acquire image case
with the new semaphore setup.
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-06-02 19:46:05 +02:00
Hans-Kristian Arntzen
6f5f55c84a
vkd3d: Avoid oldSwapchain.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-06-02 19:46:05 +02:00
Hans-Kristian Arntzen
fa471962dc
vkd3d: Mask clear color in ClearUAVUint.
...
Fixes test TODOs. Apparently Vulkan drivers can saturate here, which
caused the TODO to appear, at least on AMD Windows.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-05-27 15:34:53 +02:00
Hans-Kristian Arntzen
3c7f188863
vkd3d: Nuke code paths for !nullDescriptor.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-05-27 10:39:22 +02:00
Hans-Kristian Arntzen
7bf93b844d
vkd3d: Require VK_EXT_robustness2.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-05-27 10:39:22 +02:00
Hans-Kristian Arntzen
a256a9266e
vkd3d: Rewrite descriptor QA.
...
Adds support for GPU-assisted validation of descriptor usage in the
CBV_SRV_UAV heap.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-05-26 17:26:01 +02:00
Hans-Kristian Arntzen
5e67d30883
vkd3d: Add config option for descriptor QA.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-05-26 17:26:01 +02:00
Hans-Kristian Arntzen
96a84e2633
vkd3d: Fix build with DESCRIPTOR_QA.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-05-26 17:26:01 +02:00
Joshua Ashton
925a930d1e
vkd3d: Fix missing trace arg in SetPipelineStackSize
...
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-05-20 11:36:21 +02:00
Hans-Kristian Arntzen
9d405f0366
vkd3d: Don't try to use fallback SRV aux heap.
...
DXR requires buffer_device_address, so it's meaningless to attempt a
fallback.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-05-13 08:25:10 +01:00
David McCloskey
1744896142
vkd3d: Fix for freeing memory created with aligned_malloc
...
Signed-off-by: David McCloskey <davmcclo@gmail.com>
2021-05-07 06:42:12 +01:00
David McCloskey
217ffc27d2
vkd3d: Type error fix for d3d12_device_get_query_pool.
...
Signed-off-by: David McCloskey <davmcclo@gmail.com>
2021-05-07 06:41:59 +01:00
Hans-Kristian Arntzen
43bf0ed8c1
vkd3d: Ensure SAMPLED | COLOR_ATTACHMENT for R8_TYPELESS.
...
Needed for stencil -> color copies potentially.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-05-05 00:11:10 +02:00
Hans-Kristian Arntzen
4f0872152a
meta: Add fs_copy_uint path.
...
For stencil -> color copies.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-05-05 00:11:10 +02:00
Hans-Kristian Arntzen
ef5ad082a0
vkd3d: More precise logging for fallback copy fixmes.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-05-05 00:11:10 +02:00
Hans-Kristian Arntzen
0e93af9700
vkd3d: Handle multiple planes in subresource conversion for copies.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-05-05 00:11:10 +02:00
Georg Lehmann
a411256c7f
vkd3d: Enable and require shaderDrawParameters.
...
Signed-off-by: Georg Lehmann <dadschoorse@gmail.com>
2021-04-29 06:48:37 +01:00
Georg Lehmann
b858f8a478
vkd3d: Don't error out if vkGetPhysicalDeviceFragmentShadingRatesKHR isn't found.
...
Signed-off-by: Georg Lehmann <dadschoorse@gmail.com>
2021-04-24 18:23:46 +01:00
Hans-Kristian Arntzen
be1b941e06
vkd3d: Workaround buggy NV driver in sparse update.
...
test_update_tile_mappings fails if we don't do this.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-04-21 16:29:05 +02:00
Joshua Ashton
911a202bd1
vkd3d: Bump SONAME version to 3.0.0
...
We made breaking ABI changes.
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-04-20 18:25:41 +02:00
Joshua Ashton
a3ad7cae90
vkd3d-shader: Remove type/next from interface structures
...
This was never really used for anything useful.
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-04-20 18:25:41 +02:00
Joshua Ashton
220e1146ee
vkd3d-shader: Make vkd3d_shader_transform_feedback_info a member
...
Moves it into vkd3d_shader_interface_info, this doesn't need to be
a pNext.
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-04-20 18:25:41 +02:00
Joshua Ashton
3e4a8b1504
vkd3d: Remove type/next from vkd3d device/instance structures
...
There's really no reason to overcomplicate adding optional extensions this way.
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-04-20 18:25:41 +02:00
Joshua Ashton
bd988f2b74
vkd3d: Remove vkd3d_optional_device_extensions_info
...
Roll this into vkd3d_device_create_info, no need for this to be a pNext thing.
Additionally, fix some memory leaks on device creation failure.
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-04-20 18:25:41 +02:00
Joshua Ashton
59148c1932
vkd3d: Remove vkd3d_optional_instance_extensions_info
...
Roll this into vkd3d_instance_create_info, no need for this to be a pNext thing.
Additionally, fix some memory leaks on instance creation failure.
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-04-20 18:25:41 +02:00
Philip Rebohle
f06f94bfb4
vkd3d: Enable multi_queue by default.
...
And replace option with a single_queue flag to do the opposite.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2021-04-19 16:40:49 +02:00
Hans-Kristian Arntzen
c7eb6fdf61
vkd3d: Add some tracing to help narrow down compiler crashes.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-04-15 16:24:05 +02:00
Hans-Kristian Arntzen
744497274c
vkd3d-shader: Verify that we compile expected shader stage.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-04-15 16:24:05 +02:00
Hans-Kristian Arntzen
8f17fdd1fa
vkd3d: Don't leak pipeline cache if we fail compile.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-04-15 16:24:05 +02:00
Philip Rebohle
62cbf3d78a
vkd3d: Remove unused unsafe_impl_from_ID3D12CommandAllocator.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2021-04-14 16:24:55 +02:00
Philip Rebohle
4f9ca6c3df
vkd3d: Create bundles and bundle allocators as necessary.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2021-04-14 16:24:55 +02:00
Philip Rebohle
1bbbabcb94
vkd3d: Implement ExecuteBundle.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2021-04-14 16:24:55 +02:00
Philip Rebohle
728ce6c370
vkd3d: Validate command list type in ExecuteCommandLists.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2021-04-14 16:24:55 +02:00
Philip Rebohle
1990270bbb
vkd3d: Implement CreateCommandList on top of CreateCommandList1.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2021-04-14 16:24:55 +02:00
Philip Rebohle
2ca62ecd12
vkd3d: Add bundle allocator and command list implementation.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2021-04-14 16:24:55 +02:00
Joshua Ashton
2860b0a548
vkd3d: Enable force_tgsm_barriers for F1 2020
...
Signed-off-by: Joshua Ashton <joshua@froggi.es>
Closes : #611
2021-04-12 16:29:57 +02:00
Joshua Ashton
043fd304f8
vkd3d-shader: Add force_tgsm_barriers config flag
...
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-04-12 16:29:57 +02:00
Joshua Ashton
7cfe17d2f5
vkd3d-shader: Passthrough vkd3d_config_flags
...
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-04-12 16:29:57 +02:00
Joshua Ashton
41df41305e
include: Move vkd3d_config_flags to public header
...
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-04-12 16:29:57 +02:00
Joshua Ashton
5978f5958e
vkd3d: Expose TIER_2 Variable Rate Shading
...
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-04-12 13:22:01 +02:00
Joshua Ashton
9fb624a429
vkd3d: Implement RSSetShadingRateImage
...
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-04-12 13:22:01 +02:00
Joshua Ashton
5d17f71441
vkd3d: Handle usage and implicit views for VRS capable resources
...
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-04-12 13:22:01 +02:00
Joshua Ashton
135c7332e4
vkd3d: Implement D3D12_RESOURCE_STATE_SHADING_RATE_SOURCE
...
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-04-12 13:22:01 +02:00
Joshua Ashton
601357c7c5
vkd3d: Implement a static pipeline variant system
...
Needed so we can switch between having a VRS and non-VRS attachment on the fly.
Extensible enough for this to work for other things down the line also.
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-04-12 13:22:01 +02:00
Philip Rebohle
4e777b9182
vkd3d: Use depth attachment when depth bounds test is enabled.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2021-04-12 11:23:51 +02:00
Hans-Kristian Arntzen
7dc2a5cad7
vkd3d: Enable VK_KHR_sampler_mirror_clamp_to_edge.
...
CP77 requires it now.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-04-07 21:57:50 +02:00
Philip Rebohle
2f1b23ece6
vkd3d: Enable conservative rasterization tier 3.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2021-03-25 18:00:59 +01:00
Philip Rebohle
698279ec90
vkd3d: Enable conservative rasterization state as requested.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2021-03-25 18:00:59 +01:00
Philip Rebohle
8a61128152
vkd3d: Enable VK_EXT_conservative_rasterization if available.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2021-03-25 18:00:59 +01:00
Philip Rebohle
fdf4df18a4
vkd3d: Add Feature Level 12_2 detection.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2021-03-25 18:00:59 +01:00
Hans-Kristian Arntzen
2f60a3bf66
vkd3d: Fix broken debug_vk_memory_{property,heap}_flags.
...
C is fun, yo. Returned data from dead stack variable, also triggered
overflow in some cases.
Uncalled in release mode, but can crash debug builds.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-03-25 17:58:18 +01:00
Joshua Ashton
fe28436c34
vkd3d: Refactor vkd3d_render_pass_key to use flags
...
We're going to need more state in this key for VRS TIER_2 and we need to keep this aligned.
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-03-24 15:20:10 +01:00
Joshua Ashton
65b13f6cd6
vkd3d: Use VK_KHR_create_renderpass2
...
We need this before implementing TIER_2 variable rate shading.
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-03-24 15:20:10 +01:00
Hans-Kristian Arntzen
5197edb03b
vkd3d: Enable 16-bit storage features.
...
Don't need extension, since VK_KHR_16bit_storage is core in Vulkan 1.1.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-03-23 18:35:35 +01:00
Hans-Kristian Arntzen
4afd4d355b
vkd3d: Handle more DXR cases.
...
Found in Ghostrunner, still not working ...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-03-23 18:35:35 +01:00
Hans-Kristian Arntzen
5abc4b9af2
vkd3d: Add all relevant RT stages to push constant layout.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-03-23 18:35:35 +01:00
Hans-Kristian Arntzen
9fa668867e
vkd3d: Hold private reference to collection objects.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-03-23 18:35:35 +01:00
Hans-Kristian Arntzen
bd16d1a88d
vkd3d: Support RTPSO object collections.
...
This is quite complicated, but we can use VK_KHR_pipeline_library
to implement this functionality.
2021-03-23 18:35:35 +01:00
Joshua Ashton
bc1b18dc02
vkd3d: Add some missing flags in debug_vk helpers
...
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-03-22 14:29:45 +01:00
Joshua Ashton
2fa97aa0fb
vkd3d: Move API versions to public header
...
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-03-22 14:29:45 +01:00
Joshua Ashton
258173a0a7
vkd3d: Fix return value when WRITE_WATCH is forbidden
...
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-03-18 16:10:05 +01:00
Joshua Ashton
aa12817ccf
vkd3d: Implement D3D12_HEAP_TYPE_WRITE_WATCH
...
Needed for D3D12 APITrace
Closes : #373
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-03-18 14:41:46 +01:00
Hans-Kristian Arntzen
52a9c85bf2
vkd3d: Implement ClearState.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-03-18 10:50:21 +01:00
Joshua Ashton
4e31f5d54d
vkd3d: Align d3d12_rtv_desc to D3D12_DESC_ALIGNMENT
...
Otherwise we can do an alligned_malloc with a non-aligned size as the descriptor size is 48 for a d3d12_rtv_desc otherwise.
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-03-16 21:45:28 +01:00
Joshua Ashton
5b5293ec93
vkd3d: Fix out of range in UpdateTileMappings
...
Previously this incremented and indexed before the loop checked this.
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2021-03-16 21:45:13 +01:00
Philip Rebohle
dadace33b1
vkd3d: Fix potential hang in d3d12_command_queue_Release.
...
This can happen if the fence thread starts with a delay and
the queue gets destroyed shortly after being created.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2021-03-16 21:42:39 +01:00
Hans-Kristian Arntzen
34a09967d5
vkd3d: Prefer compute queues for TRANSFER.
...
TRANSFER + CONCURRENT is generally death for compression.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-03-16 21:41:37 +01:00
Hans-Kristian Arntzen
95fe4b61a6
vkd3d: Do not drop pending signals when signaling fence on CPU.
...
There isn't much of a reason why we should have to do this. The original
implementation was more of a hack if anything.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-03-16 21:41:37 +01:00
Hans-Kristian Arntzen
e7672c3233
vkd3d: Refactor where max pending timeline value is computed.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-03-16 21:41:37 +01:00
Hans-Kristian Arntzen
dbdbf94083
vkd3d: Ensure that virtual timeline values are updated in-order.
...
Increment physical value one by one, find the exact timeline value we're
supposed to signal and perform the update.
Select lowest physical timeline value correctly.
Array can be reordered now, so lowest value isn't necessarily first.
Fixes some super weird hangs in Control DXR.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-03-16 21:41:37 +01:00
Philip Rebohle
eab288bb4e
vkd3d: Simplify fence worker implementation.
...
Avoids potential busy-waiting on the driver with WAIT_ANY_BIT.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2021-03-16 12:43:24 +01:00
Philip Rebohle
93a80d5eaa
vkd3d: Create one fence worker per command queue.
...
Rather than one per device. This solves issues with D3D12 fences
being signalled too late because the fence worker is waiting on
a different set of semaphores while the fence is being enqueued.
Greatly increases performance in Horizon Zero Dawn and Death
Stranding with multi-queue mode enabled.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2021-03-16 12:43:24 +01:00
Philip Rebohle
34bca90a9c
vkd3d: Implement internal reference counting for d3d12_fence.
...
This will be necessary once we introduce fence workers per
command queue, since we cannot reliably store pointers to
queues.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2021-03-16 12:43:24 +01:00
Hans-Kristian Arntzen
102ea2211b
vkd3d: Ignore IASetVertexBuffers for NULL pViews.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-03-15 14:55:53 +00:00
Hans-Kristian Arntzen
5b2cc545e8
vkd3d: Convert RTAS geometry flags.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2021-03-15 14:55:03 +00:00
Hans-Kristian Arntzen
c425343f41
vkd3d: Remove FIXME spam for pResourceAfter = NULL cases.
2021-03-15 14:10:27 +01:00
Philip Rebohle
0e4ef88d18
vkd3d: Don't broadcast semaphore waits when zeroing memory.
...
Instead, let queues wait on demand.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2021-03-15 12:52:00 +01:00
Philip Rebohle
7185e9776d
vkd3d: Introduce vkd3d_queue_add_wait.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2021-03-15 12:52:00 +01:00
Philip Rebohle
724257c0d8
vkd3d: Add multi_queue config flag.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2021-03-15 12:52:00 +01:00
Philip Rebohle
859aa3fd5a
vkd3d: Use VK_SHARING_MODE_CONCURRENT if multi-queue is enabled.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2021-03-15 12:52:00 +01:00
Philip Rebohle
1e3c91579e
vkd3d: Create one vkd3d queue per Vulkan device queue.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2021-03-15 12:52:00 +01:00
Philip Rebohle
3cd93781ff
vkd3d: Create multiple queues per queue family if possible.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2021-03-15 12:52:00 +01:00
Philip Rebohle
6967b1e92b
vkd3d: Wait for queue idle before destroying vkd3d queue.
...
Fixes a potential issue where we may destroy objects that
are still in use by the GPU.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2021-03-15 12:52:00 +01:00
Philip Rebohle
b0309f6f90
vkd3d: Introduce d3d12_device_allocate_vkd3d_queue.
...
Replaces d3d12_device_get_vkd3d_queue when mapping D3D12
command queues to Vulkan device queues.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2021-03-15 12:52:00 +01:00