Hans-Kristian Arntzen
e9dcdc1308
vkd3d: Move vkd3d_pipeline_key to private header.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-07-14 14:29:34 +02:00
Hans-Kristian Arntzen
5968d28e75
vkd3d: Refactor out dynamic stride checks to its own function.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-07-14 14:29:34 +02:00
Hans-Kristian Arntzen
10d6823e34
vkd3d: Do not attempt to create a pipeline with invalid DS format.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-07-14 14:29:34 +02:00
Hans-Kristian Arntzen
2e57b3d27e
vkd3d: Do not attempt to create pipelines with unknown topology type.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-07-14 14:29:34 +02:00
Hans-Kristian Arntzen
6967576904
vkd3d: Statically deduce patch vertex count for HS.
...
Fall back when there is a mismatch, which can happen if application does
not declare inputs to hull shader (unlikely).
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-07-14 14:29:34 +02:00
Hans-Kristian Arntzen
7b0345a149
vkd3d-shader: Add way to scan for expected patch vertex count from HS.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-07-14 14:29:34 +02:00
Hans-Kristian Arntzen
084a3e6928
vkd3d: Validate minimum vertex buffer stride when using dynamic stride.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-07-14 14:29:34 +02:00
Hans-Kristian Arntzen
c8bbed15d7
vkd3d: Implement 32-bit bitmask iteration.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-07-14 14:29:34 +02:00
Hans-Kristian Arntzen
5ef3ebce61
vkd3d: Implement extended dynamic state.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-07-14 14:29:34 +02:00
Hans-Kristian Arntzen
7139621c3f
vkd3d: Add conversion for topology type to Vulkan.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-07-14 14:29:34 +02:00
Hans-Kristian Arntzen
85f8a6ac7c
vkd3d: Add helper to check if topology type can use primitive restart.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-07-14 14:29:34 +02:00
Hans-Kristian Arntzen
66b252e08f
vkd3d: Remove reliance on HAVE_BUILTIN_CTZLL.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-07-14 14:29:34 +02:00
Hans-Kristian Arntzen
1f2499f64a
vkd3d: Add 32-bit bitmask iteration with scanning.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-07-14 14:29:34 +02:00
Hans-Kristian Arntzen
551bc54546
vkd3d: Add topology type to pipeline state.
...
Needed to build dynamic pipeline.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-07-14 14:29:34 +02:00
Hans-Kristian Arntzen
fc0a94ad04
vkd3d: Add a common pipeline for graphics pipeline state.
...
When using EXT_extended_dynamic_state, we will be able to compile a
master pipeline. Only in special cases will we have to fallback.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-07-14 14:29:34 +02:00
Hans-Kristian Arntzen
b52a9c46bd
vkd3d: Refactor graphics pipeline creation out to separate function.
...
Preparation for extended dynamic state refactor.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-07-14 14:29:34 +02:00
Hans-Kristian Arntzen
926f2033a9
vkd3d: Enable VK_EXT_extended_dynamic_state.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-07-14 14:29:34 +02:00
Hans-Kristian Arntzen
9425b4d438
vkd3d: Bump VKD3D_MAX_DESCRIPTORS_SETS to 9.
...
This can happen in the worst case where we have all bindless sets, and:
- Static samplers
- Packed descriptors (UAV counters on drivers without support for this)
- Root descriptors
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-07-14 10:08:38 +02:00
Philip Rebohle
15106808f9
vkd3d: Implement IDXGISwapChain4.
...
SetHDRMetaData implementation taken from DXVK.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-07-13 10:25:51 +02:00
Philip Rebohle
90d44eeac5
vkd3d: Make swap chain implementation more easily extensible.
...
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-07-13 10:25:51 +02:00
Biswapriyo Nath
41b0f5a96c
vkd3d: remove redeclaration of IWineDXGISwapChainFactory
...
IWineDXGISwapChainFactory will be in header from vkd3d_swapchain_factory.idl
Signed-off-by: Biswapriyo Nath <nathbappai@gmail.com>
2020-07-11 20:33:59 +02:00
Hans-Kristian Arntzen
f0269739b1
debug: Add support for a log file.
...
Simplistic implementation. Also, make sure lines are written atomically
to not get garbled logs.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-07-10 16:09:00 +02:00
Hans-Kristian Arntzen
7fb97940f1
vkd3d: Initialize debug code once with pthread_once_t.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-07-10 16:09:00 +02:00
Hans-Kristian Arntzen
b16b98e77d
d3d12: Initialize Vulkan library once with pthread_once_t.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-07-10 16:09:00 +02:00
Hans-Kristian Arntzen
8743577ca5
vkd3d: Add MSVC path for pthread_once_t.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-07-10 16:09:00 +02:00
Hans-Kristian Arntzen
7f29d25611
debug: Flush logging output.
...
On Windows, we don't get a flush naturally after every newline,
so flush manually every time to make sure we get everything in a timely
fashion.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-07-10 16:09:00 +02:00
Hans-Kristian Arntzen
7bccab7427
debug: Re-introduce different debug channels.
...
vkd3d-shader is currently kinda buggy and crashes when you try to trace
DXBC. This used to never be run since it was guarded by
VKD3D_SHADER_DEBUG, but with the move to a static build we merged all
debug logging under VKD3D_DEBUG. Reintroduce different debug channels in
a way that is compatible with a statically linked vkd3d.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-07-10 14:18:15 +02:00
Hans-Kristian Arntzen
854814d81c
vkd3d: Fix various minor warnings.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-07-10 14:18:15 +02:00
Hans-Kristian Arntzen
337f75b76a
vkd3d: Workaround broken MEMORY_READ/WRITE on RADV.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-07-09 14:50:50 +02:00
Hans-Kristian Arntzen
1341409b88
vkd3d: Implement aliasing barriers.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-07-09 14:50:50 +02:00
Hans-Kristian Arntzen
d919c74276
vkd3d: Add test for aliasing barriers.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-07-09 14:50:50 +02:00
Philip Rebohle
fee4781f2b
vkd3d: Fix suspended render pass state tracking.
...
Otherwise, if a render pass gets suspended twice in a row, we
never emit the barrier because render_pass_suspended will be
set to false the second time.
Fixes validation errors in Hitman 2.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
2020-07-08 17:31:58 +02:00
Joshua Ashton
2b2c4a2e33
d3d12: Fix ordinal exports
...
These were originally copied from d3d12.crosslib.def but it turns out those are wrong.
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-07-07 17:42:21 +01:00
Joshua Ashton
6056df3332
d3d12: Declare exports as __declspec(dllexport) on MinGW
...
Otherwise the stdcall-alias/fixup doesn't get exported.
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-07-07 17:44:36 +02:00
Joshua Ashton
3fe9dd765d
build: Add stdcall alias/fixup when building x86
...
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-07-07 17:44:36 +02:00
Hans-Kristian Arntzen
0c59c30e08
vkd3d: Fix tzcnt64 on MSVC 32-bit and 64-bit.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-07-07 16:31:29 +01:00
Hans-Kristian Arntzen
c97a8ba253
vkd3d-compiler: Fix build on MSVC.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-07-07 16:31:29 +01:00
Hans-Kristian Arntzen
b6e5760b6e
d3d12: Use CreateDXGIFactory1 instead of 2.
...
MinGW-w64 somehow does not export 32-bit symbols of DXGIFactory2.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-07-07 16:31:29 +01:00
Joshua Ashton
9625096577
vkd3d: Correctly handle output + fix NULL old targets for fullscreen
...
The output here is actually for secure presentation and restricting a swapchain to a certain output.
Correctly handle NULL (desktop) targets that we used to have.
Fixes crashes with titles that use fullscreen via an initial fullscreen desc.
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-07-07 01:42:34 +02:00
Hans-Kristian Arntzen
cb1da02af9
vkd3d: Fix some warnings.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-07-06 21:32:16 +02:00
Hans-Kristian Arntzen
c3392dad97
vkd3d: Fix automake build.
...
Missing IDL header.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-07-06 21:32:16 +02:00
Hans-Kristian Arntzen
a6d8ea4800
vkd3d: Update clone link in README.md.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-07-06 21:32:06 +02:00
Hans-Kristian Arntzen
1ea32a66ce
vkd3d: Update README.md.
...
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-07-06 20:32:00 +02:00
Joshua Ashton
5e5eee368c
subprojects: Update dxil-spirv to fix Windows builds
2020-07-06 18:56:54 +01:00
Joshua Ashton
7204c8d76f
d3d12: Add standalone d3d12 library
...
When building for Windows, specify `-Denable_standalone_d3d12=True` in Meson to enable.
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-07-06 19:29:30 +02:00
Joshua Ashton
aa3b7c3b26
vkd3d: Use newer ID3D12Device funcs for COM
...
Fixes warnings under MSVC and MinGW.
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-07-06 19:29:30 +02:00
Joshua Ashton
9c105a78a9
vkd3d: Implement swapchain and swapchain factory
...
Needed for standalone D3D12.
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-07-06 19:29:30 +02:00
Joshua Ashton
cbebf9efed
build: Add build_standalone_d3d12 option
...
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-07-06 19:29:30 +02:00
Joshua Ashton
3d52186d3a
build: Move build options to top of build script
...
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-07-06 19:29:30 +02:00
Joshua Ashton
cb4fcd5a98
include: Replace MinGW hack with Win32 platform header
...
Replace this hack with a more versatile one that works for multiple compilation objects.
Consolidates this hack across all the code bases (soon to be used in a D3D12 standalone patch)
Signed-off-by: Joshua Ashton <joshua@froggi.es>
2020-07-06 19:29:30 +02:00