Józef Kucia
d998cb88c5
libs/vkd3d-shader: Implement constant interpolation mode.
...
For gears demo.
2017-06-27 13:16:47 +02:00
Józef Kucia
00b1a83ef5
libs/vkd3d-shader: Translate if/else/endif instructions.
2017-06-26 17:03:31 +02:00
Józef Kucia
7f4f305225
libs/vkd3d-shader: Introduce vkd3d_spirv_alloc_id() helper function.
2017-06-26 17:03:31 +02:00
Józef Kucia
77b3c5858f
libs/vkd3d-shader: Pass format string to vkd3d_spirv_build_op_name().
2017-06-26 17:03:31 +02:00
Józef Kucia
cb79f2ec65
libs/vkd3d-shader: Implement floating-point comparison instructions.
2017-06-26 17:03:31 +02:00
Józef Kucia
cd8eb358e9
libs/vkd3d-shader: Refactor immediate constants handling.
2017-06-26 17:03:31 +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
becd93c8bd
libs/vkd3d-shader: Emit Offset decoration for uniform buffer struct members.
...
The SPIR-V spec says:
"Composite objects in the UniformConstant, Uniform, and PushConstant Storage
Classes must be explicitly laid out."
Intel Anvil driver uses uninitialized memory for offsets when Offset
decorations are missing.
2017-06-23 22:24:33 +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
99d82668a0
libs/vkd3d-shader: Avoid generating 2 OpVectorShuffles per mov instruction.
2017-06-22 13:36:18 +02:00
Józef Kucia
05842705b4
libs/vkd3d-shader: Enforce required component count for builtin shader inputs.
2017-06-22 13:36:18 +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
d515e3d047
libs/vkd3d: Require VK_KHR_maintenance1 device extension.
2017-06-21 22:00:19 +02:00
Józef Kucia
4ced2e7789
libs/vkd3d-shader: Translate "neg" source modifier.
2017-06-21 22:00:19 +02:00
Józef Kucia
f5e3b248df
libs/vkd3d-shader: Fix SV_Position in pixel shaders.
2017-06-21 22:00:19 +02:00
Józef Kucia
9880d78058
libs/vkd3d-shader: Translate dcl_input_ps_siv instruction.
2017-06-21 22:00:19 +02:00
Józef Kucia
9948abda96
libs/vkd3d: Flip SV_Position.y in last vertex processing shader stage.
...
The handwritten GLSL shaders do this.
2017-06-21 12:22:20 +02:00
Józef Kucia
67a8200933
libs/vkd3d-shader: Implement VKD3D_SHADER_FLIP_Y option.
2017-06-21 12:22:20 +02:00
Józef Kucia
989a80fef7
libs/vkd3d-shader: Fix TRACE() message in vkd3d_spirv_dump().
2017-06-21 12:22:20 +02:00
Józef Kucia
252a2ea353
libs/vkd3d-common: Fix assert() condition.
2017-06-21 12:22:19 +02:00
Józef Kucia
f7e738c27a
libs/vkd3d-common: Terminate string with '\0' unconditionally in vkd3d_debug_sprintf().
2017-06-21 12:22:19 +02:00
Józef Kucia
feb5e8259c
libs/vkd3d-shader: Translate dcl_constantbuffer instruction.
2017-06-20 17:09:39 +02:00
Józef Kucia
8b2b2c1b6b
libs/vkd3d-shader: Translate bfi instruction.
2017-06-20 17:09:39 +02:00
Józef Kucia
95b11ba336
libs/vkd3d-shader: Translate dcl_input instructions.
2017-06-20 17:09:39 +02:00
Józef Kucia
88e20980a8
libs/vkd3d-shader: Translate dot product instructions.
2017-06-20 17:09:39 +02:00
Józef Kucia
ddcc403f73
libs/vkd3d-shader: Add missing vkd3d_free() call.
...
Fixes commit 0761568225
.
2017-06-20 14:59:25 +02:00
Józef Kucia
c9a98c7a13
libs/vkd3d-shader: Add support for GLSL.std.450 extended instruction set.
2017-06-20 14:59:25 +02:00
Józef Kucia
801b4159de
libs/vkd3d-shader: Translate some ALU instructions.
2017-06-20 14:14:44 +02:00
Józef Kucia
2b1396e7e4
libs/vkd3d-shader: Translate mov instruction.
2017-06-20 13:34:44 +02:00
Józef Kucia
18e952aaf4
libs/vkd3d-shader: Translate dcl_output_siv instruction.
2017-06-20 13:34:44 +02:00
Józef Kucia
0761568225
libs/vkd3d-shader: Translate dcl_output instruction.
2017-06-20 13:34:44 +02:00
Józef Kucia
d073652db9
libs/vkd3d-shader: Translate dcl_temps instruction.
...
"symbol_table" is possibly not the most fitting name.
2017-06-20 13:34:44 +02:00
Józef Kucia
c270d9a859
libs/vkd3d: Accept DXBC shaders.
2017-06-19 19:49:11 +02:00
Józef Kucia
d32134da48
libs/vkd3d-shader: Implement SM5 dcl_thread_group instruction.
2017-06-19 19:49:11 +02:00
Józef Kucia
6f6d5c7850
libs/vkd3d: Use depth aspect mask for DXGI_FORMAT_D16_UNORM.
2017-06-19 18:19:19 +02:00
Józef Kucia
786a31ca4e
libs/vkd3d-shader: Use libSPIRV-Tools for tracing and validating generated SPIR-V shaders.
...
SPIRV-Tools are an optional dependency.
We link with stdc++ because libSPIRV-Tools is a static library written
in C++.
2017-06-19 18:05:53 +02:00
Józef Kucia
dd31e5e918
libs/vkd3d-shader: Generate SPIR-V modules.
2017-06-19 18:05:53 +02:00
Józef Kucia
eff8428c71
libs/vkd3d-common: Move vkd3d_array_reserve() from libvkd3d.
2017-06-19 18:05:53 +02:00
Józef Kucia
465fe54a9b
libs/vkd3d-shader: Implement vkd3d_shader_compile_dxbc().
2017-06-19 18:05:53 +02:00
Józef Kucia
1f65d4ccc1
libs/vkd3d-shader: Add stub for SPIR-V generator.
2017-06-19 18:05:53 +02:00
Józef Kucia
97c7bc0a18
libs/vkd3d-common: Provide access to current debug level.
2017-06-19 18:05:53 +02:00
Henri Verbeet
5808c280f7
libs/vkd3d: Add DXGI_FORMAT_D16_UNORM.
2017-06-19 14:44:48 +02:00
Henri Verbeet
fc67a3b7fa
libs/vkd3d: Add DXGI_FORMAT_R8G8B8A8_UNORM_SRGB.
2017-06-19 14:44:41 +02:00
Henri Verbeet
d029dc995c
libs/vkd3d: Add DXGI_FORMAT_R8_UINT.
2017-06-19 14:44:33 +02:00
Henri Verbeet
79d731de8a
libs/vkd3d: Add DXGI_FORMAT_R16_FLOAT.
2017-06-19 14:44:19 +02:00
Henri Verbeet
70dbeed14c
libs/vkd3d: Add DXGI_FORMAT_R8_UNORM.
2017-06-19 14:44:07 +02:00
Henri Verbeet
00f514cf1c
libs/vkd3d: Add DXGI_FORMAT_R16_UNORM.
2017-06-19 14:43:55 +02:00
Henri Verbeet
07f12c2947
libs/vkd3d: Add DXGI_FORMAT_R16G16B16A16_FLOAT.
2017-06-19 14:43:45 +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
4ab5ced2fc
libs/vkd3d-shader: Import DXBC parser from Wine d3d11 implementation.
2017-06-16 22:38:21 +02:00
Józef Kucia
7be0b64a0f
libs/vkd3d-common: Add debugstr_a() function.
2017-06-16 22:38:21 +02:00
Józef Kucia
31c6bfe24f
libs/vkd3d-shader: Import SM4+ bytecode parser from Wine.
2017-06-16 22:38:21 +02:00
Józef Kucia
93458c8933
libs/vkd3d-shader: Add library.
2017-06-16 22:38:21 +02:00
Józef Kucia
0e55ba8933
libs/vkd3d-common: Use ARRAY_SIZE() macro.
2017-06-16 22:38:21 +02:00
Józef Kucia
84889646f6
Update license to LGPL v2.1.
2017-06-16 22:11:21 +02:00
Henri Verbeet
f604f25aba
libs/vkd3d: Add DXGI_FORMAT_R11G11B10_FLOAT.
2017-06-15 15:16:07 +02:00
Henri Verbeet
39d95dcd7f
libs/vkd3d: Add DXGI_FORMAT_R10G10B10A2_UNORM.
2017-06-15 15:15:57 +02:00
Henri Verbeet
39e8b8de25
libs/vkd3d: Add DXGI_FORMAT_R32G32_FLOAT.
2017-06-15 15:15:46 +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
0f38858996
libs/vkd3d: Implement D3D12_ROOT_PARAMETER_TYPE_CBV root signature parameters.
2016-11-13 00:44:19 +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
f252d6cd31
libs/vkd3d: Implement d3d12_device_CreateDepthStencilView().
2016-11-10 16:42:24 +01:00
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