Commit Graph

1828 Commits

Author SHA1 Message Date
Henri Verbeet
2e10db6f8e libs/vkd3d: Add support for D3D12_INPUT_CLASSIFICATION_PER_INSTANCE_DATA. 2016-11-10 16:41:01 +01:00
Henri Verbeet
4142c477ef build: Add some standard files. 2016-10-28 12:34:12 +02: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
b011f0b972 libs/vkd3d: Introduce resource flags. 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
Józef Kucia
e42a9da943 libs/vkd3d: Use VK_KHR_*_EXTENSION_NAME defines. 2016-10-24 15:28:08 +02:00
Henri Verbeet
fa5b972371 demos/triangle: Add a demo program. 2016-10-24 13:57:05 +02:00
Henri Verbeet
6cbe8626c2 libs/vkd3d: Add DXGI_FORMAT_B8G8R8A8_UNORM_SRGB. 2016-10-24 13:57:05 +02:00
Henri Verbeet
6babf11214 libs/vkd3d: Export a function to get the Vulkan format from a DXGI format. 2016-10-24 13:57:05 +02:00
Henri Verbeet
b760b52859 libs/vkd3d: Export a function to get the Vulkan physical device from a d3d12 device. 2016-10-24 13:57:05 +02:00
Henri Verbeet
c79584ed92 libs/vkd3d: Export a function to get the Vulkan queue family index from a d3d12 command queue. 2016-10-24 13:57:05 +02:00
Józef Kucia
eea8617b9b libs/vkd3d: GPU virtual address for texture resources is always 0. 2016-10-24 13:20:09 +02:00
Józef Kucia
a5fbcb28f0 libs/vkd3d: Set initial image layout to VK_IMAGE_LAYOUT_UNDEFINED for CPU inaccessible images. 2016-10-24 13:20:09 +02:00
Józef Kucia
e19e428ed0 libs/vkd3d: Check if device memory is CPU accessible in d3d12_resource_Map(). 2016-10-24 13:20:09 +02:00
Józef Kucia
3161f346b6 libs/vkd3d: Try to allocate coherent host visible memory for CUSTOM heap. 2016-10-24 13:20:09 +02:00
Józef Kucia
33ef8688ab libs/vkd3d: Initialize "resource->external" before possible call to d3d12_resource_destroy(). 2016-10-20 16:38:04 +02:00
Józef Kucia
fd9f1abb4f libs/vkd3d: Fix command list resetting.
A command list can be resetted to the same command allocator when it is
in use.
2016-10-20 16:38:04 +02:00
Józef Kucia
2189859532 libs/vkd3d: Command allocator can be used with one command list at a time. 2016-10-20 16:38:04 +02:00
Józef Kucia
384bb26ea5 libs/vkd3d: Naming conventions. 2016-10-20 16:38:04 +02:00
Józef Kucia
52211e6c40 libs/vkd3d: Free command buffers on command allocator reset. 2016-10-20 16:38:04 +02:00
Józef Kucia
278cb0103c libs/vkd3d: Add support for D3D12_RESOURCE_STATE_RESOLVE_* barriers. 2016-10-20 16:38:04 +02:00
Józef Kucia
c41ad774de libs/vkd3d: Implement UAV barriers. 2016-10-19 16:39:48 +02:00
Józef Kucia
0944475c6a libs/vkd3d: Implement transition barriers. 2016-10-19 16:39:48 +02:00
Józef Kucia
f2c980af56 libs/vkd3d: Validate resource state for resource barriers. 2016-10-19 16:39:48 +02:00
Józef Kucia
69cd100d48 libs/vkd3d: Validate initial resource state. 2016-10-19 13:10:12 +02:00
Józef Kucia
f601cbc04a libs/vkd3d: Validate "optimized_clear_value" for buffer resources. 2016-10-19 13:10:12 +02:00
Józef Kucia
60959ecf3c libs/vkd3d: Add partial support for D3D12_FEATURE_ARCHITECTURE. 2016-10-19 13:10:12 +02:00
Henri Verbeet
e0ba2fd2d3 libs/vkd3d: Export a function to get the Vulkan queue from a d3d12 command queue. 2016-10-19 10:02:53 +02:00
Henri Verbeet
7568a9793c libs/vkd3d: Export a function to get the Vulkan device from a d3d12 device. 2016-10-19 10:02:27 +02:00
Henri Verbeet
feacd1af50 libs/vkd3d: Export a function to get the Vulkan instance from a d3d12 device. 2016-10-19 10:02:04 +02:00
Henri Verbeet
2a49173b60 libs/vkd3d: Export a function to create a d3d12 resource from a Vulkan image. 2016-10-19 09:59:42 +02:00
Henri Verbeet
fcc9f9b294 libs/vkd3d: Merge vkd3d_vulkan.h into vkd3d_private.h. 2016-10-19 09:58:53 +02:00
Henri Verbeet
8d668205a4 libs/vkd3d-utils: Return a bool from vkd3d_signal_event(). 2016-10-19 09:49:52 +02:00
Henri Verbeet
9d5e4daf84 libs/vkd3d-utils: Get rid of unnecessary WINAPI. 2016-10-19 09:48:26 +02:00
Henri Verbeet
53e0839698 libs/vkd3d-utils: Naming conventions. 2016-10-19 09:47:35 +02:00
Józef Kucia
5f187d9e68 libs/vkd3d: Improve diagnostic message for device memory allocation failures. 2016-10-17 14:24:22 +02:00
Józef Kucia
6b681a4037 libs/vkd3d: Return E_INVALIDARG in d3d12_resource_Map() for textures. 2016-10-17 14:24:22 +02:00
Józef Kucia
1e73f2956a libs/vkd3d: Return S_OK from d3d12_device_GetDeviceRemovedReason(). 2016-10-17 14:24:22 +02:00
Józef Kucia
e3fb82d544 libs/vkd3d: Forbid creating textures on UPLOAD/READBACK heaps. 2016-10-17 14:24:22 +02:00
Józef Kucia
fc1c9d914d libs/vkd3d: Validate initial resource state for UPLOAD/READBACK heaps. 2016-10-17 14:24:22 +02:00
Józef Kucia
1fad443900 libs/vkd3d: Introduce vkd3d_select_physical_device() helper function. 2016-10-13 12:21:00 +02:00
Józef Kucia
f5ecb635fe libs/vkd3d: Ignore blending parameters when blending is disabled. 2016-10-12 11:46:57 +02:00
Józef Kucia
f503954a77 libs/vkd3d: Ignore draw calls when pipeline state is not set. 2016-10-11 13:43:04 +02:00
Józef Kucia
a1082ec954 libs/vkd3d: Use "< 0" to test VkResult for errors.
For consistency.
2016-10-11 13:43:04 +02:00
Henri Verbeet
4a558d5a4a libs/vkd3d: Implement d3d12_command_list_DrawInstanced(). 2016-10-10 17:26:46 +02:00
Henri Verbeet
5c9ea3ede3 libs/vkd3d: Implement d3d12_device_CreateGraphicsPipelineState(). 2016-10-10 17:26:38 +02:00
Henri Verbeet
a0ccb1c581 libs/vkd3d: Implement d3d12_command_list_SetPipelineState(). 2016-10-10 17:26:13 +02:00
Henri Verbeet
74fe2ec411 libs/vkd3d: Implement d3d12_command_list_OMSetRenderTargets(). 2016-10-10 17:26:03 +02:00
Henri Verbeet
7add62e552 libs/vkd3d: Implement d3d12_command_list_IASetVertexBuffers(). 2016-10-10 17:25:55 +02:00
Henri Verbeet
ce509dc70e libs/vkd3d: Implement d3d12_command_list_IASetPrimitiveTopology(). 2016-10-10 17:25:40 +02:00
Henri Verbeet
d24982c5f1 libs/vkd3d: Destroy Vulkan render passes and framebuffers on command allocator reset. 2016-10-10 17:25:36 +02:00
Henri Verbeet
3ba5fd949b libs/vkd3d: Store Vulkan render passes and framebuffers in the command allocator.
We should destroy these on resets, but command list resets don't need to wait
for command list execution to complete.
2016-10-10 17:25:31 +02:00
Józef Kucia
ed033b40d0 libs/vkd3d: Fix InterlockedIncrement() and InterlockedDecrement() signatures. 2016-10-10 11:22:50 +02:00
Józef Kucia
a22b594c0a libs/vkd3d: Accept D3D12_ROOT_SIGNATURE_DESC directly only when all bits of "bytecode_length" are set. 2016-10-10 11:22:50 +02:00
Józef Kucia
59d466af2d libs/vkd3d: Use PRIx64 to print 64-bit integers. 2016-10-10 11:22:50 +02:00
Józef Kucia
4153810c00 libs/vkd3d: Partially implement d3d12_command_list_CopyTextureRegion(). 2016-10-08 14:31:57 +02:00
Józef Kucia
99efb9abe3 libs/vkd3d: Get rid of vk_format_from_dxgi_format().
Use vkd3d_get_format() instead.
2016-10-08 14:31:57 +02:00
Józef Kucia
ab883caaff libs/vkd3d: Introduce vkd3d_format. 2016-10-08 14:31:57 +02:00
Józef Kucia
b112ec1942 libs/vkd3d: Implement d3d12_command_queue_Signal(). 2016-10-08 14:31:57 +02:00
Józef Kucia
2a7b614278 libs/vkd3d: Wait for GPU fences in worker thread.
This could be implemented without a worker thread, if event objects
would be tightly coupled with ID3D12Fences.
2016-10-08 14:31:57 +02:00
Józef Kucia
2f76260857 libs/vkd3d: Create fence worker thread per device. 2016-10-08 14:31:57 +02:00
Józef Kucia
858e0c79f1 include: Add public header for libvkd3d-utils. 2016-10-07 13:26:39 +02:00
Józef Kucia
c7d123b122 libs/vkd3d: Move event objects implementation to libvkd3d-utils.
The libvkd3d is not the best place for event objects implementation.
2016-10-07 13:26:39 +02:00
Józef Kucia
0c1432e671 libs/vkd3d: Move D3D12CreateDevice() to libvkd3d-utils. 2016-10-07 13:26:39 +02:00
Józef Kucia
ef6a3d78a2 libs/vkd3d: Pass signal event function pointer to vkd3d_create_device(). 2016-10-07 13:26:39 +02:00
Józef Kucia
544c2668ca libs/vkd3d: Introduce vkd3d_create_device().
We need to pass additional parameters to libvkd3d during initialization.
2016-10-07 13:26:39 +02:00
Józef Kucia
12ea3309f0 libs/vkd3d-utils: Add library. 2016-10-07 13:26:39 +02:00
Józef Kucia
49cac8005c libs/vkd3d-common: Add convenience library for shared code. 2016-10-07 13:26:39 +02:00
Józef Kucia
c558118f70 libs/vkd3d: Re-use vkd3d_array_reserve() in d3d12_fence_SetEventOnCompletion(). 2016-10-05 19:01:57 +02:00
Józef Kucia
b224b6372c libs/vkd3d: Fix ID3D12Device reference count leak in d3d12_command_list_init(). 2016-10-05 18:40:25 +02:00
Józef Kucia
a763bef615 libs/vkd3d: Do not leak "passes". 2016-10-05 18:40:25 +02:00
Józef Kucia
1cabd851b8 libs/vkd3d: Do not leak "framebuffers". 2016-10-05 18:40:25 +02:00
Henri Verbeet
3fe56457f9 libs/vkd3d: Set the initial pipeline state on command list creation/reset. 2016-10-05 17:53:52 +02:00
Henri Verbeet
4c517454b6 libs/vkd3d: Debug output should go to stderr. 2016-10-05 17:53:36 +02:00
Henri Verbeet
b7d594349f libs/vkd3d: Delay destroying framebuffers until the command list is destroyed.
Like render passes, these should only be destroyed after all submitted
commands referring to them have completed execution.
2016-10-05 17:53:19 +02:00
Henri Verbeet
fb6071d108 libs/vkd3d: Delay destroying render passes until the command list is destroyed.
Render passes should only be destroyed after all submitted commands referring
to them have completed execution.
2016-10-05 17:52:45 +02:00
Józef Kucia
8ab2ebdd22 libs/vkd3d: Implement d3d12_fence_SetEventOnCompletion(). 2016-10-05 15:56:27 +02:00
Józef Kucia
733f720ee4 libs/vkd3d: Add simple replacement for event objects.
This naming convention for exported functions is used to be consistent
with other D3D12* functions().
2016-10-05 15:56:27 +02:00
Józef Kucia
a5e13cf53e libs/vkd3d: Implement d3d12_fence_Signal(). 2016-10-05 15:56:27 +02:00
Józef Kucia
8e2d4dc70f libs/vkd3d: Implement d3d12_command_list_CopyBufferRegion(). 2016-10-05 11:34:07 +02:00
Henri Verbeet
42c1e0c0fb libs/vkd3d: Implement d3d12_command_list_RSSetScissorRects(). 2016-09-30 13:35:07 +02:00
Henri Verbeet
c7f6dc53b3 libs/vkd3d: Implement d3d12_command_list_RSSetViewports(). 2016-09-30 13:34:50 +02:00
Henri Verbeet
ad811fb418 libs/vkd3d: Implement d3d12_command_list_ClearRenderTargetView(). 2016-09-30 13:34:33 +02:00
Henri Verbeet
1b8be72657 libs/vkd3d: Implement d3d12_device_CreateRenderTargetView(). 2016-09-30 13:34:17 +02:00
Henri Verbeet
3cc207c28e libs/vkd3d: Implement d3d12_descriptor_heap_GetCPUDescriptorHandleForHeapStart(). 2016-09-30 13:34:00 +02:00
Henri Verbeet
9262f87249 libs/vkd3d: Allocate CPU memory for descriptors. 2016-09-30 13:33:28 +02:00
Henri Verbeet
7db62fe3d8 libs/vkd3d: Implement d3d12_command_queue_ExecuteCommandLists(). 2016-09-29 11:54:44 +02:00
Józef Kucia
b4305f94f0 libs/vkd3d: Fix typo in FIXME() message. 2016-09-29 10:46:42 +02:00
Józef Kucia
31f1d703a9 libs/vkd3d: Add ID3D12Fence interface stub. 2016-09-28 15:24:03 +02:00
Henri Verbeet
5f91e2ded9 libs/vkd3d: Implement d3d12_resource_GetGPUVirtualAddress(). 2016-09-28 15:05:13 +02:00
Józef Kucia
623e1a8233 libs/vkd3d: Store VkQueue in d3d12_command_queue. 2016-09-28 09:42:49 +02:00
Józef Kucia
09d24d6934 libs/vkd3d: Implement d3d12_command_list_Reset(). 2016-09-28 09:42:49 +02:00
Józef Kucia
335bde6550 libs/vkd3d: Implement d3d12_command_allocator_Reset(). 2016-09-28 09:42:49 +02:00
Józef Kucia
00fec8232b libs/vkd3d: Track command list recording state. 2016-09-28 09:42:49 +02:00
Józef Kucia
f7a54c4653 libs/vkd3d: Rename "VKD3DDEBUG" environment variable to "VKD3D_DEBUG". 2016-09-28 09:42:49 +02:00
Józef Kucia
ef80cdedc3 libs/vkd3d: Make vkd3d debug compatible with MinGW headers. 2016-09-28 09:42:49 +02:00
Józef Kucia
2976d7798d libs/vkd3d: Implement d3d12_resource_Unmap() for committed buffers. 2016-09-28 09:42:49 +02:00
Józef Kucia
c078e79235 libs/vkd3d: Implement d3d12_resource_Map() for committed buffers. 2016-09-28 09:42:49 +02:00
Józef Kucia
fc1492766e libs/vkd3d: Implement committed buffer resources. 2016-09-27 12:13:37 +02:00
Józef Kucia
fec147c2cb libs/vkd3d: Implement committed texture resources. 2016-09-27 12:13:37 +02:00
Józef Kucia
e43af70de1 libs/vkd3d: Disable nameless unions. 2016-09-27 12:13:37 +02:00
Józef Kucia
5e266f70a2 libs/vkd3d: Store VkPhysicalDeviceMemoryProperties in "d3d12_device". 2016-09-27 12:13:37 +02:00
Józef Kucia
7701228cd7 libs/vkd3d: Print "0x" prefix before UINT64 hexadecimal values. 2016-09-27 12:13:37 +02:00
Józef Kucia
8341c975a0 libs/vkd3d: Implement d3d12_command_list_Close(). 2016-09-27 12:13:37 +02:00
Józef Kucia
60fc7ee157 libs/vkd3d: Allocate VkCommandBuffer when creating ID3D12CommandList. 2016-09-27 12:13:37 +02:00
Józef Kucia
6e68570498 libs/vkd3d: Create VkCommandPool when creating ID3D12CommandAllocator. 2016-09-27 12:13:37 +02:00
Józef Kucia
2424137c0b libs/vkd3d: Implement compute pipeline state. 2016-09-26 11:46:45 +02:00
Józef Kucia
fdf8eb775f libs/vkd3d: Implement empty root signature. 2016-09-26 11:46:45 +02:00
Józef Kucia
a524488c78 libs/vkd3d: Fix memory leak in d3d12_device_create(). 2016-09-26 11:46:45 +02:00
Józef Kucia
471a58b4b8 libs/vkd3d: Add ID3D12PipelineState interface stub. 2016-09-26 11:22:33 +02:00
Józef Kucia
aec10bd682 libs/vkd3d: Add ID3D12RootSignature interface stub. 2016-09-26 11:22:33 +02:00
Józef Kucia
13ccddd6e4 libs/vkd3d: Add ID3D12DescriptorHeap interface stub. 2016-09-26 11:22:33 +02:00
Józef Kucia
4175bec471 libs/vkd3d: Add ID3D12Resource interface stub. 2016-09-26 11:22:33 +02:00
Józef Kucia
2a99c21534 libs/vkd3d: Create Vulkan device when creating D3D12 device. 2016-09-22 17:15:41 +02:00
Józef Kucia
f86ca50443 libs/vkd3d: Create Vulkan instance when creating D3D12 device.
We link directly to the Vulkan loader library and use few exported
procedures. According to the documentation the loader library
exports all core Vulkan procedures on Windows, Linux and Android.
2016-09-22 16:56:58 +02:00
Józef Kucia
6bdc509e4d libs/vkd3d: Add ID3D12GraphicsCommandList interface stub. 2016-09-21 17:46:03 +02:00
Józef Kucia
4636663bd5 libs/vkd3d: Add ID3D12CommandAllocator interface stub. 2016-09-21 17:46:03 +02:00
Józef Kucia
4426e099ab libs/vkd3d: Partially implement d3d12_device_CheckFeatureSupport(). 2016-09-21 17:46:03 +02:00
Józef Kucia
aea273550a libs/vkd3d: Add ID3D12CommandQueue interface stub. 2016-09-21 17:46:03 +02:00
Józef Kucia
0444bb72b5 libs/vkd3d: Introduce debugstr_uint64() to print UINT64 values. 2016-09-21 17:46:03 +02:00
Józef Kucia
4503e8b23a libs/vkd3d: Add D3D12GetDebugInterface() stub. 2016-09-21 13:16:55 +02:00
Józef Kucia
d6e2fe97a4 libs/vkd3d: Add ID3D12Device interface stub. 2016-09-21 12:57:24 +02:00
Józef Kucia
52164aa79b libs/vkd3d: Implement simple debug logs. 2016-09-21 12:57:24 +02:00
Józef Kucia
db41f92040 libs/vkd3d: Add vkd3d_common.h. 2016-09-21 12:57:24 +02:00
Józef Kucia
40c42f7237 build: Add pkg-config file. 2016-09-21 12:57:24 +02:00
Józef Kucia
f8090a33dd libs/vkd3d: Add library. 2016-09-21 12:57:24 +02:00