Commit Graph

976 Commits

Author SHA1 Message Date
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 602f9780f8 libs/vkd3d-shader: Implement "sample" interpolation qualifier. 2017-09-14 15:38:19 +02:00
Józef Kucia 61703a53d2 tests: Add test for resolving non-issued queries data. 2017-09-14 14:57:09 +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 334c532401 libs/vkd3d: Implement d3d12_command_list_CopyResource() for buffers. 2017-09-14 14:57:09 +02:00
Józef Kucia 65774910bd tests: Remove excess newline. 2017-09-14 14:57:09 +02:00
Józef Kucia 6c7ab64652 tests: Add test for SV_InstanceID. 2017-09-12 17:42:42 +02:00
Józef Kucia 6b757f3002 libs/vkd3d-shader: Subtract BaseInstance from InstanceIndex.
Depends on SPV_KHR_shader_draw_parameters extension.
2017-09-12 17:42:42 +02:00
Józef Kucia a77376121d libs/vkd3d: Require VK_KHR_shader_draw_parameters device extension. 2017-09-12 17:42:42 +02:00
Józef Kucia 6a026dc7bb tests: Add test for dispatching zero thread groups. 2017-09-12 17:42:42 +02:00
Józef Kucia c9b561e851 tests: Add test for div instruction. 2017-09-12 17:42:42 +02:00
Józef Kucia c5ba705b9f tests: Add test for round_z instruction. 2017-09-12 17:42:42 +02:00
Józef Kucia 2966f019b0 tests: Add test for D3D12_APPEND_ALIGNED_ELEMENT. 2017-09-11 22:35:16 +02:00
Józef Kucia 2425e2939a libs/vkd3d: Match input layout elements with vertex shader inputs. 2017-09-11 22:35:16 +02:00
Józef Kucia b19fe74284 libs/vkd3d-shader: Export shader signature parsing. 2017-09-11 22:35:16 +02:00
Józef Kucia b61c785bd0 libs/vkd3d-shader: Implement SV_InstanceID. 2017-09-11 22:35:16 +02:00
Józef Kucia cd99601b3c libs/vkd3d: Implement offset computation for D3D12_APPEND_ALIGNED_ELEMENT. 2017-09-11 22:35:16 +02:00
Józef Kucia 72b835e0bf tests: Add test for binding overlapping heap descriptor ranges. 2017-09-11 22:35:16 +02:00
Józef Kucia 8e802ed0af libs/vkd3d: Update descriptor table ranges only with matching descriptor types. 2017-09-11 22:35:16 +02:00
Józef Kucia a78fe60ef8 Revert "libs/vkd3d: Skip unbound UAV counters."
This reverts commit d9bc635d1a.

We should not need to handle this invalid behavior. It was triggered
by the bug in d3d12_command_list_update_descriptor_table().
2017-09-11 22:35:16 +02:00
Józef Kucia 1cde37d341 libs/vkd3d: Fix updating descriptor sets for descriptor tables with gaps.
Fixes 9afaed918d.
2017-09-11 22:35:16 +02:00
Józef Kucia 32966338df libs/vkd3d: Get rid of UAV counter count from d3d12_pipeline_state. 2017-09-08 15:30:48 +02:00
Józef Kucia e8868affc0 libs/vkd3d: Clear UAV counters dirty mask after updating descriptors. 2017-09-08 15:30:48 +02:00
Józef Kucia 09658e3b9b build: Use __builtin_popcount() if available. 2017-09-08 15:04:30 +02:00
Józef Kucia d9bc635d1a libs/vkd3d: Skip unbound UAV counters. 2017-09-08 15:04:30 +02:00
Józef Kucia 2a6f244f36 tests: Add test for UAV counters. 2017-09-08 15:04:30 +02:00
Józef Kucia 9afaed918d libs/vkd3d: Bind descriptor set for UAV counters. 2017-09-08 15:04:30 +02:00
Józef Kucia 19dc6c412e libs/vkd3d: Constify root signature pointers. 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 37f4c9d2a3 libs/vkd3d: Print only TRACE() messages for not initialized descriptors.
A descriptor do not have to be initialized if it is not used by shaders.
2017-09-07 17:48:43 +02:00
Józef Kucia 30cd4cc59f libs/vkd3d-shader: Always declare format for raw/structured image variables. 2017-09-07 17:48:43 +02:00
Józef Kucia 6dfb4ad520 libs/vkd3d-shader: Mark imm_atomic_alloc as UAV read instruction. 2017-09-07 17:48:43 +02:00
Józef Kucia 4af15035df libs/vkd3d-shader: Improve some debug messages. 2017-09-07 17:48:43 +02:00
Józef Kucia 3191e1eaa9 libs/vkd3d-shader: Implement UAV counters instructions. 2017-09-07 17:15:54 +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 bd0c886281 libs/vkd3d: Store push constant ranges in root signatures.
In prep for UAV counters support.
2017-09-07 17:15:54 +02:00
Józef Kucia ce8a0290b4 libs/vkd3d: Factor out vkd3d_create_pipeline_layout() function. 2017-09-07 17:15:54 +02:00
Józef Kucia 22b019137b libs/vkd3d: Factor out vkd3d_create_descriptor_set_layout() function. 2017-09-07 17:15:53 +02:00
Józef Kucia f587670445 libs/vkd3d: Drop support for SPIR-V shaders. 2017-09-07 17:15:53 +02:00
Józef Kucia 495bd6fddc libs/vkd3d: Create Vulkan buffer views for UAV counter resources. 2017-09-07 17:15:53 +02:00
Józef Kucia 9d899b3f06 tests: Add test for updating descriptors after closing command list. 2017-09-05 11:53:55 +02:00
Józef Kucia 6f2814532b tests: Add test for updating descriptor tables. 2017-09-05 11:53:55 +02:00
Józef Kucia 23150f6050 libs/vkd3d: Update Vulkan descriptor sets just before draw call. 2017-09-05 11:53:55 +02:00
Józef Kucia 36d7578093 libs/vkd3d: Move descriptor set functions closer to top of file.
In prep for the next commit.
2017-09-05 11:53:55 +02:00
Józef Kucia 759117c798 tests: Add test for root signature limits. 2017-09-05 11:53:55 +02:00
Józef Kucia 9eee65c3ab libs/vkd3d: Validate root signature size. 2017-09-05 11:53:55 +02:00
Józef Kucia 579a8bc3e0 tests: Also test copying uninitialized descriptors. 2017-09-04 18:33:09 +02:00
Józef Kucia 4c017cbfdc tests: Add test for copying descriptors. 2017-09-04 18:33:09 +02:00