Józef Kucia
c54b148a2c
libs/vkd3d-shader: Add support for indexable temporary registers.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-14 12:30:59 +02:00
Józef Kucia
b707e36d56
libs/vkd3d-shader: Translate partial derivative instructions.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-14 12:30:57 +02:00
Józef Kucia
b14bb73c5b
libs/vkd3d-shader: Translate sincos instructions.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-14 12:30:51 +02:00
Józef Kucia
92f3d33e15
libs/vkd3d-shader: Translate round_ne instructions.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-14 12:30:27 +02:00
Józef Kucia
f883c26524
libs/vkd3d: Add support for more formats.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-14 12:30:23 +02:00
Józef Kucia
d9d37d1563
libs/vkd3d: Implement d3d12_device_CreateHeap().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-20 18:19:47 +02:00
Józef Kucia
cc47b37c1d
libs/vkd3d: Factor out debug_ignored_node_mask().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-20 18:19:46 +02:00
Józef Kucia
a5a17c22f1
libs/vkd3d: Introduce d3d12_resource_validate_desc().
...
Share D3D12_RESOURCE_DESC validation code between
CreateCommittedResource() and GetCopyableFootprints().
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-20 18:19:39 +02:00
Józef Kucia
8400832eea
libs/vkd3d: Change return_interface() iface parameter type to void pointer.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-20 18:19:35 +02:00
Józef Kucia
9ce53b74df
libs/vkd3d: Return S_FALSE from D3D12CreateDevice() when device is NULL.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-19 16:51:08 +02:00
Józef Kucia
72859f8898
libs/vkd3d: Support D3D12_SRV_DIMENSION_TEXTURE2D in d3d12_device_CreateShaderResourceView().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-19 16:51:06 +02:00
Józef Kucia
b9a0907691
libs/vkd3d: Support D3D12_FEATURE_ROOT_SIGNATURE.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-19 16:51:04 +02:00
Józef Kucia
b7d2278f57
libs/vkd3d: Validate PrimitiveTopologyType for PSO with tessellation shaders.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-18 17:52:39 +02:00
Józef Kucia
7892a1e938
libs/vkd3d: Return E_INVALIDARG for invalid pipeline state desc.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-18 17:52:37 +02:00
Józef Kucia
d266a5f7d0
libs/vkd3d: Process shader stages according to pipeline order.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-18 17:52:35 +02:00
Józef Kucia
6e8dae9d62
libs/vkd3d-shader: Add debug name for vDomainLocation register.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-18 17:52:33 +02:00
Józef Kucia
054b1e41dd
libs/vkd3d-shader: Treat vicp register as regular shader input.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-18 17:52:31 +02:00
Józef Kucia
faa1118202
libs/vkd3d-shader: Enable arrayed inputs for all shader types.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-07-18 17:52:29 +02:00
Józef Kucia
404e988ecd
libs/vkd3d: Trace build version.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-27 22:43:49 +02:00
Józef Kucia
89a2dc46dd
libs/vkd3d: Set names for internal threads.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-27 22:43:48 +02:00
Józef Kucia
9b214c9ea7
libs/vkd3d: Implement cube shader resource views.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-27 22:43:38 +02:00
Józef Kucia
d15c9f79b5
libs/vkd3d-shader: Fix returning multiple components from dot product instructions.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-26 21:58:58 +02:00
Józef Kucia
6df54305e6
libs/vkd3d: Add support for 2D array render target views.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-26 21:58:54 +02:00
Józef Kucia
d14f9196f9
libs/vkd3d-shader: Do not emit output setup for ret in geometry shaders.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-26 21:58:53 +02:00
Józef Kucia
c21a8b56a0
libs/vkd3d-shader: Generate correct SPIR-V code for arrayed shader inputs.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-26 21:58:51 +02:00
Józef Kucia
62b6d01c84
libs/vkd3d-shader: Pass register index to vkd3d_find_signature_element_for_reg().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-26 21:58:49 +02:00
Józef Kucia
ab6b24ff65
libs/vkd3d-shader: Simplify vkd3d_dxbc_compiler_emit_input().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-26 21:58:47 +02:00
Józef Kucia
5fe02889b1
libs/vkd3d-shader: Enable "geometry" capability for SpvBuiltInLayer.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-26 21:58:46 +02:00
Józef Kucia
d74992a119
libs/vkd3d-shader: Do not force input register type to float4.
...
Produces slightly smaller and cleaner SPIR-V code.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-26 21:58:44 +02:00
Józef Kucia
7dce007c53
libs/vkd3d-shader: Add initial support for typed registers.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-26 21:58:42 +02:00
Józef Kucia
270c212265
libs/vkd3d-shader: Do not generate code in vkd3d_dxbc_compiler_get_register_info().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-26 21:58:40 +02:00
Józef Kucia
6cdf3a9fa5
libs/vkd3d-shader: Split SPIR-V built-ins table into two tables.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-26 21:58:38 +02:00
Józef Kucia
746d3d4e7e
libs/vkd3d: Use VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT only if array size is >= 6.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-11 16:46:03 +02:00
Józef Kucia
3d74e65a1f
libs/vkd3d-shader: Factor out shader_dump_instruction().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-06 00:04:34 +02:00
Józef Kucia
49e936ae2a
libs/vkd3d-shader: Factor out shader_dump_instruction_flags().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-06 00:04:32 +02:00
Józef Kucia
988cf2154b
libs/vkd3d-shader: Factor out shader_dump_version().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-06 00:04:31 +02:00
Józef Kucia
265ce37014
libs/vkd3d: Use VK_COMPONENT_SWIZZLE_IDENTITY in vkd3d_set_view_swizzle_for_format().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-29 19:33:08 +02:00
Józef Kucia
a5808cfdd7
libs/vkd3d-shader: Import shader tracing from wined3d.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-29 19:33:04 +02:00
Józef Kucia
2fa29dd823
libs/vkd3d-shader: Recognize more shader registers.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-29 19:32:52 +02:00
Józef Kucia
3ddb29c16a
libs/vkd3d-shader: Parse precise flags.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-29 19:32:48 +02:00
Józef Kucia
b59ad01dd2
libs/vkd3d-shader: Implement SV_RenderTargetArrayIndex.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-29 19:32:41 +02:00
Józef Kucia
b5d1dbd182
libs/vkd3d: Rename default sampler to dummy sampler.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-24 23:29:36 +02:00
Józef Kucia
a87b3f3fb2
libs/vkd3d-shader: Rename default sampler to dummy sampler.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-24 23:29:32 +02:00
Józef Kucia
78c952ee5f
libs/vkd3d: Fix rendering to DXGI_FORMAT_A8_UNORM.
...
In Direct3D alpha is taken from the .r component.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-24 23:29:28 +02:00
Józef Kucia
40ee9fa0e9
libs/vkd3d-shader: Implement swizzling for shader outputs.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-24 23:29:24 +02:00
Józef Kucia
926f844ead
libs/vkd3d-shader: Rework swizzle macros.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-24 23:29:20 +02:00
Józef Kucia
3198cab3ed
libs/vkd3d: Process render target formats before shaders.
...
We may need to swizzle components in pixel shader based on render target
formats because Vulkan doesn't support swizzles for framebuffer
attachment image views.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-24 23:29:13 +02:00
Józef Kucia
0ae0e431b1
libs/vkd3d-utils: Prefix defines with VKD3D_.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-25 15:50:04 +02:00
Józef Kucia
b901d72877
build: Improve SPIR-V headers detection.
...
Allows building with Vulkan SDK.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-16 22:00:10 +02:00
Józef Kucia
ccc49fe00d
libs/vkd3d-shader: Use unified SPIR-V headers.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-16 22:00:04 +02:00
Józef Kucia
f0a1e14113
libs/vkd3d: Mark device as removed when command list in recording state is executed.
...
Fixes a GPU hang in test_device_removed_reason() on RADV.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-16 21:59:57 +02:00
Józef Kucia
2a430ae991
libs/vkd3d: Return early if there are no descriptors to update.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-13 19:08:12 +02:00
Józef Kucia
8b8128b055
libs/vkd3d: Fix memory leak in d3d12_pipeline_state_init_compute_uav_counters().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-13 19:08:10 +02:00
Józef Kucia
277cdd4e95
libs/vkd3d: Fix memory leak in d3d12_command_queue_ExecuteCommandLists().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-13 19:08:09 +02:00
Józef Kucia
736d3c23fd
libs/vkd3d-shader: Get rid of redundant assignment from vkd3d_shader_find_signature_element().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-13 19:08:07 +02:00
Józef Kucia
83ce4553ea
libs/vkd3d-shader: Introduce VKD3DSPR_INVALID.
...
Fixes clang warnings.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-13 19:08:05 +02:00
Józef Kucia
7dd9420877
libs/vkd3d-shader: Fix error code variable type in vkd3d_shader_compile_dxbc().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-13 19:08:03 +02:00
Józef Kucia
830f7c1e49
libs/vkd3d: Propagate error code in vkd3d_fence_worker_stop().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-13 19:08:01 +02:00
Józef Kucia
0e86a6b353
libs/vkd3d: Use HRESULT as preferred error code.
...
For consistency.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-11 18:56:25 +02:00
Józef Kucia
e6e62e8a8e
libs/vkd3d: Add support for VK_EXT_debug_report.
...
For debug messages from Vulkan drivers.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-11 18:56:10 +02:00
Józef Kucia
6a1b3a3fb5
libs/vkd3d-shader: Validate DXBC data size.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-11 18:56:08 +02:00
Józef Kucia
28e0ab6481
libs/vkd3d: Fix copying descriptors with NULL destination range sizes.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-11 18:56:03 +02:00
Józef Kucia
f5b532921a
libs/vkd3d: Add structure type fields to public API structures.
...
Adds flexibility for future API extensions.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-03 21:59:35 +02:00
Józef Kucia
bfd20ef1c8
libs/vkd3d: Add support for custom PRESENT state transitions.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-30 14:10:55 +02:00
Józef Kucia
dd461ca6b8
libs/vkd3d: Handle VK_ERROR_EXTENSION_NOT_PRESENT in hresult_from_vk_result().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-28 19:48:25 +02:00
Józef Kucia
26cbfbe647
libs/vkd3d: Implement d3d12_command_list_CopyResource() for textures.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-28 19:48:23 +02:00
Józef Kucia
953a924ca0
libs/vkd3d: Fix copying descriptors with NULL source range sizes.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-28 19:48:21 +02:00
Józef Kucia
4dc706733e
libs/vkd3d: Avoid passing invalid miplevel count to Vulkan.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-28 19:48:20 +02:00
Józef Kucia
3f235f9787
libs/vkd3d: Fix error message in vkd3d_check_extensions().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-28 19:48:17 +02:00
Józef Kucia
1fe6270307
libs/vkd3d-shader: Translate control point count declarations.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-15 20:00:39 +01:00
Józef Kucia
5ea8cad967
libs/vkd3d-shader: Avoid UINT.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-15 20:00:37 +01:00
Józef Kucia
844c83a837
libs/vkd3d-shader: Avoid Windows data types in public API.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-15 20:00:35 +01:00
Józef Kucia
fddf86e6ea
libs/vkd3d-shader: Remove dependency on D3D12 headers.
...
We would like to allow building libvkd3d-shader as a standalone library
without our Direct3D translation layers.
In the long term, it should be possible to build and use libvkd3d-shader
without Win32 data types, Vulkan headers and libs.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-15 20:00:31 +01:00
Józef Kucia
3bf017b331
libs/vkd3d: Disallow image view swizzles on framebuffer attachments and storage images.
...
The Vulkan spec says that image views must be created with the identity
swizzle for attachments and storage images.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-13 18:40:00 +01:00
Józef Kucia
850f09e703
libs/vkd3d: Implement DXGI_FORMAT_A8_UNORM.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-13 18:39:51 +01:00
Józef Kucia
abcd0348a0
libs/vkd3d: Fix single descriptor handles in d3d12_command_list_OMSetRenderTargets().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-13 18:39:47 +01:00
Józef Kucia
dd6dedd9d1
libs/vkd3d: Add remaining helper functions for CPU descriptor handles.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-08 21:59:04 +01:00
Józef Kucia
65aab7b47b
libs/vkd3d: Use PFN prefix for function pointer typedefs.
...
A more common convention, e.g. Vulkan uses it.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-06 21:35:33 +01:00
Józef Kucia
26c5a1ef73
libs/vkd3d-shader: Implement vDomain.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-06 21:35:30 +01:00
Józef Kucia
2759ea7857
libs/vkd3d-shader: Translate dcl_tessellator_partitioning instructions.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-06 21:35:27 +01:00
Józef Kucia
f1de58c58e
libs/vkd3d-shader: Translate dcl_tessellator_domain instructions.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-06 21:35:24 +01:00
Józef Kucia
8d2c59dd35
libs/vkd3d-shader: Use vkd3d_dxbc_compiler_get_constant_float_vector() in more places.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-05 18:57:12 +01:00
Józef Kucia
6f2ca74904
libs/vkd3d-shader: Add initial support for arrayed shader inputs.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-05 18:57:07 +01:00
Józef Kucia
0ecbdbe823
libs/vkd3d-shader: Emit InvocationId for geometry and tessellation shaders.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-05 18:57:05 +01:00
Józef Kucia
f7cace8216
libs/vkd3d-shader: Translate dcl_gs_instances instructions.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-05 18:57:02 +01:00
Józef Kucia
f6c708a3cc
libs/vkd3d-shader: Translate geometry shader "cut" instructions.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-05 18:57:00 +01:00
Józef Kucia
d97e32d035
libs/vkd3d-shader: Translate dcl_input_siv instructions.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-05 18:56:58 +01:00
Józef Kucia
367e55cd59
libs/vkd3d-shader: Force public enums to 32-bit values.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-02 18:49:57 +01:00
Józef Kucia
be8e10e12e
libs/vkd3d-shader: Use our own SPIR-V generator ID.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-02 18:49:55 +01:00
Józef Kucia
372bd56ade
libs/vkd3d: Add support for device parent.
...
In order to hold a reference to IDXGIAdapter.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-02 18:49:52 +01:00
Józef Kucia
b1fc5039c8
libs/vkd3d-shader: Use GLSL.std450 NMin, NMax and NClamp opcodes.
...
This reverts commit 70f5b24f92
.
The bug is fixed in Nvidia drivers.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-26 00:24:57 +01:00
Józef Kucia
daebeb3e11
libs/vkd3d-shader: Adjust barrier emission.
...
Aligns with glsang changes which are based on Khronos recommendations.
8297936dd6
838d7afc61
2505057af8
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-26 00:24:53 +01:00
Józef Kucia
9075722128
libs/vkd3d: Implement internal reference counting for resources.
...
For swapchain back buffers.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-24 22:32:22 +01:00
Józef Kucia
a25a2086a5
libs/vkd3d: Do not enable swapchain extensions by default.
...
libvkd3d doesn't use them.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-24 22:32:20 +01:00
Józef Kucia
e9f826bd08
libs/vkd3d-utils: Enable swapchain extensions in D3D12CreateDevice().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-24 22:32:18 +01:00
Józef Kucia
fc31637040
libs/vkd3d: Allow library user to enable additional device extensions.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-24 22:32:14 +01:00
Józef Kucia
4cd36fc553
libs/vkd3d: Implement d3d12_device_GetAdapterLuid().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-23 21:42:08 +01:00
Józef Kucia
c9c6caae98
libs/vkd3d: Allow library user to enable additional instance extensions.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-23 21:42:06 +01:00
Józef Kucia
ebca1d3396
libs/vkd3d: Validate signal_event_pfn.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-19 18:49:58 +01:00
Józef Kucia
6a32ad8913
libs/vkd3d: Rename vkd3d_get_vk_instance() to vkd3d_instance_get_vk_instance().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-19 18:49:56 +01:00
Józef Kucia
c64181345b
libs/vkd3d: Simplify vkd3d_restrict_format_support_for_feature_level().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-19 18:49:53 +01:00
Józef Kucia
783a2c2cdf
libs/vkd3d: Use vkGetInstanceProcAddr() to load global Vulkan functions.
...
It's enough to load vkGetInstanceProcAddr() in a platform-specific way.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-18 16:22:01 +01:00
Józef Kucia
10b04414e8
libs/vkd3d: Load libvulkan dynamically.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-18 16:21:51 +01:00
Józef Kucia
fcc6846559
libs/vkd3d: Allow library user to load libvulkan.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-18 16:21:44 +01:00
Józef Kucia
8883502121
libs/vkd3d: Introduce function to get Vulkan instance from vkd3d instance.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-18 16:21:32 +01:00
Józef Kucia
b0aa4ed434
libs/vkd3d: Add simple format support restrictions.
...
In the long term, we may need more complex format support filtering.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-18 16:21:29 +01:00
Józef Kucia
ae014a29c4
libs/vkd3d: Allow library user to select Vulkan physical device.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-16 20:11:23 +01:00
Józef Kucia
a64dd8be5f
build: Add version name for symbols.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-16 20:11:19 +01:00
Józef Kucia
55025f7bec
libs/vkd3d: Get rid of vkd3d_get_vk_queue().
...
Replaced by vkd3d_acquire_vk_queue().
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-16 20:11:12 +01:00
Józef Kucia
9e8dc13ba3
libs/vkd3d-shader: Fix uninitialized error code in vkd3d_shader_parser_init().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-16 20:11:08 +01:00
Henri Verbeet
2d8e2fbe86
libs/vkd3d-shader: Validate the DXBC version.
...
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-15 17:51:44 +01:00
Józef Kucia
12ca2bbcf6
libs/vkd3d: Add thread-safe API for accessing Vulkan command queues.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-15 17:51:39 +01:00
Józef Kucia
d18e986b27
libs/vkd3d: Make GPU VA allocator thread-safe.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-15 17:51:35 +01:00
Józef Kucia
db2e1d402e
libs/vkd3d: Synchronize access to Vulkan queues.
...
Access to VkQueue must be externally synchronized.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-15 17:51:32 +01:00
Józef Kucia
41715a2f33
build: Use linker version scripts to control visibility.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-15 17:51:25 +01:00
Józef Kucia
4605d1275c
libs/vkd3d: Validate WCHAR size.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-12 19:27:06 +01:00
Józef Kucia
0f46ae3e55
libs/vkd3d: Add API for creating vkd3d instances.
...
Makes possible to share a Vulkan instance between multiple devices.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-12 19:27:01 +01:00
Józef Kucia
604056daf4
libs/vkd3d: Allow library user to create internal threads.
...
We want to create Win32 threads when running under Wine.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-12 19:26:58 +01:00
Józef Kucia
38f2d893b1
libs/vkd3d-shader: Translate dcl_input_primitive instructions.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-11 22:31:52 +01:00
Józef Kucia
31ec7b9160
libs/vkd3d-shader: Translate dcl_output_topology instructions.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-11 22:31:50 +01:00
Józef Kucia
fb67ccd159
libs/vkd3d-shader: Translate geometry shader emit instructions.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-11 22:31:48 +01:00
Józef Kucia
374a23bdd8
libs/vkd3d-shader: Introduce separate stream for execution mode declarations.
...
Tessellation and geometry shaders generate a lot of execution mode
declarations.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-11 22:31:47 +01:00
Józef Kucia
4ad1f9683e
libs/vkd3d-shader: Translate dcl_maxout instructions.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-11 22:31:45 +01:00
Józef Kucia
ee8eb9b4e4
libs/vkd3d: Validate miplevel count while creating resources.
...
vkd3d_log2i() is imported from wined3d.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-11 22:31:33 +01:00
Józef Kucia
5d85da0d84
libs/vkd3d: Release current command allocator in d3d12_command_list_Close().
...
d3d12_command_allocator_free_command_buffer() is not a very accurate name.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-09 20:37:12 +01:00
Józef Kucia
e061e9f3cb
libs/vkd3d: Add more formats.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-09 20:37:10 +01:00
Józef Kucia
5123feb750
libs/vkd3d: Remove unused prototype for vkEnumerateInstanceLayerProperties().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-09 20:37:08 +01:00
Józef Kucia
8e3302d532
libs/vkd3d: Fix crash when creating NULL CBVs.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-09 20:37:04 +01:00
Józef Kucia
f0bc873e7a
libs/vkd3d-shader: Generate valid SPIR-V for unimplemented registers.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-09 20:37:02 +01:00
Józef Kucia
219b537209
libs/vkd3d-shader: Handle unimplemented registers more gracefully.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-09 20:36:59 +01:00
Józef Kucia
4ae6285c8e
libs/vkd3d-shader: Fix result type for OpImageSampleDref instructions.
...
Per the SPIR-V spec:
"Result Type must be a scalar of integer type or floating-point type."
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-12-15 16:27:27 +01:00
Józef Kucia
7ee3a02f92
libs/vkd3d-shader: Avoid theoretical crash in vkd3d_dxbc_compiler_emit_dot().
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-12-14 13:40:26 +01:00
Józef Kucia
006f36c2ac
libs/vkd3d-shader: Introduce vkd3d_dxbc_compiler_get_constant_uint_vector() helper.
...
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-12-14 13:40:20 +01:00
Józef Kucia
995e3a2359
libs/vkd3d-utils: Use proper name in libvkd3d-utils.pc.
2017-12-12 13:12:47 +01:00
Józef Kucia
879c9e43d1
libs/vkd3d: Do not export D3D12* functions.
...
Move them to libvkd3d-utils.
2017-12-12 13:12:47 +01:00
Józef Kucia
e0cb3776c1
libs/vkd3d-shader: Fix discard_z instruction.
2017-12-11 12:55:55 +01:00
Józef Kucia
4e121f8b5d
libs/vkd3d-shader: Implement SV_IsFrontFace.
2017-10-31 15:44:44 +01:00
Józef Kucia
79f80df1ee
libs/vkd3d-shader: Translate dcl_input_ps_sgv instructions.
2017-10-31 15:44:44 +01:00
Józef Kucia
7e5dd39f5f
libs/vkd3d: Prefer VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL.
...
Use VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL if depth/stencil
writes are disabled.
2017-10-30 14:04:53 +01:00
Józef Kucia
3340cafdc4
libs/vkd3d-shader: Avoid potential stack smashing.
2017-10-25 22:55:39 +02:00
Józef Kucia
f04389d90b
libs/vkd3d-shader: Use more sensible default descriptor binding assignment.
2017-10-25 14:34:44 +02:00
Józef Kucia
e959686f12
libs/vkd3d-shader: Make sure that OpVariables are first instructions in main function.
...
The SPIR-V spec says:
"All OpVariable instructions in a function must be in the first block
in the function. These instructions, together with any immediately
preceding OpLine instructions, must be the first instructions in that
block."
2017-10-25 09:58:14 +02:00
Józef Kucia
b65c42e6f9
libs/vkd3d-shader: Avoid OpVectorShuffle on scalars.
...
The SPIR-V spec states:
"Vector 1 and Vector 2 must both have vector types, with the same
Component Type as Result Type."
2017-10-24 21:26:48 +02:00
Józef Kucia
2b21fbf6b8
libs/vkd3d: Add VKD3D_SHADER_DUMP_PATH environment variable for dumping shaders.
...
A similar functionality was helpful numerous number of times when
developing libvkd3d-shader.
2017-10-24 15:22:01 +02:00
Józef Kucia
f2b37c732a
libs/vkd3d: Use if-else in d3d12_command_list_get_fb_extent().
2017-10-24 12:10:48 +02:00
Józef Kucia
c70a023aeb
libs/vkd3d: Remove FIXME comment from vk_barrier_parameters_from_d3d12_resource_state().
2017-10-24 12:10:48 +02:00
Józef Kucia
b211df683e
libs/vkd3d: Implement copying between depth/stencil and color textures.
...
This could be implemented more efficiently, but ideally we would get
a Vulkan extension for copying between depth/stencil and color textures.
2017-10-20 18:27:17 +02:00
Józef Kucia
a4bd0c1c90
libs/vkd3d: Allocate GPU virtual addresses in d3d12_committed_resource_init().
2017-10-20 18:27:17 +02:00
Józef Kucia
a63b81858c
libs/vkd3d: Limit buffer usage flags based on heap type.
2017-10-20 18:27:17 +02:00
Józef Kucia
310335f748
libs/vkd3d-shader: Branch directly to merge block when switch default block is absent.
2017-10-20 18:27:17 +02:00
Józef Kucia
137b5d694b
libs/vkd3d-shader: Move inside_block field to vkd3d_control_flow_info.
2017-10-18 19:02:46 +02:00
Józef Kucia
c112f2ed46
libs/vkd3d-shader: Get rid of VKD3D_BLOCK_ELSE.
2017-10-18 19:02:46 +02:00
Józef Kucia
9f831b938a
libs/vkd3d-shader: Avoid emitting empty else branches.
...
We have to patch SpvOpBranchConditional instruction when emitting the
else block because we do not know if an else block is present in
advance.
2017-10-18 19:02:46 +02:00
Józef Kucia
646385e871
libs/vkd3d-shader: Get rid of VKD3D_BLOCK_MAIN.
2017-10-18 19:02:46 +02:00
Józef Kucia
8a047a8eb7
libs/vkd3d-shader: Rename control flow union member for if instructions.
2017-10-18 19:02:46 +02:00
Józef Kucia
0369f39a47
libs/vkd3d-shader: Generate correct SPIR-V for rcp with multiple components.
2017-10-18 12:21:24 +02:00
Józef Kucia
7fa3f2ed1a
libs/vkd3d: Add FIXME comment for GPU VA allocator.
2017-10-18 11:54:56 +02:00
Józef Kucia
c5e400fa30
libs/vkd3d-shader: Document hacks introduced for Nvidia driver.
...
See 70f5b24f92
.
2017-10-12 17:47:53 +02:00
Józef Kucia
2171ba6d32
libs/vkd3d-shader: Decrement OpAtomicIDecrement result.
2017-10-12 13:10:26 +02:00
Józef Kucia
94a33020d3
libs/vkd3d-shader: Use switch statement in shader_parse_root_parameters().
2017-10-10 16:57:36 +02:00
Józef Kucia
4522a80de8
libs/vkd3d-shader: Use switch statement in shader_write_root_parameters().
2017-10-10 16:57:36 +02:00
Józef Kucia
18b285328e
libs/vkd3d-shader: Add version argument to vkd3d_shader_serialize_root_signature().
2017-10-10 16:57:36 +02:00
Józef Kucia
f4cfebcd7e
libs/vkd3d: Remove hack for creating root signatures from description.
2017-10-10 16:02:09 +02:00
Józef Kucia
5b5cffcf84
libs/vkd3d: Implement creating root signature from bytecode.
2017-10-10 16:02:09 +02:00
Józef Kucia
4629cbdf8a
libs/vkd3d: Implement D3D12SerializeRootSignature().
2017-10-10 16:02:09 +02:00
Józef Kucia
6b43a5fe38
libs/vkd3d-shader: Implement root signature serialization.
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
586e1cc532
libs/vkd3d-shader: Implement relative addressing for constant buffers.
2017-10-06 17:06:31 +02:00
Józef Kucia
853068c84d
libs/vkd3d: Get rid of host writes memory dependency for intial state transitions.
2017-10-06 17:06:31 +02:00
Józef Kucia
97bfba1167
libs/vkd3d: Avoid read access bits in source access masks.
...
A memory dependency is used to make memory writes available
and visible.
2017-10-06 17:06:31 +02:00
Józef Kucia
5479ac7011
libs/vkd3d-shader: Always emit default block for OpSwitch.
...
The default block is required in SPIR-V.
2017-10-05 15:58:51 +02:00
Józef Kucia
9feb7a3956
libs/vkd3d-shader: Recognize nop instruction.
2017-10-05 15:58:51 +02:00
Józef Kucia
67aed755ab
libs/vkd3d: Implement d3d12_command_list_ClearUnorderedAccessViewUint() for R32_UINT buffer views.
...
Ideally, we would store additional informations only in CPU descriptors.
2017-10-04 13:55:33 +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
b002cc4cae
libs/vkd3d: Use BC1 formats with alpha.
2017-09-26 11:48:03 +02:00
Józef Kucia
e7aa2a7bcf
libs/vkd3d-shader: Emit NonReadable decoration for image variables.
...
Fixes image writes for UNORM formats on Anv. Anv uses special surface
state for write-only storage image descriptors.
The SPIR-V spec doesn't state that the NonReadable decoration is
required for images used with StorageImageWriteWithoutFormat. On the
other hand, glslang requires the 'writeonly' keyword for images without
format, and it emits the NonReadable decoration.
2017-09-26 10:37:41 +02:00
Józef Kucia
5a020d6673
libs/vkd3d-shader: Implement shader visibility for descriptors.
2017-09-22 16:42:07 +02:00
Józef Kucia
14d975da8d
libs/vkd3d: Unroll descriptor copies for SRVs and UAVs.
...
Consecutive binding updates need to have the same descriptor type
according to validation layers.
2017-09-22 16:42:07 +02:00
Józef Kucia
6ef1961ed0
libs/vkd3d: Avoid recording invalid vkCmdCopyImage() commands.
2017-09-21 15:12:13 +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
cfa827b2f8
libs/vkd3d: Call compute_input_layout_offsets() unconditionally.
2017-09-21 15:12:13 +02:00
Józef Kucia
54cd424daf
libs/vkd3d: Implement d3d12_command_list_SetGraphicsRootShaderResourceView().
2017-09-19 17:29:20 +02:00
Józef Kucia
eb8eba02bd
libs/vkd3d: Implement d3d12_command_list_SetComputeRootShaderResourceView().
2017-09-19 17:29:20 +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
acfd64c20e
libs/vkd3d: Avoid copying descriptors for dirty root descriptor tables.
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
602f9780f8
libs/vkd3d-shader: Implement "sample" interpolation qualifier.
2017-09-14 15:38:19 +02:00
Józef Kucia
2ea8ffb554
libs/vkd3d: Avoid vkCmdCopyQueryPoolResults() for not issued queries.
...
The Vulkan spec states:
* "If the query does not become available in a finite amount of time
(e.g. due to not issuing a query since the last reset), a
VK_ERROR_DEVICE_LOST error may occur."
* "If queries will never finish (e.g. due to being reset but not
issued), then vkGetQueryPoolResults may not return in finite time."
2017-09-14 14:57:09 +02:00
Józef Kucia
334c532401
libs/vkd3d: Implement d3d12_command_list_CopyResource() for buffers.
2017-09-14 14:57:09 +02:00
Józef Kucia
6b757f3002
libs/vkd3d-shader: Subtract BaseInstance from InstanceIndex.
...
Depends on SPV_KHR_shader_draw_parameters extension.
2017-09-12 17:42:42 +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
2425e2939a
libs/vkd3d: Match input layout elements with vertex shader inputs.
2017-09-11 22:35:16 +02:00
Józef Kucia
b19fe74284
libs/vkd3d-shader: Export shader signature parsing.
2017-09-11 22:35:16 +02:00
Józef Kucia
b61c785bd0
libs/vkd3d-shader: Implement SV_InstanceID.
2017-09-11 22:35:16 +02:00
Józef Kucia
cd99601b3c
libs/vkd3d: Implement offset computation for D3D12_APPEND_ALIGNED_ELEMENT.
2017-09-11 22:35:16 +02:00
Józef Kucia
8e802ed0af
libs/vkd3d: Update descriptor table ranges only with matching descriptor types.
2017-09-11 22:35:16 +02:00
Józef Kucia
a78fe60ef8
Revert "libs/vkd3d: Skip unbound UAV counters."
...
This reverts commit d9bc635d1a
.
We should not need to handle this invalid behavior. It was triggered
by the bug in d3d12_command_list_update_descriptor_table().
2017-09-11 22:35:16 +02:00
Józef Kucia
1cde37d341
libs/vkd3d: Fix updating descriptor sets for descriptor tables with gaps.
...
Fixes 9afaed918d
.
2017-09-11 22:35:16 +02:00
Józef Kucia
32966338df
libs/vkd3d: Get rid of UAV counter count from d3d12_pipeline_state.
2017-09-08 15:30:48 +02:00
Józef Kucia
e8868affc0
libs/vkd3d: Clear UAV counters dirty mask after updating descriptors.
2017-09-08 15:30:48 +02:00
Józef Kucia
d9bc635d1a
libs/vkd3d: Skip unbound UAV counters.
2017-09-08 15:04:30 +02:00
Józef Kucia
9afaed918d
libs/vkd3d: Bind descriptor set for UAV counters.
2017-09-08 15:04:30 +02:00
Józef Kucia
19dc6c412e
libs/vkd3d: Constify root signature pointers.
2017-09-08 15:04:30 +02:00
Józef Kucia
0d28036d2a
libs/vkd3d: Add UAV counter support for compute pipelines.
...
UAV counter descriptors are stored in a separate VkDescriptorSet.
A VkPipelineLayout created for compute pipeline is compatible for all
other descriptor sets with the VkPipelineLayout created for the root
signature. This ensures that only UAV counter bindings in the last
descriptor set may be disturbed when switching between pipelines with
compatible root signatures.
The implementation of vkd3d_popcount() is based on
https://graphics.stanford.edu/~seander/bithacks.html
2017-09-08 15:04:30 +02:00
Józef Kucia
37f4c9d2a3
libs/vkd3d: Print only TRACE() messages for not initialized descriptors.
...
A descriptor do not have to be initialized if it is not used by shaders.
2017-09-07 17:48:43 +02:00
Józef Kucia
30cd4cc59f
libs/vkd3d-shader: Always declare format for raw/structured image variables.
2017-09-07 17:48:43 +02:00
Józef Kucia
6dfb4ad520
libs/vkd3d-shader: Mark imm_atomic_alloc as UAV read instruction.
2017-09-07 17:48:43 +02:00
Józef Kucia
4af15035df
libs/vkd3d-shader: Improve some debug messages.
2017-09-07 17:48:43 +02:00
Józef Kucia
3191e1eaa9
libs/vkd3d-shader: Implement UAV counters instructions.
2017-09-07 17:15:54 +02:00
Józef Kucia
5ef6f71996
libs/vkd3d-shader: Emit declarations for UAV counters.
2017-09-07 17:15:54 +02:00
Józef Kucia
7416c83ae2
libs/vkd3d-shader: Rename vkd3d_descriptor_type to vkd3d_shader_descriptor_type.
2017-09-07 17:15:54 +02:00
Józef Kucia
efdf2ec691
libs/vkd3d-shader: Rename vkd3d_shader_push_constant to vkd3d_shader_push_constant_buffer.
...
This should be clearer. Multiple constant buffers can be assigned to
a single push constant range.
2017-09-07 17:15:54 +02:00
Józef Kucia
bd0c886281
libs/vkd3d: Store push constant ranges in root signatures.
...
In prep for UAV counters support.
2017-09-07 17:15:54 +02:00
Józef Kucia
ce8a0290b4
libs/vkd3d: Factor out vkd3d_create_pipeline_layout() function.
2017-09-07 17:15:54 +02:00
Józef Kucia
22b019137b
libs/vkd3d: Factor out vkd3d_create_descriptor_set_layout() function.
2017-09-07 17:15:53 +02:00
Józef Kucia
f587670445
libs/vkd3d: Drop support for SPIR-V shaders.
2017-09-07 17:15:53 +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
23150f6050
libs/vkd3d: Update Vulkan descriptor sets just before draw call.
2017-09-05 11:53:55 +02:00
Józef Kucia
36d7578093
libs/vkd3d: Move descriptor set functions closer to top of file.
...
In prep for the next commit.
2017-09-05 11:53:55 +02:00
Józef Kucia
9eee65c3ab
libs/vkd3d: Validate root signature size.
2017-09-05 11:53:55 +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
a780b7a11c
libs/vkd3d: Implement reference counting for Vulkan views and samplers.
2017-09-04 18:33:09 +02:00
Józef Kucia
ea8e5eaaba
libs/vkd3d-shader: Introduce vkd3d_dxbc_compiler_emit_store_dst_swizzled() helper function.
2017-09-04 18:33:09 +02:00
Józef Kucia
3a4a71905e
libs/vkd3d-shader: Implement texel offset for gather4.
2017-09-04 12:46:52 +02:00
Józef Kucia
293ce313ac
libs/vkd3d-shader: Translate gather4 instructions.
2017-09-04 12:46:52 +02:00
Józef Kucia
5bdc928908
libs/vkd3d-shader: Export shader scan function.
...
For UAV counters support in libvkd3d.
2017-09-01 11:27:58 +02:00
Józef Kucia
e11b5fd566
libs/vkd3d-shader: Implement scanning for UAV counters.
2017-09-01 11:27:58 +02:00
Józef Kucia
df0e4bf9cd
libs/vkd3d: Fix default SRVs for 2D array textures.
2017-09-01 11:27:58 +02:00
Józef Kucia
62bd4e6e63
libs/vkd3d: Add support for OffsetInDescriptorsFromTableStart.
2017-08-31 11:21:34 +02:00
Józef Kucia
39a2c0e5f1
libs/vkd3d: Fix width and height for DSV descriptors.
2017-08-31 09:42:50 +02:00
Józef Kucia
7917b84ce9
libs/vkd3d: Fix width and height for RTV descriptors.
2017-08-31 09:42:50 +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
Józef Kucia
660ee7b090
libs/vkd3d: Do not use PlaneSlice as layer index.
2017-08-31 09:42:50 +02:00
Józef Kucia
f3862db04d
libs/vkd3d: Use VK_PIPELINE_BIND_POINT_RANGE_SIZE.
2017-08-31 09:29:02 +02:00
Józef Kucia
72b109d380
libs/vkd3d-shader: Factor out vkd3d_spirv_build_image_instruction() function.
2017-08-31 09:29:02 +02:00
Józef Kucia
d42f46cab6
libs/vkd3d: Use d3d12_resource_is_buffer() in d3d12_command_list_ResolveQueryData().
2017-08-31 09:29:02 +02:00
Józef Kucia
904858f4a9
libs/vkd3d: Introduce d3d12_resource_is_texture() helper function.
...
Makes some code easier to read.
2017-08-30 18:31:52 +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
489abe870c
libs/vkd3d: Implement d3d12_resource_GetHeapProperties().
2017-08-30 17:57:23 +02:00
Sven Hesse
4aa534914b
libs/vkd3d: Implement CopyTextureRegion() for texture to texture.
2017-08-30 16:53:29 +02:00
Józef Kucia
f8ef6630df
libs/vkd3d: Implement d3d12_device_CopyDescriptorsSimple().
2017-08-30 16:41:41 +02:00
Józef Kucia
7c67665032
libs/vkd3d-shader: Implement ld_{raw, structured} for UAVs.
2017-08-30 16:41:41 +02:00
Józef Kucia
87a2fec426
libs/vkd3d-shader: Translate discard instructions.
2017-08-30 16:41:41 +02:00
Józef Kucia
99b72d4db1
libs/vkd3d-shader: Implement sample_l.
2017-08-30 16:41:41 +02:00
Józef Kucia
5b8d1fbdd5
libs/vkd3d-shader: Implement sample_c_lz.
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
1f51eebe12
libs/vkd3d: Fail in GetTimestampFrequency() for queues without timestamp support.
2017-08-29 15:17:39 +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
Sven Hesse
4bfa651561
libs/vkd3d: Reset the queries before use.
2017-08-29 14:05:49 +02:00
Sven Hesse
531875d924
libs/vkd3d: Add a FIXME for binary occlusion queries.
2017-08-29 13:38:39 +02:00
Sven Hesse
027cc05209
libs/vkd3d: Set VK_QUERY_CONTROL_PRECISE_BIT for occlusion queries.
2017-08-29 13:38:39 +02:00
Józef Kucia
6800dc8e40
libs/vkd3d: Use switch instead of multiple ifs in vk_write_descriptor_set_from_d3d12_desc().
2017-08-29 12:43:04 +02:00
Józef Kucia
7864ac4d67
libs/vkd3d: Merge if statements in vk_write_descriptor_set_from_d3d12_desc().
2017-08-29 12:43:04 +02:00
Józef Kucia
61044c462b
libs/vkd3d: Add FIXME() for ignored max command count.
2017-08-29 10:32:24 +02:00
Henri Verbeet
a624787479
libs/vkd3d: Simplify d3d12_command_list_ResolveQueryData().
2017-08-28 20:38:17 +02:00
Henri Verbeet
040082d965
libs/vkd3d: Simplify d3d12_command_list_EndQuery().
2017-08-28 20:38:05 +02:00
Henri Verbeet
9af2876958
libs/vkd3d: Simplify d3d12_command_list_BeginQuery().
2017-08-28 20:37:51 +02:00
Henri Verbeet
7e5af314f1
libs/vkd3d: Validation should happen in the d3d12/Vulkan validation layers.
...
Unless we have tests that say otherwise.
2017-08-28 20:37:17 +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
da54bd0278
libs/vkd3d: Implement indirect dispatches.
2017-08-28 19:29:35 +02:00
Henri Verbeet
b000952e4f
libs/vkd3d: Implement indirect draws.
2017-08-28 19:26:31 +02:00
Henri Verbeet
b4d6aa0dbd
libs/vkd3d: Explicitly handle VK_ERROR_DEVICE_LOST in hresult_from_vk_result().
2017-08-28 19:21:17 +02:00
Józef Kucia
9b8260a246
libs/vkd3d-shader: Translate ld_uav_typed instructions.
2017-08-28 19:10:23 +02:00
Józef Kucia
d107538df8
libs/vkd3d: Implement UAVs for 2D array textures.
2017-08-28 19:10:23 +02:00
Sven Hesse
3001ad5a4f
libs/vkd3d: Implement ResolveQueryData() for QUERY_TYPE_PIPELINE_STATISTICS.
2017-08-28 15:15:26 +02:00
Sven Hesse
08c5b5ec2e
libs/vkd3d: Implement EndQuery() for QUERY_TYPE_PIPELINE_STATISTICS.
2017-08-28 15:13:41 +02:00
Sven Hesse
5d5587b917
libs/vkd3d: Implement BeginQuery() for QUERY_TYPE_PIPELINE_STATISTICS.
2017-08-28 15:13:01 +02:00
Józef Kucia
8f8eb71ff8
libs/vkd3d: Avoid calling vkGetPhysicalDeviceProperties() in d3d12_command_queue_GetTimestampFrequency().
2017-08-28 13:03:37 +02:00
Józef Kucia
b8c31b771d
libs/vkd3d: Add missing return statement in d3d12_command_list_ResolveQueryData().
2017-08-28 13:03:37 +02:00
Józef Kucia
faf86ebc58
libs/vkd3d: Add missing trace messages.
2017-08-28 13:03:37 +02:00
Józef Kucia
b5c89fa89f
libs/vkd3d-shader: Implement atomic compare exchange instructions.
2017-08-28 11:01:23 +02:00
Józef Kucia
482af89416
libs/vkd3d-shader: Implement remaining binary atomic instructions.
2017-08-28 11:01:23 +02:00
Sven Hesse
f8b7b26372
libs/vkd3d: Implement ResolveQueryData() for QUERY_TYPE_TIMESTAMP.
2017-08-25 15:16:06 +02:00
Sven Hesse
988e1a96de
libs/vkd3d: Implement EndQuery() for QUERY_TYPE_TIMESTAMP.
2017-08-25 15:16:05 +02:00
Sven Hesse
67587f81e4
libs/vkd3d: Remember the Query Heap creation properties.
2017-08-25 15:16:03 +02:00
Sven Hesse
65f63d14fa
libs/vkd3d: Implement d3d12_command_queue_GetTimestampFrequency().
2017-08-25 15:16:02 +02:00
Józef Kucia
4e300ab1d4
libs/vkd3d-shader: Translate imm_atomic_iadd instructions.
2017-08-24 17:00:16 +02:00
Józef Kucia
cb166fbd5a
libs/vkd3d-shader: Translate atomic_umax instructions.
2017-08-24 17:00:16 +02:00
Józef Kucia
d464c9033f
libs/vkd3d-shader: Translate atomic_umin instructions.
2017-08-24 17:00:16 +02:00
Józef Kucia
a836cc2fe3
libs/vkd3d-shader: Translate atomic_or instructions.
2017-08-24 17:00:16 +02:00
Józef Kucia
1c4b9be079
libs/vkd3d-shader: Implement store_{raw,structured} for TGSM.
2017-08-24 15:13:38 +02:00
Józef Kucia
f7f7c6d889
libs/vkd3d-shader: Implement ld_raw.
2017-08-24 15:13:38 +02:00
Józef Kucia
a94751398b
libs/vkd3d-shader: Add support for atomic instructions on TGSM.
2017-08-24 15:13:38 +02:00
Józef Kucia
61dd701284
libs/vkd3d-shader: Translate imm_atomic_exch instructions.
2017-08-24 15:13:38 +02:00
Józef Kucia
eba87fa55b
libs/vkd3d-shader: Implement ld_structured for TGSM.
2017-08-24 15:13:38 +02:00
Józef Kucia
cf5fb3fbc2
libs/vkd3d-shader: Fix swizzle for raw/structured instructions.
2017-08-24 15:13:38 +02:00
Józef Kucia
4bfd0456e5
libs/vkd3d-shader: Refactor raw/structured buffer addressing.
...
In prep for TGSM support.
2017-08-24 15:13:38 +02:00
Józef Kucia
4d0b4f4f71
libs/vkd3d-shader: Add vkd3d_spirv_build_op_composite_extract1() function.
2017-08-24 11:11:16 +02:00
Józef Kucia
cef35c7c76
libs/vkd3d-shader: Translate dcl_tgsm_structured instructions.
2017-08-24 11:11:16 +02:00
Józef Kucia
9ed0feed12
libs/vkd3d-shader: Translate dcl_tgsm_raw instructions.
2017-08-24 11:11:16 +02:00
Józef Kucia
19c1b81a71
libs/vkd3d-shader: Translate sync instructions.
2017-08-24 11:11:16 +02:00
Sven Hesse
3a966cf38e
libs/vkd3d: Mark D3D12_QUERY_HEAP_TYPE_SO_STATISTICS with a FIXME()
2017-08-23 17:31:12 +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
6c5d8da24d
libs/vkd3d-shader: Store structure stride in symbol table.
2017-08-22 14:53:33 +02:00
Józef Kucia
eb5e7a4412
libs/vkd3d-shader: Implement ld_structured for SRVs.
2017-08-22 12:39:56 +02:00
Józef Kucia
d5697448eb
libs/vkd3d-shader: Translate dcl_resource_structured instructions.
2017-08-22 12:39:56 +02:00
Józef Kucia
77e47eddb9
libs/vkd3d-shader: Translate dcl_resource_raw instructions.
2017-08-22 12:39:56 +02:00
Józef Kucia
d443e0eb00
libs/vkd3d: Add support for buffer SRVs.
2017-08-22 12:39:56 +02:00
Józef Kucia
6ffe54b9ec
libs/vkd3d-shader: Translate round_z instructions.
2017-08-22 12:39:56 +02:00
Józef Kucia
694c20b1da
libs/vkd3d: Implement structured UAVs.
2017-08-21 16:30:33 +02:00
Józef Kucia
0f7c86e2bd
libs/vkd3d-shader: Translate store_structured instructions.
2017-08-21 16:30:33 +02:00
Józef Kucia
fbc5861728
libs/vkd3d: Track resource usage for UAV clears.
2017-08-21 12:41:07 +02:00
Józef Kucia
03e189386a
libs/vkd3d-shader: Translate atomic_iadd instructions.
2017-08-21 12:41:07 +02:00
Józef Kucia
d287591889
libs/vkd3d-shader: Set image format for UAV typed reads and atomic instructions.
2017-08-21 12:41:07 +02:00
Józef Kucia
a90c7c5f12
libs/vkd3d-shader: Add basic shader scan functionality.
2017-08-21 12:41:07 +02:00
Józef Kucia
49a877df86
libs/vkd3d: Allow creating UAVs with no desc for textures.
2017-08-21 12:41:07 +02:00
Józef Kucia
92bb7969a5
libs/vkd3d: Create push descriptor set only if needed.
2017-08-18 17:08:56 +02:00
Józef Kucia
b3d2b36afb
libs/vkd3d: Prohibit compressed formats for buffer views.
2017-08-18 17:08:56 +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
41b7c46c3e
libs/vkd3d-shader: Translate dcl_uav_structured instructions.
2017-08-18 14:52:40 +02:00
Józef Kucia
cc0cce7d8e
libs/vkd3d: Add DXGI_FORMAT_R32_SINT format.
2017-08-18 14:52:40 +02:00
Józef Kucia
1f22a9bb6b
libs/vkd3d: Fix draws with no render targets.
2017-08-18 14:52:40 +02:00
Józef Kucia
8f631c8b0c
libs/vkd3d-shader: Make bytecode parser responsible for setting scalar register write masks.
2017-08-18 14:52:40 +02:00
Józef Kucia
ca9cc355b4
libs/vkd3d-shader: Recognize oDepth register.
2017-08-18 14:52:40 +02:00
Józef Kucia
dc7f65122d
libs/vkd3d-shader: Silence push constant size mismatch FIXMEs().
...
This generally doesn't mean anything. It may only be an issue
for out of bounds accesses.
2017-08-17 12:13:50 +02:00
Józef Kucia
ef2f490b20
libs/vkd3d-shader: Do not try to find matching signature element for system-value inputs.
...
Silences false-positive FIXME() messages.
2017-08-17 12:13:50 +02:00
Józef Kucia
242ef52d8b
libs/vkd3d-shader: Translate sample_c instructions.
...
Nvidia expects that the D_ref is packed together with texture
coordinates. The D_ref parameter is ignored.
This isn't a problem for glslang because in GLSL D_ref is generally
passed together with texture coordinates.
2017-08-16 17:38:33 +02:00
Józef Kucia
2527f820cd
libs/vkd3d-shader: Cleanup vkd3d_dxbc_compiler_prepare[_sampled]_image() functions.
2017-08-16 17:38:33 +02:00
Józef Kucia
c9426e939e
libs/vkd3d: Reduce width of format tables.
2017-08-16 17:38:33 +02:00
Józef Kucia
39ff9e4829
libs/vkd3d: Add more depth/stencil formats.
2017-08-16 17:38:33 +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
1857fdc1bc
libs/vkd3d-shader: Translate ld instructions.
2017-08-16 13:11:52 +02:00
Józef Kucia
f5515c46df
libs/vkd3d: Create default sampler for each root signature.
...
We need a sampler for SpvOpImageFetch aka texelFetch().
2017-08-16 13:11:52 +02:00
Józef Kucia
e3d6bac31b
libs/vkd3d-shader: Introduce vkd3d_shader_interface structure.
2017-08-16 13:11:52 +02:00
Józef Kucia
e6f6d01489
libs/vkd3d-shader: Implement resinfo for SRVs.
2017-08-16 13:11:52 +02:00
Józef Kucia
dc081f6f9e
libs/vkd3d: Set VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT only for typeless formats.
2017-08-15 13:10:05 +02:00
Henri Verbeet
26edc3c545
libs/vkd3d: Add typeless formats.
2017-08-15 13:10:05 +02:00
Józef Kucia
f82a90ff78
libs/vkd3d-shader: Fix write mask for vPrim register.
2017-08-15 11:25:10 +02:00
Józef Kucia
32e69fa945
libs/vkd3d: Use KHR_push_descriptor for root descriptors.
...
Thanks to KHR_push_descriptor, we do not have to allocate descriptor
sets for subsequent root descriptor parameters updates.
2017-08-11 13:58:04 +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
5a9b625522
libs/vkd3d: Factor out d3d12_root_signature_init_root_descriptor_tables() function.
2017-08-11 13:58:04 +02:00
Józef Kucia
cc0cfb5a81
libs/vkd3d: Factor out d3d12_root_signature_init_root_descriptors() function.
...
Root descriptors are going to be assigned to a separate descriptor set
in order to be used with VK_KHR_push_descriptor.
2017-08-11 13:58:04 +02:00
Józef Kucia
e3cdf5226f
libs/vkd3d: Factor out d3d12_root_signature_init_static_samplers() function.
2017-08-11 13:58:04 +02:00
Józef Kucia
1261c7ea0f
libs/vkd3d: Do not update bound descriptor sets.
2017-08-11 13:58:04 +02:00
Józef Kucia
6ae3f1ee29
libs/vkd3d: Introduce vkd3d_pipeline_bindings structure.
2017-08-11 13:58:04 +02:00
Józef Kucia
9c2b126f38
libs/vkd3d: Factor out d3d12_root_signature_init_descriptor_pool_size().
2017-08-11 13:58:04 +02:00
Józef Kucia
17e49dc6c6
libs/vkd3d-shader: Translate store_raw instructions.
2017-08-11 13:58:04 +02:00
Józef Kucia
5aefd2c9e4
libs/vkd3d-shader: Translate dcl_uav_raw instructions.
2017-08-11 13:58:04 +02:00
Józef Kucia
69745d1c08
libs/vkd3d: Fix mapping for SRV/UAV root descriptors.
2017-08-11 13:58:04 +02:00
Józef Kucia
3b854a0023
libs/vkd3d: Get rid of bool parameter to d3d12_command_allocator_free_resources().
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
Józef Kucia
0075c87a38
libs/vkd3d: Drop VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT.
...
We do not use input attachments.
2017-08-09 18:44:16 +02:00