Commit Graph

90 Commits

Author SHA1 Message Date
Józef Kucia 7fa3f2ed1a libs/vkd3d: Add FIXME comment for GPU VA allocator. 2017-10-18 11:54:56 +02:00
Józef Kucia 5b5cffcf84 libs/vkd3d: Implement creating root signature from bytecode. 2017-10-10 16:02:09 +02:00
Henri Verbeet 53654baab9 libs/vkd3d: Support D3D12_FEATURE_FORMAT_SUPPORT in d3d12_device_CheckFeatureSupport(). 2017-10-10 13:09:32 +02:00
Józef Kucia fecc94cebc libs/vkd3d: Add helpers for dereferencing descriptor handles. 2017-10-04 13:55:33 +02:00
Józef Kucia 8cb004bdc4 libs/vkd3d: Create single default sampler per device. 2017-09-21 15:12:13 +02:00
Józef Kucia 90cf804d9b libs/vkd3d: Use Vulkan pipeline cache for graphics pipelines. 2017-09-19 10:58:04 +02:00
Józef Kucia d2e7fcdf77 libs/vkd3d: Add environment variable for disabling Vulkan extensions.
It's useful for testing, e.g. VKD3D_DISABLE_EXTENSIONS=VK_KHR_push_descriptor
2017-09-18 15:40:42 +02:00
Józef Kucia 67641a8999 libs/vkd3d: Initialize device feature options in vkd3d_init_device_caps(). 2017-09-14 15:38:19 +02:00
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 a77376121d libs/vkd3d: Require VK_KHR_shader_draw_parameters device extension. 2017-09-12 17:42:42 +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 603a44fb46 libs/vkd3d: Implement d3d12_device_CopyDescriptors().
There is no easy way to duplicate or copy Vulkan views and samplers.
Therefore, we use reference counting for Vulkan views and samplers when
copying them between descriptor heaps.
2017-09-04 18:33:09 +02:00
Józef Kucia d8847aa462 libs/vkd3d: Fix texture region copying for miplevels other than 0. 2017-08-31 09:42:50 +02:00
Józef Kucia 0dca9909d9 libs/vkd3d: Copy single layer for array textures in d3d12_command_list_CopyTextureRegion(). 2017-08-31 09:42:50 +02:00
Henri Verbeet f1aa742569 libs/vkd3d: Support D3D12_FEATURE_D3D12_OPTIONS in d3d12_device_CheckFeatureSupport(). 2017-08-30 18:11:38 +02:00
Henri Verbeet 6f14c77a7a libs/vkd3d: Explicitly initialise the queue timestamp bits variables in vkd3d_create_vk_device().
Avoids -Wmaybe-uninitialized warnings with gcc 4.9.2. More recent
versions of gcc are able to figure it out by themselves.
2017-08-30 18:11:34 +02:00
Józef Kucia f8ef6630df libs/vkd3d: Implement d3d12_device_CopyDescriptorsSimple(). 2017-08-30 16:41:41 +02:00
Henri Verbeet 3019a3e8f1 libs/vkd3d: Support both native and Win32 wchar_t. 2017-08-29 16:36:05 +02:00
Sven Hesse 5b6bd40464 libs/vkd3d: Cache the number of valid bits in queue timestamp queries. 2017-08-29 15:16:41 +02:00
Henri Verbeet e228d776be libs/vkd3d: Fix the d3d12_query_heap_create() argument order. 2017-08-28 20:37:03 +02:00
Henri Verbeet b000952e4f libs/vkd3d: Implement indirect draws. 2017-08-28 19:26:31 +02:00
Sven Hesse 79cbc900bc libs/vkd3d: Create Vulkan Query Pools for D3D12 Query Heaps. 2017-08-23 16:18:15 +02:00
Józef Kucia 08284f0f85 libs/vkd3d: Fix draw calls with no framebuffer attachments. 2017-08-18 17:08:56 +02:00
Józef Kucia 1d5b8b7d32 libs/vkd3d: Implement depth/stencil resource views. 2017-08-16 17:38:33 +02:00
Józef Kucia 67697f2b8f libs/vkd3d: Factor out vkd3d_enable_extensions() function. 2017-08-16 17:38:33 +02:00
Józef Kucia 043d4d0acf libs/vkd3d: Factor out vkd3d_check_extensions() function. 2017-08-16 17:38:33 +02:00
Józef Kucia 4a767a8f11 libs/vkd3d: Enable VK_KHR_get_physical_device_properties2 instance extension.
Required for VK_KHR_push_descriptor. Validation layers complain when
required extensions are not enabled.
2017-08-11 13:58:04 +02:00
Józef Kucia 9b54e0df17 libs/vkd3d: Add VK_KHR_push_descriptor extension. 2017-08-11 13:58:04 +02:00
Józef Kucia e01cc64d82 libs/vkd3d: Fix d3d12_device_GetCopyableFootprints() for 3D textures. 2017-08-09 19:38:06 +02:00
Józef Kucia 624699f5e6 libs/vkd3d: Add FIXME comment about sharing D3D12_RESOURCE_DESC validation code. 2017-08-09 19:38:06 +02:00
Sven Hesse 4d540d5b45 libs/vkd3d: Delete DXGI_FORMAT_UNKNOWN from the formats table again.
Put it into a local in GetCopyableFootprints() instead.
2017-08-09 17:15:05 +02:00
Sven Hesse ae63b4f0a5 libs/vkd3d: Implement GetCopyableFootprints for DIMENSION_TEXTURE3D. 2017-08-09 15:16:08 +02:00
Sven Hesse eebad15d62 libs/vkd3d: Implement GetCopyableFootprints for DIMENSION_TEXTURE1D. 2017-08-09 15:11:20 +02:00
Sven Hesse 3353643772 libs/vkd3d: Implement GetCopyableFootprints for DIMENSION_BUFFER. 2017-08-09 15:08:52 +02:00
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 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 6629301ece libs/vkd3d: Implement GetCopyableFootprints() for compressed formats. 2017-08-02 14:04:31 +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 5ac8dbfc64 libs/vkd3d: Implement d3d12_device_CreateUnorderedAccessView(). 2017-07-25 12:50:14 +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 1c79831873 libs/vkd3d: Implement d3d12_device_CreateShaderResourceView(). 2017-07-14 13:44:35 +02:00
Józef Kucia f4f803c7bb libs/vkd3d: Add initial implementation for d3d12_device_GetCopyableFootprints(). 2017-07-13 11:56:30 +02:00
Józef Kucia f3d297574a libs/vkd3d: Implement d3d12_device_CreateSampler(). 2017-07-12 13:10:44 +02:00
Józef Kucia d515e3d047 libs/vkd3d: Require VK_KHR_maintenance1 device extension. 2017-06-21 22:00:19 +02:00