Commit Graph

544 Commits

Author SHA1 Message Date
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
Henri Verbeet abff100287 libs/vkd3d: Add DXGI_FORMAT_R16G16B16A16_UINT. 2017-07-27 16:25:34 +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 7aaa801768 libs/vkd3d: Allow root signatures with no descriptors.
A root signature can have no descriptors when it is empty,
or it has only root constants.
2017-07-27 14:19:41 +02:00
Józef Kucia bb80c759fc libs/vkd3d: Introduce d3d12_root_signature_cleanup() helper function.
Reduces code duplication.
2017-07-27 14:19:41 +02:00
Józef Kucia e3d3819789 libs/vkd3d: Fix copy-paste error in d3d12_root_signature_init(). 2017-07-26 16:09:40 +02:00
Józef Kucia 1589ce7682 libs/vkd3d: Fix Vulkan bindings assignment.
Fixes 6d569fcbc6,
2017-07-26 14:50:39 +02:00
Józef Kucia 2ba76ceb02 tests: Do not assign specific shader registers in test_texture().
It is not needed since we have a basic mapping for D3D12 shader
registers.
2017-07-26 14:50:39 +02:00
Józef Kucia a2e38b5672 libs/vkd3d: Set VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT only if width and height are equal. 2017-07-26 13:45:25 +02:00
Józef Kucia 6d569fcbc6 libs/vkd3d: Assign consecutive Vulkan bindings for D3D12 descriptors. 2017-07-26 13:45:25 +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
Józef Kucia d39d0e4c9f libs/vkd3d: Fix memory leak in d3d12_root_signature_init(). 2017-07-25 18:47:42 +02:00
Sven Hesse 3328be8c87 libs/vkd3d: Unroll descriptor tables and fill in push constants 2017-07-25 17:41:58 +02:00
Józef Kucia ac9abe7740 tests: Avoid unused shader outputs.
Fixes Vulkan validation layers performance warnings.
2017-07-25 14:23:27 +02:00
Józef Kucia 6c174beb4b libs/vkd3d-shader: Use component types from input signatures for shader inputs.
Fixes Vulkan validation layers errors.
2017-07-25 14:23:27 +02:00
Józef Kucia 5a2ebc62f6 libs/vkd3d-shader: Use component types from output signatures for shader outputs.
Fixes Vulkan validation layers errors.
2017-07-25 14:23:27 +02:00
Józef Kucia 97e79e28cf tests: Add test for typed buffer UAVs. 2017-07-25 12:50:14 +02:00
Józef Kucia bb18c171bf libs/vkd3d: Implement d3d12_command_list_Dispatch(). 2017-07-25 12:50:14 +02:00
Józef Kucia 47cb8ba80f libs/vkd3d: Bind compute pipeline. 2017-07-25 12:50:14 +02:00
Józef Kucia 982075db60 libs/vkd3d: Partially implement d3d12_command_list_SetComputeRootDescriptorTable(). 2017-07-25 12:50:14 +02:00
Józef Kucia 5ac8dbfc64 libs/vkd3d: Implement d3d12_device_CreateUnorderedAccessView(). 2017-07-25 12:50:14 +02:00
Józef Kucia 73cdf0164a libs/vkd3d: Implement d3d12_command_list_SetComputeRootSignature(). 2017-07-25 12:50:14 +02:00
Józef Kucia 3f4ef37b88 libs/vkd3d: Introduce d3d12_command_list_allocate_descriptor_set() helper function. 2017-07-25 12:50:14 +02:00
Józef Kucia 055b27da12 libs/vkd3d: Rename current_descriptor_set to graphics_descriptor_set. 2017-07-25 12:50:14 +02:00
Józef Kucia d0a4238e39 libs/vkd3d: Allocate Vulkan descriptors for UAVs. 2017-07-25 12:50:14 +02:00
Józef Kucia bd437d547f libs/vkd3d: Add support for compute command allocators. 2017-07-25 11:22:34 +02:00
Józef Kucia a0e82064dc libs/vkd3d-shader: Mask coordinates for OpImageWrite instructions. 2017-07-24 19:43:50 +02:00
Józef Kucia 046afde8db libs/vkd3d-shader: Store resource type info in table. 2017-07-24 19:43:50 +02:00
Józef Kucia aa3465ac83 libs/vkd3d-shader: Fix bitcasts for shader inputs. 2017-07-24 19:43:50 +02:00
Józef Kucia c71d609fb6 libs/vkd3d-shader: Fix write mask for vThreadIDInGroupFlattened. 2017-07-24 19:43:50 +02:00
Józef Kucia 6bbd6c948a libs/vkd3d-shader: Translate store_uav_typed instructions. 2017-07-24 19:43:50 +02:00
Józef Kucia 4746833a6f libs/vkd3d-shader: Translate dcl_uav_typed instructions. 2017-07-24 19:43:50 +02:00
Józef Kucia 00606b7dff libs/vkd3d: Fix logic for choosing compute-only queue family index. 2017-07-21 22:29:12 +02:00
Józef Kucia 23fa2ca599 tests: Add simple test for creating compute command queue. 2017-07-21 22:29:12 +02:00
Józef Kucia d35ffe53ad libs/vkd3d: Initialize device->compute_queue_family_index.
Fixes dadce84a4b.
2017-07-21 22:29:12 +02:00
Sven Hesse dadce84a4b libs/vkd3d: Create a compute queue family. 2017-07-21 15:24:57 +02:00