202 Commits

Author SHA1 Message Date
Józef Kucia
074513dc4d libs/vkd3d: Add support for sampler descriptors in root descriptor tables. 2017-08-04 17:06:33 +02:00
Józef Kucia
0a0e29fbbf libs/vkd3d: Add support for multiple descriptors in root descriptor tables. 2017-08-04 17:06:33 +02:00
Józef Kucia
fa0a2eab21 libs/vkd3d: Store Vulkan bindings for descriptor table root parameters in root signature. 2017-08-04 17:06:33 +02:00
Józef Kucia
db3a112fb5 libs/vkd3d: Add support for CBV descriptors in d3d12_command_list_set_descriptor_table(). 2017-08-04 17:06:33 +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
fb4e86b292 libs/vkd3d: Implement d3d12_command_list_SetComputeRootConstantBufferView(). 2017-08-02 15:30:15 +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
85dc44e4ba libs/vkd3d: Remove double semicolons. 2017-07-28 12:56:18 +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
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
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
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
bd437d547f libs/vkd3d: Add support for compute command allocators. 2017-07-25 11:22:34 +02:00
Sven Hesse
dadce84a4b libs/vkd3d: Create a compute queue family. 2017-07-21 15:24:57 +02:00
Józef Kucia
02506b24c4 libs/vkd3d: Partially implement d3d12_command_list_SetGraphicsRootDescriptorTable().
A very naive implementation. Mainly to unblock some shader translation
work.
2017-07-17 16:25:29 +02:00
Józef Kucia
2dfbc88a89 libs/vkd3d: Implement copying from buffers to images. 2017-07-14 13:44:35 +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
Józef Kucia
be9849ace4 libs/vkd3d: Avoid race condition when destroying fences. 2017-06-26 17:03:31 +02:00
Józef Kucia
ae8d869013 libs/vkd3d: Use VK_NULL_HANDLE instead of NULL.
Fixes a compiler warning for 32-bit builds.
2017-06-26 17:03:31 +02:00
Józef Kucia
9a59184e9f libs/vkd3d: Reset current root signature in d3d12_command_list_Reset(). 2017-06-23 22:24:33 +02:00
Józef Kucia
532da7d4e1 libs/vkd3d: Clear current descriptor set when descriptor pool is destroyed. 2017-06-23 22:24:33 +02:00
Józef Kucia
fa52702774 libs/vkd3d: Always update current root signature in d3d12_command_list_SetGraphicsRootSignature(). 2017-06-23 22:24:33 +02:00
Józef Kucia
c0b5cf3df6 libs/vkd3d: Avoid updating descriptor sets bound to recording command buffer.
Fixes GPU memory page faults in gears demo on Nvidia.

The Vulkan spec says:

  "The descriptor set contents bound by a call to
  vkCmdBindDescriptorSets may be consumed during host execution of the
  command, or during shader execution of the resulting draws, or any
  time in between. Thus, the contents must not be altered (overwritten
  by an update command, or freed) between when the command is recorded
  and when the command completes executing on the queue."
2017-06-23 22:24:33 +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
ec4ab656df libs/vkd3d: Add trailing newline to WARN() message in d3d12_command_list_begin_render_pass(). 2017-06-16 23:29:37 +02:00
Józef Kucia
84889646f6 Update license to LGPL v2.1. 2017-06-16 22:11:21 +02:00
Józef Kucia
a680fdd91b libs/vkd3d: Implement d3d12_command_list_OMSetStencilRef(). 2017-03-05 22:23:37 +01:00
Henri Verbeet
cd4f4a2976 libs/vkd3d: Implement d3d12_command_list_SetGraphicsRootConstantBufferView(). 2016-11-13 00:51:52 +01:00
Henri Verbeet
0b2702d96e libs/vkd3d: Implement d3d12_command_list_SetGraphicsRootSignature(). 2016-11-13 00:45:25 +01:00
Henri Verbeet
d97df34093 libs/vkd3d: Implement depth/stencil pipeline state attachments. 2016-11-13 00:42:31 +01:00
Henri Verbeet
fa4072a892 libs/vkd3d: Implement d3d12_command_list_DrawIndexedInstanced(). 2016-11-10 16:49:22 +01: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
Henri Verbeet
2e10db6f8e libs/vkd3d: Add support for D3D12_INPUT_CLASSIFICATION_PER_INSTANCE_DATA. 2016-11-10 16:41:01 +01:00
Józef Kucia
4aab207b56 libs/vkd3d: Fix initial state transtion for swapchain images. 2016-10-25 13:23:18 +02:00
Józef Kucia
b9da47ebe2 libs/vkd3d: Implement naive initial state transition.
This is not a complete solution yet. In order to allow recording
multiple command list and executing them in any order we have to fix up
the current image layout when submitting a command list instead of when
a command list is being recorded.
2016-10-25 13:23:18 +02:00
Józef Kucia
0d1550788e libs/vkd3d: Rename variables in d3d12_command_list_CopyBufferRegion(). 2016-10-25 13:23:18 +02:00
Józef Kucia
ec23554b54 libs/vkd3d: Fix memory leak in d3d12_command_allocator_Release(). 2016-10-24 15:43:12 +02:00