Commit Graph

331 Commits

Author SHA1 Message Date
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
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
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
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
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
Józef Kucia
ea6b35ef58 libs/vkd3d-shader: Translate udiv instructions. 2017-07-21 14:14:42 +02:00
Józef Kucia
c73b201110 libs/vkd3d-shader: Do not print FIXMEs for known global flags. 2017-07-21 14:14:42 +02:00
Józef Kucia
95b6b7b91b libs/vkd3d-shader: Clean up vkd3d_dxbc_compiler_emit_control_flow_instruction(). 2017-07-21 14:14:42 +02:00
Józef Kucia
18c06c8022 libs/vk3d-shader: Translate break instructions for loops. 2017-07-20 13:32:40 +02:00
Józef Kucia
1cbf6ebddf libs/vk3d-shader: Fix return instructions in if/else blocks. 2017-07-20 13:32:40 +02:00
Józef Kucia
2022702858 libs/vkd3d-shader: Translate breakc instructions. 2017-07-20 13:32:40 +02:00
Józef Kucia
98c307cdbc libs/vkd3d-shader: Implement loops. 2017-07-20 13:32:40 +02:00
Józef Kucia
f6f70d8c02 libs/vkd3d-shader: Add support for nested control flow. 2017-07-20 13:32:40 +02:00
Józef Kucia
1e9a38005b libs/vkd3d-shader: Use vkd3d_spirv_build_once mechanism for SPIR-V constants. 2017-07-19 14:45:54 +02:00
Józef Kucia
ab78c23170 libs/vkd3d-shader: Translate round_{ni,pi} instructions. 2017-07-19 13:53:59 +02:00
Józef Kucia
fed8155d08 libs/vkd3d-shader: Translate rcp instructions. 2017-07-19 13:53:59 +02:00
Józef Kucia
a4e5d06cac libs/vkd3d-shader: Translate log instructions. 2017-07-19 13:53:59 +02:00
Józef Kucia
87f34094db libs/vkd3d-shader: Translate imul instructions. 2017-07-19 13:53:59 +02:00
Józef Kucia
b75022df72 libs/vkd3d-shader: Translate more integer comparison instructions. 2017-07-19 13:53:59 +02:00