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
108ce6409b
vkd3d: Update ID3D12CommandList to ID3D12GraphicsCommandList3.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-14 16:27:08 +02:00
Philip Rebohle
561675410b
include: Fix typo.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-14 16:27:08 +02:00
Philip Rebohle
407c740927
vkd3d: Rework vkd3d_dxbc_compiler_get_resource_binding.
...
Instead of taking the resource type, take the binding flag.
This allows us to also use this function for UAV counters.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-10 14:32:33 +02:00
Philip Rebohle
c44b168da2
include: Fix ID3D12Device2 GUID.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-08 14:23:28 +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
9647109559
vkd3d: Add stubs for ID3D12PipelineLibrary1.
...
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
20aa3c3c26
vkd3d: Make ID3DBlob implementation more accessible.
...
We're going to need this to implement other parts of the
API, so it should be in common code.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-08 14:23:28 +02:00
Philip Rebohle
ecc46fe1ec
tests: Add test for exporting SV_StencilRef from PS.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-06 11:53:09 +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
56df26d845
vkd3d-shader: Implement support for stencil export.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-06 11:53:09 +02:00
Philip Rebohle
0873f15f2e
tests: Add test for exporting SV_RenderTargetArrayIndex from VS.
...
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
3ee4ab56d7
vkd3d-shader: Enable SPV_EXT_shader_viewport_index_layer if necessary.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-06 11:53:09 +02:00
Philip Rebohle
c07f46f09c
vkd3d-shader: Look up existing register fpr built-in outputs.
...
Otherwise, if two built-in outputs share the same register, we
may end up multiple redundant private variables, only one of
which gets initialized, leading to uninitialized outputs.
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
960e6f85fd
vkd3d: Support multiple viewports.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-01 15:57:23 +02:00
Philip Rebohle
ae789d9ba8
vkd3d: Pass dynamic state struct to get_or_create_pipeline.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-01 15:57:23 +02:00
Philip Rebohle
0cc33cb823
vkd3d: Move vertex strides and primitive topology to dynamic_state.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-01 15:57:23 +02:00
Philip Rebohle
9cb863f84a
vkd3d: Only enable dynamic states if necessary.
...
Avoids some unnecessary API calls.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-01 15:39:33 +02:00
Philip Rebohle
d48794408a
vkd3d: Refactor dynamic state updates.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-01 15:39:33 +02:00
Philip Rebohle
e08580f178
vkd3d: Refactor dynamic state enablement.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-01 15:39:33 +02:00
Philip Rebohle
d8a6d71038
vkd3d: Introduce vkd3d_dynamic_state.
...
And add a function to (re-)apply dynamic state as necessary. This
will allow us to ignore dynamic state not needed by the pipeline,
and may become necessary if we implement shader-based copies etc.
Currently unused; the following commits will subsequently change
state setting methods over.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-01 15:39:33 +02:00
Philip Rebohle
6fbc38118a
vkd3d: Implement support for logic op.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-04-01 13:54:10 +02:00
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