Józef Kucia
879c9e43d1
libs/vkd3d: Do not export D3D12* functions.
...
Move them to libvkd3d-utils.
2017-12-12 13:12:47 +01:00
Józef Kucia
18b285328e
libs/vkd3d-shader: Add version argument to vkd3d_shader_serialize_root_signature().
2017-10-10 16:57:36 +02:00
Józef Kucia
4629cbdf8a
libs/vkd3d: Implement D3D12SerializeRootSignature().
2017-10-10 16:02:09 +02:00
Józef Kucia
6b43a5fe38
libs/vkd3d-shader: Implement root signature serialization.
2017-10-10 16:02:09 +02:00
Józef Kucia
5a020d6673
libs/vkd3d-shader: Implement shader visibility for descriptors.
2017-09-22 16:42:07 +02:00
Józef Kucia
dfab65e568
include: Avoid cpp_quote() for function prototypes.
2017-09-18 15:40:42 +02:00
Józef Kucia
554d07df06
libs/vkd3d: Warn about unmet feature level 11_0 requirements.
...
This isn't necessarily exhaustive.
2017-09-14 15:38:19 +02:00
Józef Kucia
2ea8ffb554
libs/vkd3d: Avoid vkCmdCopyQueryPoolResults() for not issued queries.
...
The Vulkan spec states:
* "If the query does not become available in a finite amount of time
(e.g. due to not issuing a query since the last reset), a
VK_ERROR_DEVICE_LOST error may occur."
* "If queries will never finish (e.g. due to being reset but not
issued), then vkGetQueryPoolResults may not return in finite time."
2017-09-14 14:57:09 +02:00
Józef Kucia
b19fe74284
libs/vkd3d-shader: Export shader signature parsing.
2017-09-11 22:35:16 +02:00
Józef Kucia
09658e3b9b
build: Use __builtin_popcount() if available.
2017-09-08 15:04:30 +02:00
Józef Kucia
0d28036d2a
libs/vkd3d: Add UAV counter support for compute pipelines.
...
UAV counter descriptors are stored in a separate VkDescriptorSet.
A VkPipelineLayout created for compute pipeline is compatible for all
other descriptor sets with the VkPipelineLayout created for the root
signature. This ensures that only UAV counter bindings in the last
descriptor set may be disturbed when switching between pipelines with
compatible root signatures.
The implementation of vkd3d_popcount() is based on
https://graphics.stanford.edu/~seander/bithacks.html
2017-09-08 15:04:30 +02:00
Józef Kucia
5ef6f71996
libs/vkd3d-shader: Emit declarations for UAV counters.
2017-09-07 17:15:54 +02:00
Józef Kucia
7416c83ae2
libs/vkd3d-shader: Rename vkd3d_descriptor_type to vkd3d_shader_descriptor_type.
2017-09-07 17:15:54 +02:00
Józef Kucia
efdf2ec691
libs/vkd3d-shader: Rename vkd3d_shader_push_constant to vkd3d_shader_push_constant_buffer.
...
This should be clearer. Multiple constant buffers can be assigned to
a single push constant range.
2017-09-07 17:15:54 +02:00
Józef Kucia
9eee65c3ab
libs/vkd3d: Validate root signature size.
2017-09-05 11:53:55 +02:00
Henri Verbeet
0c08d5630c
include: Get rid of some superfluous semicolons.
2017-09-04 16:46:55 +02:00
Józef Kucia
5bdc928908
libs/vkd3d-shader: Export shader scan function.
...
For UAV counters support in libvkd3d.
2017-09-01 11:27:58 +02:00
Henri Verbeet
3019a3e8f1
libs/vkd3d: Support both native and Win32 wchar_t.
2017-08-29 16:36:05 +02:00
Henri Verbeet
eedac9bdc7
include: Rename DXGI_FORMAT_FORCE_DWORD to DXGI_FORMAT_FORCE_UINT.
2017-08-28 20:36:32 +02:00
Sven Hesse
0379783c29
include: Add struct D3D12_QUERY_DATA_PIPELINE_STATISTICS.
2017-08-28 15:11:30 +02:00
Józef Kucia
f5515c46df
libs/vkd3d: Create default sampler for each root signature.
...
We need a sampler for SpvOpImageFetch aka texelFetch().
2017-08-16 13:11:52 +02:00
Józef Kucia
e3d6bac31b
libs/vkd3d-shader: Introduce vkd3d_shader_interface structure.
2017-08-16 13:11:52 +02:00
Józef Kucia
6c237a91f6
include: Add IDXGIFactory4.
2017-08-15 12:24:44 +02:00
Sven Hesse
c1c7163216
include: Add D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT.
2017-08-09 14:48:14 +02:00
Józef Kucia
2665cbe522
libs/vkd3d: Duplicate Vulkan descriptors for SRVs and UAVs.
...
Vulkan has different descriptor types for buffers and textures.
Therefore, we do not know the exact Vulkan descriptor type for D3D12 SRV
and UAV descriptors up front. This information can be extracted from
shaders when creating PSOs but creating incompatible Vulkan descriptor
set layouts for PSOs with the same root signature would introduce a lot
of complexity.
In order to preserve compatibility between resource bindings for PSOs
with the same root signature we duplicate Vulkan descriptors for SRVs
and UAVs (a buffer view and an image view descriptor). This strategy may
be reasonable for small root signatures.
2017-08-08 17:09:35 +02:00
Józef Kucia
0859b94833
libs/vkd3d: Implement d3d12_device_CreateConstantBufferView().
2017-08-04 17:06:33 +02:00
Józef Kucia
d75966ab9e
libs/vkd3d: Assign non-overlapping push constant ranges for root constants.
2017-08-01 10:51:45 +02:00
Józef Kucia
92fcb9ffa2
libs/vkd3d-shader: Add support for push constants.
2017-07-27 15:24:38 +02:00
Józef Kucia
edd1e9602d
libs/vkd3d-shader: Implement arbitrary mappings from D3D shader register to Vulkan descriptors.
...
An arbitrary mapping can be passed to vkd3d_shader_compile_dxbc().
2017-07-26 13:45:25 +02:00
Henri Verbeet
e9fe4da01e
include: Respect NOMINMAX.
2017-07-18 19:15:00 +02:00
Józef Kucia
f4f803c7bb
libs/vkd3d: Add initial implementation for d3d12_device_GetCopyableFootprints().
2017-07-13 11:56:30 +02:00
Józef Kucia
8a455b6043
include: Add texture filtering macros.
2017-07-12 13:10:44 +02:00
Józef Kucia
2bbba87ea0
include: Avoid redefining DXGI_ERROR constants.
...
Fixes build for crosstests.
MinGW-w64 defines DXGI_ERRORs in winerror.h.
2017-07-11 17:23:02 +02:00
Henri Verbeet
893d2e8444
include: Add D3D12_FEATURE_DATA_FORMAT_SUPPORT.
2017-07-11 13:52:54 +02:00
Henri Verbeet
fdd2b456fb
include: Add D3D12_FEATURE_DATA_D3D12_OPTIONS.
2017-07-11 13:51:13 +02:00
Henri Verbeet
728f4e6686
include: Add missing D3D12_FILTER enum elements.
2017-07-11 13:50:59 +02:00
Henri Verbeet
45b0fa3346
include: Add the ID3D12QueryHeap interface.
2017-07-11 13:19:41 +02:00
Henri Verbeet
2ebba52bef
include: Provide enum flag operators for D3D12_DSV_FLAGS.
2017-07-11 13:13:59 +02:00
Henri Verbeet
f68c1b13be
include: Add texture dimension constants.
2017-07-11 12:24:25 +02:00
Henri Verbeet
c633a87dba
include: Add missing DXGI formats.
2017-07-11 12:24:25 +02:00
Henri Verbeet
e732713f10
include: Add D3D12_DISPATCH_ARGUMENTS.
2017-07-11 12:24:25 +02:00
Henri Verbeet
634a5aa19f
include: Add D3D12_DRAW_INDEXED_ARGUMENTS.
2017-07-11 12:24:21 +02:00
Henri Verbeet
12831d2125
include: Add D3D12_DRAW_ARGUMENTS.
2017-07-11 12:21:19 +02:00
Henri Verbeet
941eefb1c0
include: Provide enum flag operators for D3D12_CLEAR_FLAGS.
2017-07-11 12:21:19 +02:00
Henri Verbeet
d61b6a3545
include: Add the missing "values" parameter to ID3D12GraphicsCommandList::ClearUnorderedAccessViewFloat().
2017-07-11 12:21:15 +02:00
Henri Verbeet
99d2ba411e
include: Add the missing ClearUnorderedAccessViewUint() method to the ID3D12GraphicsCommandList interface.
2017-07-11 12:21:11 +02:00
Henri Verbeet
21d853ac3b
include: Add D3D12_SHADER_COMPONENT_MAPPING.
2017-07-10 16:57:10 +02:00
Henri Verbeet
dec9b864ef
include: Provide enum flag operators for D3D12_RESOURCE_STATES.
2017-07-10 16:57:10 +02:00
Henri Verbeet
7a203b0e5f
include: Provide enum flag operators for D3D12_RESOURCE_FLAGS.
2017-07-10 16:57:06 +02:00
Henri Verbeet
7bdc8c3b25
include: Introduce dxgiformat.idl.
2017-07-10 16:32:01 +02:00
Józef Kucia
8f6af1125d
libs/vkd3d-shader: Get rid of VKD3D_SHADER_FLIP_Y compiler option.
...
We use negative viewport height to flip Y.
2017-06-27 22:21:43 +02:00
Józef Kucia
0afe0032b0
libs/vkd3d-shader: Add VKD3D_SHADER_STRIP_DEBUG compiler option.
2017-06-27 22:21:43 +02:00
Józef Kucia
3f03cd1ec8
libs/vkd3d-shader: Implement root signature parsing.
2017-06-27 13:16:47 +02:00
Józef Kucia
d220ae4bfb
libs/vkd3d: Add ID3D12RootSignatureDeserializer interface stub.
2017-06-27 13:16:47 +02:00
Józef Kucia
4e5fcb5141
libs/vkd3d: Use negative viewport height to flip along y-axis.
...
Requires VK_KHR_maintenance1.
2017-06-21 22:00:19 +02:00
Józef Kucia
eff8428c71
libs/vkd3d-common: Move vkd3d_array_reserve() from libvkd3d.
2017-06-19 18:05:53 +02:00
Józef Kucia
97c7bc0a18
libs/vkd3d-common: Provide access to current debug level.
2017-06-19 18:05:53 +02:00
Henri Verbeet
5808c280f7
libs/vkd3d: Add DXGI_FORMAT_D16_UNORM.
2017-06-19 14:44:48 +02:00
Henri Verbeet
fc67a3b7fa
libs/vkd3d: Add DXGI_FORMAT_R8G8B8A8_UNORM_SRGB.
2017-06-19 14:44:41 +02:00
Henri Verbeet
d029dc995c
libs/vkd3d: Add DXGI_FORMAT_R8_UINT.
2017-06-19 14:44:33 +02:00
Henri Verbeet
79d731de8a
libs/vkd3d: Add DXGI_FORMAT_R16_FLOAT.
2017-06-19 14:44:19 +02:00
Henri Verbeet
70dbeed14c
libs/vkd3d: Add DXGI_FORMAT_R8_UNORM.
2017-06-19 14:44:07 +02:00
Henri Verbeet
00f514cf1c
libs/vkd3d: Add DXGI_FORMAT_R16_UNORM.
2017-06-19 14:43:55 +02:00
Henri Verbeet
07f12c2947
libs/vkd3d: Add DXGI_FORMAT_R16G16B16A16_FLOAT.
2017-06-19 14:43:45 +02:00
Józef Kucia
7be0b64a0f
libs/vkd3d-common: Add debugstr_a() function.
2017-06-16 22:38:21 +02:00
Józef Kucia
93458c8933
libs/vkd3d-shader: Add library.
2017-06-16 22:38:21 +02:00
Józef Kucia
995720f5f5
include: Add align() helper function.
2017-06-16 22:38:21 +02:00
Józef Kucia
ba713c9b37
include: Drop wine prefix from red-black tree functions.
2017-06-16 22:38:21 +02:00
Józef Kucia
69e278e754
include: Import red-black tree implementation from Wine.
2017-06-16 22:38:21 +02:00
Józef Kucia
956c8b03cf
include: Import linked list implementation from Wine.
2017-06-16 22:38:21 +02:00
Józef Kucia
84889646f6
Update license to LGPL v2.1.
2017-06-16 22:11:21 +02:00
Henri Verbeet
f604f25aba
libs/vkd3d: Add DXGI_FORMAT_R11G11B10_FLOAT.
2017-06-15 15:16:07 +02:00
Henri Verbeet
39d95dcd7f
libs/vkd3d: Add DXGI_FORMAT_R10G10B10A2_UNORM.
2017-06-15 15:15:57 +02:00
Henri Verbeet
39e8b8de25
libs/vkd3d: Add DXGI_FORMAT_R32G32_FLOAT.
2017-06-15 15:15:46 +02:00
Henri Verbeet
09f52882ae
include: Add the ID3D12CommandSignature interface.
2017-06-15 15:15:36 +02:00
Henri Verbeet
09ff8b57c1
include: Fix the IDXGISwapChain::ResizeBuffers() arguments.
2017-06-15 15:15:26 +02:00
Henri Verbeet
a5b78eea21
include: Fix D3D12_SAMPLER_DESC.
2017-06-12 18:16:05 +02:00
Henri Verbeet
9bb9e63f23
libs/vkd3d: Implement d3d12_command_list_IASetIndexBuffer().
2016-11-10 16:47:12 +01:00
Henri Verbeet
2213e126cf
libs/vkd3d: Implement d3d12_command_list_ClearDepthStencilView().
2016-11-10 16:43:33 +01:00
Józef Kucia
2d0c3c871a
tests: Introduce debug levels.
...
The VKD3D_TEST_DEBUG environment variable can be now set to 1 or 2.
VKD3D_TEST_DEBUG=1 is useful for examining Vulkan validation layers
output.
2016-11-09 15:03:46 +01:00
Józef Kucia
3c66c74167
tests: Pass command line arguments to vkd3d_test_main().
2016-11-09 15:03:46 +01:00
Józef Kucia
2eed0e0ed3
tests: Write test name to debug output.
...
This is useful when inspecting the output of D3D12 debug layer.
2016-11-09 15:03:46 +01:00
Józef Kucia
4aab207b56
libs/vkd3d: Fix initial state transtion for swapchain images.
2016-10-25 13:23:18 +02:00
Henri Verbeet
fa5b972371
demos/triangle: Add a demo program.
2016-10-24 13:57:05 +02:00
Henri Verbeet
6cbe8626c2
libs/vkd3d: Add DXGI_FORMAT_B8G8R8A8_UNORM_SRGB.
2016-10-24 13:57:05 +02:00
Henri Verbeet
6babf11214
libs/vkd3d: Export a function to get the Vulkan format from a DXGI format.
2016-10-24 13:57:05 +02:00
Henri Verbeet
b760b52859
libs/vkd3d: Export a function to get the Vulkan physical device from a d3d12 device.
2016-10-24 13:57:05 +02:00
Henri Verbeet
c79584ed92
libs/vkd3d: Export a function to get the Vulkan queue family index from a d3d12 command queue.
2016-10-24 13:57:05 +02:00
Henri Verbeet
f34b9f9347
include: Add the IDXGIFactory2 interface.
2016-10-24 13:57:04 +02:00
Henri Verbeet
110309b623
include: Add the IDXGISwapChain3 interface.
...
For cross-compilation of demos. Ideally we'd just depend on the MinGW-w64
headers for these, but we can't depend on those being new enough to include
these interfaces.
2016-10-24 13:57:04 +02:00
Henri Verbeet
a8f7602b14
include: Use hexadecimal values in the DXGI_FORMAT enum.
...
Since that's how those are typically printed.
2016-10-24 13:57:04 +02:00
Józef Kucia
81164d43f7
tests: Use stdbool.
2016-10-24 13:20:09 +02:00
Józef Kucia
ed50a4e7f5
include: Assert that "count * size" does not overflow in vkd3d_calloc().
2016-10-24 13:20:09 +02:00
Józef Kucia
69cd100d48
libs/vkd3d: Validate initial resource state.
2016-10-19 13:10:12 +02:00
Józef Kucia
6904282702
tests: Add test for D3D12_FEATURE_ARCHITECTURE.
2016-10-19 13:10:12 +02:00
Henri Verbeet
e0ba2fd2d3
libs/vkd3d: Export a function to get the Vulkan queue from a d3d12 command queue.
2016-10-19 10:02:53 +02:00
Henri Verbeet
7568a9793c
libs/vkd3d: Export a function to get the Vulkan device from a d3d12 device.
2016-10-19 10:02:27 +02:00
Henri Verbeet
feacd1af50
libs/vkd3d: Export a function to get the Vulkan instance from a d3d12 device.
2016-10-19 10:02:04 +02:00
Henri Verbeet
2a49173b60
libs/vkd3d: Export a function to create a d3d12 resource from a Vulkan image.
2016-10-19 09:59:42 +02:00
Henri Verbeet
8d668205a4
libs/vkd3d-utils: Return a bool from vkd3d_signal_event().
2016-10-19 09:49:52 +02:00
Henri Verbeet
9d5e4daf84
libs/vkd3d-utils: Get rid of unnecessary WINAPI.
2016-10-19 09:48:26 +02:00
Henri Verbeet
53e0839698
libs/vkd3d-utils: Naming conventions.
2016-10-19 09:47:35 +02:00
Józef Kucia
af091ecc73
include: Add more D3D12_MEMORY_POOL enum values.
2016-10-17 14:24:22 +02:00
Józef Kucia
2e1e098465
include: Add defines for some DXGI errors.
2016-10-17 14:24:22 +02:00
Józef Kucia
b4d22aa4e4
include: Fix indentation in vkd3d_test header file.
2016-10-17 14:24:22 +02:00
Józef Kucia
85d498c94b
include: Get rid of useless function prototypes in vkd3d_test header file.
2016-10-17 14:24:22 +02:00
Henri Verbeet
4a558d5a4a
libs/vkd3d: Implement d3d12_command_list_DrawInstanced().
2016-10-10 17:26:46 +02:00
Henri Verbeet
5c9ea3ede3
libs/vkd3d: Implement d3d12_device_CreateGraphicsPipelineState().
2016-10-10 17:26:38 +02:00
Henri Verbeet
e4e1ef5944
include: Add more D3D12_BLEND_OP values.
2016-10-10 17:26:28 +02:00
Henri Verbeet
604a8bb261
include: Fix a typo in "D3D12_BLEND_SRC_ALPHA".
2016-10-10 17:26:20 +02:00
Henri Verbeet
7add62e552
libs/vkd3d: Implement d3d12_command_list_IASetVertexBuffers().
2016-10-10 17:25:55 +02:00
Józef Kucia
0c88b053da
include: Fix alignment for INT64/UINT64 in 32-bit code.
2016-10-10 17:12:22 +02:00
Józef Kucia
e84ca0af5d
tests: Use InterlockedIncrement() for test counters.
...
This should be useful for multithreaded tests.
2016-10-10 11:22:50 +02:00
Józef Kucia
ed033b40d0
libs/vkd3d: Fix InterlockedIncrement() and InterlockedDecrement() signatures.
2016-10-10 11:22:50 +02:00
Józef Kucia
5f3d5a1263
tests: Include vkd3d_common.h in vkd3d_test.h.
2016-10-10 11:22:50 +02:00
Józef Kucia
eb05a388e1
include: Avoid using variable names starting with "__".
...
Names that begin with "__" are reserved.
2016-10-10 11:22:50 +02:00
Józef Kucia
59d466af2d
libs/vkd3d: Use PRIx64 to print 64-bit integers.
2016-10-10 11:22:50 +02:00
Józef Kucia
6330c9f46a
tests: Properly print 64-bit unsigned integers.
...
Use PRIu64 since we use C99.
2016-10-10 11:22:50 +02:00
Józef Kucia
858e0c79f1
include: Add public header for libvkd3d-utils.
2016-10-07 13:26:39 +02:00
Józef Kucia
0c1432e671
libs/vkd3d: Move D3D12CreateDevice() to libvkd3d-utils.
2016-10-07 13:26:39 +02:00
Józef Kucia
ef6a3d78a2
libs/vkd3d: Pass signal event function pointer to vkd3d_create_device().
2016-10-07 13:26:39 +02:00
Józef Kucia
544c2668ca
libs/vkd3d: Introduce vkd3d_create_device().
...
We need to pass additional parameters to libvkd3d during initialization.
2016-10-07 13:26:39 +02:00
Józef Kucia
49cac8005c
libs/vkd3d-common: Add convenience library for shared code.
2016-10-07 13:26:39 +02:00
Józef Kucia
733f720ee4
libs/vkd3d: Add simple replacement for event objects.
...
This naming convention for exported functions is used to be consistent
with other D3D12* functions().
2016-10-05 15:56:27 +02:00
Henri Verbeet
cd37442fd0
tests: ...but keep regular builds working.
2016-09-30 10:00:11 +02:00
Henri Verbeet
dc7504c7fc
build: Unicode crossbuilds.
2016-09-30 09:41:12 +02:00
Józef Kucia
e2a72ee610
include: Fix typos.
2016-09-29 10:46:42 +02:00
Józef Kucia
bce85d84ed
include: Make test output less verbose.
2016-09-28 09:42:49 +02:00
Józef Kucia
3a5deb7286
include: Add support for marking tests as todo.
2016-09-28 09:42:49 +02:00
Józef Kucia
ef80cdedc3
libs/vkd3d: Make vkd3d debug compatible with MinGW headers.
2016-09-28 09:42:49 +02:00
Józef Kucia
821d978950
include: Add min() & max() macros.
2016-09-28 09:42:49 +02:00
Józef Kucia
e43af70de1
libs/vkd3d: Disable nameless unions.
2016-09-27 12:13:37 +02:00
Józef Kucia
abb169678c
include: Simplify typedefs for Windows data types.
...
This fixes compiler warnings when compiling 32-bit version of libvkd3d.
2016-09-21 17:46:03 +02:00
Józef Kucia
6bebee9a09
build: Add "crosstest" target for tests cross-compilation.
2016-09-21 12:57:24 +02:00
Józef Kucia
978584a238
tests: Add test for D3D12CreateDevice().
2016-09-21 12:57:24 +02:00
Józef Kucia
d6e2fe97a4
libs/vkd3d: Add ID3D12Device interface stub.
2016-09-21 12:57:24 +02:00
Józef Kucia
3d10019103
include: Add definitions required by COM interfaces.
2016-09-21 12:57:24 +02:00
Józef Kucia
7505ac2439
include: Add dummy headers for files generated by widl.
2016-09-21 12:57:24 +02:00
Józef Kucia
c5e3e7d1c3
include: Add d3d12.idl.
2016-09-21 12:57:24 +02:00
Józef Kucia
7fa6075749
include: Define IUnknown.
2016-09-21 12:57:24 +02:00
Józef Kucia
58cacc0c41
include: Add header file for basic DXGI definitions.
2016-09-21 12:57:24 +02:00
Józef Kucia
449b2010b0
include: Add minimal windows.h replacement.
2016-09-21 12:57:24 +02:00
Józef Kucia
9f3ffd7287
build: Add initial Autotools files.
2016-09-21 09:05:15 +02:00