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