Commit Graph

779 Commits

Author SHA1 Message Date
Józef Kucia 0859b94833 libs/vkd3d: Implement d3d12_device_CreateConstantBufferView(). 2017-08-04 17:06:33 +02:00
Sven Hesse 6de74f6cc3 libs/vkd3d: Don't calculate footprints for unaligned compressed textures. 2017-08-04 14:36:19 +02:00
Sven Hesse a0675d1ba7 libs/vkd3d: Calculate footprint total size using row count, not height. 2017-08-04 14:35:02 +02:00
Sven Hesse 6165df4c5c tests: Don't test GetCopyableFootprints on unaligned compressed textures.
Compressed texture sizes must be correctly aligned to the block size.
2017-08-04 13:52:26 +02:00
Sven Hesse 6e601b1d0f tests: Calculate texture total size using row count, not height.
Because the row_pitch and row_size sizes are in terms of rows, not
texel lines. Otherwise, the calculation for compressed textures is
off.
2017-08-04 13:49:47 +02:00
Sven Hesse 3bf82279e9 tests: create_root_signature() can also return E_INVALIDARG.
The Nvidia drivers on Windows do that.
2017-08-03 16:31:57 +02:00
Sven Hesse ea652cb0e4 tests: Create RTV and DSV descriptor heaps with FLAG_NONE.
FLAG_SHADER_VISIBLE isn't supposed to apply to RTV and DSV heaps.
2017-08-03 14:41:34 +02:00
Józef Kucia 573460550e libs/vkd3d: Do not assume CBV root parameter index is equal to Vulkan descriptor binding. 2017-08-02 15:30:15 +02:00
Józef Kucia c9b05f68b5 tests: Add test for accessing constant buffers from compute shaders. 2017-08-02 15:30:15 +02:00
Józef Kucia fb4e86b292 libs/vkd3d: Implement d3d12_command_list_SetComputeRootConstantBufferView(). 2017-08-02 15:30:15 +02:00
Józef Kucia ef0f90c0c7 libs/vkd3d: Factor out vkd3d_create_buffer_view() function. 2017-08-02 15:30:15 +02:00
Józef Kucia de2024d235 libs/vkd3d: Do not try to create buffer views for block-compressed formats. 2017-08-02 15:30:15 +02:00
Józef Kucia a8b64aeede tests: Add test for creating unordered access views. 2017-08-02 15:30:15 +02:00
Sven Hesse 8f250bf471 tests: Add tests for GetCopyableFootprints() with compressed formats. 2017-08-02 14:04:35 +02:00
Sven Hesse 6629301ece libs/vkd3d: Implement GetCopyableFootprints() for compressed formats. 2017-08-02 14:04:31 +02:00
Sven Hesse 47b92c3d37 libs/vkd3d: Add compressed texture formats. 2017-08-02 14:04:26 +02:00
Sven Hesse 1decba1a99 libs/vkd3d: Add block size information to the texture format array. 2017-08-02 14:03:39 +02:00
Józef Kucia ab63423c80 libs/vkd3d: Factor out vkd3d_create_texture_view() function. 2017-08-01 16:56:44 +02:00
Józef Kucia 26133bd801 tests: Add test for nested switch instructions. 2017-08-01 13:55:49 +02:00
Józef Kucia eb4c98db17 libs/vkd3d-shader: Add support for switch breaks nested in conditional branches. 2017-08-01 13:55:49 +02:00
Józef Kucia 6b93e6ce99 libs/vkd3d-shader: Add support for switch fall-through blocks. 2017-08-01 13:55:49 +02:00
Józef Kucia fbeaf0ba95 libs/vkd3d-shader: Make sure that inserted chunks are sorted.
The list is expected to be empty or very small so insertion sort should
be fine.
2017-08-01 13:55:49 +02:00
Józef Kucia 3effb4b18c libs/vkd3d-shader: Get rid of artificial limit for switch case blocks. 2017-08-01 11:38:10 +02:00
Józef Kucia cd75aab7ba libs/vkd3d: Factor out d3d12_root_signature_init_push_constants() helper function. 2017-08-01 10:51:45 +02:00
Józef Kucia 40cb21353e libs/vkd3d: Extract descriptors counting to helper function. 2017-08-01 10:51:45 +02:00
Józef Kucia e7d3897797 tests: Add test for D3D12_SHADER_VISIBILITY_ALL root constants. 2017-08-01 10:51:45 +02:00
Józef Kucia ae8d8036c6 libs/vkd3d-shader: Implement switch control flow instructions. 2017-08-01 10:51:45 +02:00
Józef Kucia 5061dbaf0c libs/vkd3d-shader: Add mechanism for inserting words into SPIR-V streams.
Allows inserting SPIR-V instructions at arbitrary locations in SPIR-V
streams.
2017-08-01 10:51:45 +02:00
Józef Kucia c1c94e248c libs/vkd3d-shader: Allow multiple push constant buffers. 2017-08-01 10:51:45 +02:00
Józef Kucia 3e91bc7c2d libs/vkd3d: Fix push constant ranges allocation.
Any two push constant ranges must not include the same stage.
2017-08-01 10:51:45 +02:00
Józef Kucia 94b616d670 tests: Add test for multiple root constants. 2017-08-01 10:51:45 +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 aa5d48eec4 demos: Get rid of handwritten GLSL shaders. 2017-07-28 15:26:09 +02:00
Józef Kucia fec337a03c libs/vkd3d-shader: Fix memory leak in vkd3d_dxbc_compiler_destroy(). 2017-07-28 12:56:18 +02:00
Józef Kucia 85dc44e4ba libs/vkd3d: Remove double semicolons. 2017-07-28 12:56:18 +02:00
Józef Kucia 9725eb3763 libs/vkd3d-shader: Remove double semicolons. 2017-07-28 12:56:18 +02:00
Józef Kucia 6478dea0d1 tests: Add test for GPU virtual addresses. 2017-07-28 12:56:18 +02:00
Józef Kucia 4d7a86295d tests: Add basic test for root constants. 2017-07-28 10:19:37 +02:00
Józef Kucia e074c30dc7 libs/vkd3d: Pass push constants mapping to shader compiler. 2017-07-28 10:19:37 +02:00
Józef Kucia 56b68c486c libs/vkd3d: Implement d3d12_command_list_SetGraphicsRoot32BitConstants(). 2017-07-28 10:19:37 +02:00
Józef Kucia 33eae49eda libs/vkd3d: Implement d3d12_command_list_SetComputeRoot32BitConstants(). 2017-07-28 10:19:37 +02:00
Józef Kucia 21e2633b10 libs/vkd3d: Implement d3d12_command_list_SetGraphicsRoot32BitConstant(). 2017-07-28 10:19:37 +02:00
Józef Kucia 72f723522e libs/vkd3d: Implement d3d12_command_list_SetComputeRoot32BitConstant(). 2017-07-28 10:19:37 +02:00
Józef Kucia 4d8dea80ae tests: Add test for overlapping root descriptors. 2017-07-27 17:35:24 +02:00
Józef Kucia dc598ccbc8 tests: Add test for creating root signatures with root constants. 2017-07-27 17:35:24 +02:00
Henri Verbeet 605a02274e libs/vkd3d: Allocate GPU virtual addresses for resources.
Direct3D 12 resources, buffers in particular, are bound to the pipeline
by their GPU virtual address. In Vulkan, these addresses are not visible
to the application. We previously handled this by returning the VkBuffer
handle as virtual address, but this can't work when the application
binds anything other than the resource's base GPU VA. Instead, we
allocate ranges of GPU address space and associate resources with it.

This uses the (naive) approach of simply allocating subsequent ranges,
and never reclaiming them. Eventually we'll have to revisit that.
2017-07-27 16:28:46 +02:00
Henri Verbeet 1acd3d44b1 Implement d3d12_device_CreateQueryHeap(). 2017-07-27 16:28:29 +02:00
Henri Verbeet e9046a81cc Implement d3d12_device_CreateCommandSignature(). 2017-07-27 16:28:24 +02:00
Henri Verbeet 863a8f3f6f libs/vkd3d: Add DXGI_FORMAT_BC3_UNORM_SRGB. 2017-07-27 16:27:41 +02:00
Henri Verbeet 2a3d121c74 libs/vkd3d: Add DXGI_FORMAT_R8_SNORM. 2017-07-27 16:26:36 +02:00