Philip Rebohle
c3170731bf
vkd3d: Support CastingFullyTypedFormatSupported.
...
Look up the typeless format for any given image format, then
look up the corresponding compatibility list. This also fixes
a potential issue with implicit SRGB <-> UNORM compatibility.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-22 15:18:09 +02:00
Sveinar Søpler
c2e79af6a1
vkd3d: Fix 32-bit compiler warnings
...
This fixes a couple of 32-bit compiler warnings.
Signed-off-by: Sveinar Søpler <cybermax@dexter.no>
2020-04-21 11:54:59 +02:00
Philip Rebohle
64bd4f6404
vkd3d: Add VKD3D_FEATURE_LEVEL override.
...
Unblocks some games that request Feature Level 12.0, such as
Anno 1800, Monster Hunter World, The Talos Principle. May
cause issues if games use unsupported features.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-17 15:36:51 +02:00
Philip Rebohle
f9a2a68948
vkd3d: Improve d3d12_device_SetResidencyPriority stub.
...
Monster Hunter World requires this function to succeed.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-16 18:38:31 +02:00
Philip Rebohle
957aec4785
vkd3d: Restore old ClearUnorderedAccessView implementation.
...
The current code uses D3D12 abstractions to create pipelines but
issues raw Vulkan API calls to actually implement the functionality,
which means the code makes assumptions about the exact descriptor
set layout and push constant layout, which is generally a bad idea
now that we have multiple code paths for root constants etc.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-16 18:03:39 +02:00
Hans-Kristian Arntzen
edc614ab2e
vkd3d: Remove legacy fence/semaphore path.
...
Prepares for a rewrite of queue submission, the legacy path is never
run in practice and will likely break in subtle ways.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-04-16 15:31:04 +02:00
Philip Rebohle
d6204bb993
vkd3d: Implement D3D12_FEATURE_QUERY_META_COMMAND feature query.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-15 14:25:01 +02:00
Philip Rebohle
25f0af58f6
vkd3d: Implement D3D12_FEATURE_D3D12_OPTIONS6 feature query.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-15 14:25:01 +02:00
Philip Rebohle
61530857d6
vkd3d: Update ID3D12Device to ID3D12Device6.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-15 14:25:01 +02:00
Philip Rebohle
78b6d291cd
vkd3d: Implement D3D12_FEATURE_D3D12_OPTIONS5 feature query.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-15 10:35:59 +02:00
Philip Rebohle
638dcb1afb
vkd3d: Update ID3D12Device to ID3D12Device5.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-15 10:35:59 +02:00
Philip Rebohle
0871f02b7e
vkd3d: Implement D3D12_FEATURE_CROSS_NODE feature query.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-14 16:27:08 +02:00
Philip Rebohle
03b15571d8
vkd3d: Implement D3D12_FEATURE_SERIALIZATION feature query.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-14 16:27:08 +02:00
Philip Rebohle
26538f4377
vkd3d: Implement D3D12_FEATURE_D3D12_OPTIONS4 feature query.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-14 16:27:08 +02:00
Philip Rebohle
9c119b907c
vkd3d: Implement ID3D12Device4::GetResourceAllocationInfo1.
...
Also, support querying more than one resource at a time.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-14 16:27:08 +02:00
Philip Rebohle
0c03bbe9b5
vkd3d: Implement ID3D12Device4::CreateCommandList1.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-14 16:27:08 +02:00
Philip Rebohle
23e2b62950
vkd3d: Implement ID3D12Device4::CreateReservedResource1.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-14 16:27:08 +02:00
Philip Rebohle
a66e9a2ce4
vkd3d: Implement ID3D12Device4::CreateCommittedResource1.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-14 16:27:08 +02:00
Philip Rebohle
5fbca43bc8
vkd3d: Implement ID3D12Device4::CreateHeap1.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-14 16:27:08 +02:00
Philip Rebohle
aa2c21b2bd
vkd3d: Update ID3D12Device to ID3D12Device4.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-14 16:27:08 +02:00
Philip Rebohle
da07275b16
vkd3d: Implement d3d12_device_CreatePipelineLibrary.
...
Needed by Claybook.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-08 14:23:28 +02:00
Philip Rebohle
50b5959e64
vkd3d: Implement better stub for GetCachedBlob.
...
We currently can't implement this in a meaningful way, but we
should return an empty blob in order to not crash applications.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-08 14:23:28 +02:00
Philip Rebohle
7f91484c28
vkd3d: Enable EXT_shader_stencil_export if available.
...
Allows us to expose PSSpecifiedStencilRefSupported.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-06 11:53:09 +02:00
Philip Rebohle
4c1cc5732c
vkd3d: Enable VK_EXT_shader_viewport_index_layer if available.
...
And expose the following feature cap on capable GPUs:
VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-06 11:53:09 +02:00
Philip Rebohle
4e3ea62e79
vkd3d: Implement depth bounds test.
...
Used by Resident Evil 2 and 3 if available.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-01 16:04:39 +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
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
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
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
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
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
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
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