Commit Graph

472 Commits

Author SHA1 Message Date
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