Philip Rebohle
1b41a77c19
include: Add missing logic ops.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-01 13:54:10 +02:00
Philip Rebohle
1d8afd85d4
vkd3d: Signal fence in EnqueueMakeResident.
...
Resident Evil 2 needs this method. Since we don't really have a concept
of explicit memory residency in Vulkan, we're fine not doing anything else.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-01 10:35:40 +02:00
Philip Rebohle
11ca844bef
vkd3d: Implement CreatePipelineState.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-01 10:35:40 +02:00
Philip Rebohle
f032702a74
vkd3d: Extend graphics pipeline description.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-01 10:35:40 +02:00
Philip Rebohle
b6b4f7e8d5
tests: Add test for ID3D11Device2::CreatePipelineState.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-01 10:35:40 +02:00
Philip Rebohle
5ba09a9ab4
vkd3d: Implement D3D12_FEATURE_EXISTING_HEAPS feature query.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-01 10:35:40 +02:00
Philip Rebohle
0a5c618e9e
vkd3d: Implement D3D12_FEATURE_D3D12_OPTIONS3 feature query.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-01 10:35:40 +02:00
Philip Rebohle
34180e4073
vkd3d: Implement D3D12_FEATURE_COMMAND_QUEUE_PRIORITY feature query.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-01 10:35:40 +02:00
Philip Rebohle
ef937713e3
vkd3d: Implement D3D12_FEATURE_SHADER_CACHE feature query.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-01 10:35:40 +02:00
Philip Rebohle
1ab7dd67a0
vkd3d: Implement D3D12_FEATURE_D3D12_OPTIONS2 feature query.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-01 10:35:40 +02:00
Philip Rebohle
8687969a2a
vkd3d: Implement D3D12_FEATURE_ARCHITECTURE1 feature query.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-01 10:35:40 +02:00
Philip Rebohle
3dc9f7c585
vkd3d: Implement D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_SUPPORT feature query.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-01 10:35:40 +02:00
Philip Rebohle
90a22df2a4
vkd3d: Implement D3D12_FEATURE_D3D12_OPTIONS1 feature query.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-01 10:35:40 +02:00
Philip Rebohle
7c7db3c77c
vkd3d: Optionally enable VK_EXT_subgroup_size_control.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-01 10:35:40 +02:00
Philip Rebohle
0273292224
vkd3d: Optionally enable VK_NV_shader_sm_builtins.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-01 10:35:40 +02:00
Philip Rebohle
ebcc18583c
vkd3d: Optionally enable VK_AMD_shader_core_properties{_2}.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-01 10:35:40 +02:00
Philip Rebohle
70ac2f147e
vkd3d: Upgrade ID3D12Device to ID3D12Device3.
...
Stubs for now, will implement new functionality as needed.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-01 10:35:40 +02:00
Philip Rebohle
ac1942f9ac
include: Fix typos and add D3D12_DEPTH_STENCIL_DESC1.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-01 10:35:40 +02:00
Philip Rebohle
6b113bb629
vkd3d: Introduce d3d12_command_list_iface type alias.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-01 10:35:40 +02:00
Philip Rebohle
b6d5a407ce
vkd3d: Define d3d12_device_iface type alias.
...
This way we don't have to change all function parameter types
every time we upgrade the interface version.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-01 10:35:40 +02:00
Philip Rebohle
c41275478c
vkd3d: Refactor pipeline state creation.
...
We need a more extensible struct to contain the pipeline
descriptions in order to be able to support new rendering
features.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-03-31 18:28:18 +02:00
Hans-Kristian Arntzen
fce6838870
vkd3d: Fix compilation warning on 32-bit.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-03-31 17:27:33 +02:00
Sveinar Søpler
e765145717
vkd3d: Require vulkan headers > 1.1.129
...
VK_KHR_buffer_device_address requires Vulkan headers > 1.1.129
Signed-off-by: Sveinar Søpler <cybermax@dexter.no>
2020-03-31 17:27:21 +02:00
Sveinar Søpler
257c38c59d
vkd3d: Require Vulkan headers > 1.1.124
...
Implementing VK_KHR_timeline_semaphore extension requires vulkan
headers > 1.1.124.
Signed-off-by: Sveinar Søpler <cybermax@dexter.no>
2020-03-31 16:45:23 +02:00
Hans-Kristian Arntzen
09885f799c
vkd3d: Implement stricter checking for timeline semaphores.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-03-31 12:51:05 +02:00
Hans-Kristian Arntzen
3b9f1f8a9c
vkd3d: Use monotonically increasing fence values in test suite.
...
Microsoft documentation says that fences are monotonically increasing
values.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-03-31 12:51:05 +02:00
Hans-Kristian Arntzen
855c59eae5
vkd3d: Implement timeline semaphores.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-03-31 12:51:05 +02:00
Hans-Kristian Arntzen
afdbf6edcd
vkd3d: Enable VK_KHR_timeline_semaphore extension.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-03-31 12:51:05 +02:00
Philip Rebohle
22feb3e8be
include: Update D3D12 IDL.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-03-30 15:45:05 +02:00
Philip Rebohle
8344e8224e
vkd3d: Only add feature structs to pNext chain if extension is supported.
...
RenderDoc will sometimes report extensions as unsupported, but still
fill out and accept the respective feature structs. Since we assume
extensions to be supported if the feature is enabled, we sometimes
try to use functionality that RenderDoc disables and crash.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-03-30 11:07:53 +02:00
Philip Rebohle
00d88454ee
vkd3d: Factor out extension enumeration.
...
Besides cleaning up the code, this also allows us to
use information about the available extensions earlier.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-03-30 11:07:53 +02:00
Philip Rebohle
34f9cae1c6
vkd3d: Disable unused BufferDeviceAddress features.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-03-30 11:07:53 +02:00
Philip Rebohle
cf759d4d76
vkd3d: Only set memory device address bit if extension is supported.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-03-30 11:07:53 +02:00
Philip Rebohle
f5dc3fa8c8
vkd3d: Skip redundant descriptor copies.
...
Greatly improves performance in Control.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-03-30 10:51:14 +02:00
Philip Rebohle
78034ecef1
vkd3d: Simplify checks whether a descriptor has a view.
...
SaVes a few CPU cycles on a potentially very hot code path.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-03-30 10:51:14 +02:00
Philip Rebohle
1836815222
vkd3d: Rework descriptor magic.
...
Changes the magic to a three-character string with flags
in the highest byte.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-03-30 10:51:14 +02:00
Philip Rebohle
33a2ace768
vkd3d: Don't copy entire descriptor when destroying view.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-03-30 10:51:14 +02:00
Philip Rebohle
09b7013f59
vkd3d: Don't use push descriptors if we exceed the device limit.
...
This can in theory happen if we have 32 root descriptors and
bindless UAV counters.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-03-30 10:47:47 +02:00
Philip Rebohle
29d1a5e089
vkd3d: Remove unused root descriptor count from root signature.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-03-30 10:47:47 +02:00
Philip Rebohle
643ace438e
vkd3d: Store push descriptor properties in device info struct.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-03-30 10:47:47 +02:00
Philip Rebohle
a7a27e3c05
vkd3d: Fix descriptor count for UAV counter binding.
...
Copy-paste error that causes us to exceed the push descriptor
limit in some situations.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-03-30 10:47:47 +02:00
Philip Rebohle
920d029100
vkd3d: Don't require bindless UAV counters for RESOURCE_BINDING_TIER_3.
...
Nvidia does not support VK_KHR_buffer_device_address at the moment.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-03-28 10:39:14 +01:00
Hans-Kristian Arntzen
671560c4e3
vkd3d-shader: Allow bindless UAV counters in DXIL.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-03-27 15:43:19 +01:00
Hans-Kristian Arntzen
31a2a308ee
vkd3d-shader: Enable physical storage extension in DXIL.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-03-27 15:43:19 +01:00
Hans-Kristian Arntzen
877c3afedd
vkd3d: Fix MSVC build.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-03-27 15:43:19 +01:00
Philip Rebohle
8843739797
vkd3d: Require bindless UAV and UAV counters for BINDING_TIER_3.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-03-27 15:37:59 +01:00
Philip Rebohle
f8c842f03c
vkd3d: Enable bindless UAV counters if supported.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-03-27 15:04:23 +01:00
Philip Rebohle
e97c5be394
vkd3d: Enable VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT as necessary.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-03-27 15:04:23 +01:00
Philip Rebohle
b5b9f464d7
vkd3d: Enable VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR as necessary.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-03-27 15:04:23 +01:00
Philip Rebohle
e1ad2f0f03
vkd3d: Set SHADER_DEVICE_ADDRESS_BIT for buffers.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-03-27 15:04:23 +01:00