Józef Kucia
d96076a919
include: Add typedefs for vkd3d-shader function pointers.
...
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>
2019-02-25 19:08:06 +01:00
Józef Kucia
02cbc53b96
vkd3d-shader: Get rid of vkd3d_dxbc_compiler_emit_swizzle_ext().
...
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>
2019-02-25 19:08:05 +01:00
Józef Kucia
cb24be8e83
vkd3d-shader: Do not assume float type for arrayed 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>
2019-02-25 19:08:03 +01:00
Józef Kucia
04e2091afa
vkd3d-shader: Do not assume vec4 destination in vkd3d_dxbc_compiler_emit_store().
...
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>
2019-02-25 19:08:01 +01:00
Józef Kucia
95b6d5222d
vkd3d-shader: Call vkd3d_dxbc_compiler_leave_shader_phase() also for last phase.
...
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>
2019-02-25 19:07:59 +01:00
Józef Kucia
38f75846b4
vkd3d-shader: Emit epilogue functions while leaving shader phases.
...
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>
2019-02-25 19:07:57 +01:00
Józef Kucia
61aeaae0c2
vkd3d-shader: Factor out vkd3d_dxbc_compiler_emit_store().
...
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>
2019-02-25 19:07:55 +01:00
Józef Kucia
64f7ff3898
vkd3d-shader: Merge ifs in vkd3d_dxbc_compiler_emit_swizzle_ext().
...
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>
2019-02-25 19:07:52 +01:00
Philip Rebohle
c560fdfa26
vkd3d-shader: Decorate integer fragment shader builtins as flat.
...
From the Vulkan spec, 8.13 "Interpolation Decorations":
Fragment shader inputs that are signed or unsigned integers,
integer vectors, or any double-precision floating-point type
must be decorated with Flat.
This also matches glslang behaviour.
Specifically, this fixes tone-mapping in Unreal Engine 4 on RADV
and AMDGPU-PRO, where gl_Layer is used as a fragment shader input.
Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
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>
2019-02-25 19:07:50 +01:00
Józef Kucia
d1e0ac115c
vkd3d-shader: Avoid generating unique array types for immediate constant 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>
2019-02-22 12:30:44 +01:00
Józef Kucia
992dfb1a55
tests: Add more tessellation tests.
...
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>
2019-02-22 12:30:42 +01:00
Józef Kucia
a0069d9fb7
vkd3d-shader: Use correct base index for relative addressing of aggregates.
...
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>
2019-02-22 12:30:39 +01:00
Józef Kucia
d300e6f84c
vkd3d-shader: Remove v{Fork, Join}InstanceID from symbol table when leaving shader phase.
...
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>
2019-02-22 12:30:37 +01:00
Józef Kucia
9c46011b43
vkd3d-shader: Simplify vkd3d_dxbc_compiler_get_register_id().
...
Special casing is not needed.
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>
2019-02-22 12:30:35 +01:00
Józef Kucia
3cbdad5f29
vkd3d-shader: Translate vPrim 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>
2019-02-22 12:30:33 +01:00
Józef Kucia
7466758f08
vkd3d-shader: Fix swizzle for scalars.
...
In rare cases, OpCompositeExtract was generated for scalars.
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>
2019-02-22 12:30:30 +01:00
Józef Kucia
a6bf217af8
build: Fix 'make dist'.
...
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>
2019-02-22 12:30:27 +01:00
Józef Kucia
197c1d9612
vkd3d-shader: Handle VKD3DSPR_INCONTROLPOINT in vkd3d_dxbc_compiler_get_register_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>
2019-02-20 19:15:14 +01:00
Józef Kucia
d3622628bf
tests: Add another hull shader to NOP tessellation shaders test.
...
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>
2019-02-20 19:15:12 +01:00
Józef Kucia
b6de566e3a
vkd3d-shader: Add basic support for dcl_index_range.
...
We can address SPIR-V arrays 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>
2019-02-20 19:15:10 +01:00
Józef Kucia
a248aced81
tests: Add test for quad tessellation.
...
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>
2019-02-20 19:15:08 +01:00
Józef Kucia
d274318fe2
vkd3d-shader: Avoid using SPIR-V built-ins for shader interface between tessellation stages.
...
We can do this because both tessellation shaders are required in
Direct3D.
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>
2019-02-20 19:15:04 +01:00
Józef Kucia
2ce7b2305a
vkd3d: Implement SO statistics queries.
...
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>
2019-02-20 19:15:03 +01:00
Józef Kucia
7b84adec32
vkd3d-shader: Set xxxx swizzle for scalar registers.
...
Mainly for vOutputControlPointID.
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>
2019-02-20 19:15:00 +01:00
Józef Kucia
3fbbc68160
vkd3d-shader: Replace VKD3DSIH_TABLE_SIZE with VKD3DSIH_INVALID.
...
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>
2019-02-20 19:14:58 +01:00
Józef Kucia
70822141b7
vkd3d: Avoid passing invalid viewport to Vulkan.
...
Needs more tests.
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>
2019-02-14 16:01:16 +01:00
Józef Kucia
c333fddaf9
vkd3d-shader: Add support for OpenGL tessellation shaders.
...
In DXBC tessellator parameters are specified in hull shaders. In OpenGL,
even in SPIR-V, tessellator parameters must be specified in the
tessellation evaluation shader.
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>
2019-02-14 16:01:14 +01:00
Józef Kucia
22330b5414
vkd3d: Avoid using VK_WHOLE_SIZE for uniform buffer descriptors.
...
It is invalid to use VK_WHOLE_SIZE when a buffer is larger than
maxUniformBufferRange.
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>
2019-02-14 16:01:12 +01:00
Józef Kucia
f98866f7d8
vkd3d: Return the same value for MaxGPUVirtualAddressBitsPerResource.
...
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>
2019-02-14 16:01:09 +01:00
Józef Kucia
552f7b8eeb
vkd3d: Ignore barriers with unexpected sub-resource index.
...
For planar 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>
2019-02-14 16:01:07 +01:00
Józef Kucia
7829461d6d
tests: Add test for D3D12_FEATURE_FORMAT_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>
2019-02-14 16:01:05 +01:00
Józef Kucia
a2f38f88e2
vkd3d: Do not advertise tiled resource support.
...
Tiled resources are not implemented yet.
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>
2019-02-14 16:01:03 +01:00
Józef Kucia
52e44b5533
vkd3d: Trace decoded driver versions.
...
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>
2019-02-14 16:01:01 +01:00
Józef Kucia
b186645ccb
tests: Test GPU virtual address with readback buffer.
...
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>
2019-02-13 17:21:57 +01:00
Józef Kucia
48ed937de3
tests: Get rid of ID3D12Object_SetName(object, NULL).
...
It crashes on Windows.
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>
2019-02-13 17:21:52 +01:00
Józef Kucia
b1b3405bcf
vkd3d-shader: Implement user patch constants for hull 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>
2019-02-13 17:21:50 +01:00
Józef Kucia
7fde0ac78f
vkd3d-shader: Implement relative addressing for arrayed 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>
2019-02-13 17:21:48 +01:00
Józef Kucia
d30afc37c4
vkd3d-shader: Implement input registers for control point phase.
...
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>
2019-02-13 17:21:46 +01:00
Józef Kucia
efe68b00bb
vkd3d-shader: Add basic support for vpc registers in domain 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>
2019-02-13 17:21:44 +01:00
Józef Kucia
1a5f058f4a
vkd3d-shader: Translate vOutputControlPointID 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>
2019-02-13 17:21:42 +01:00
Józef Kucia
269bb649d7
vkd3d: Improve heuristic for selecting 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>
2019-02-13 17:21:39 +01:00
Józef Kucia
92185ce594
vkd3d: Fix formatting in is_dual_source_blending().
...
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>
2019-02-11 18:33:38 +01:00
Józef Kucia
1164de705e
vkd3d: Do not enable depth bias unconditionally.
...
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>
2019-02-11 18:33:36 +01:00
Józef Kucia
b2f286834a
tests: Add NOP test for 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>
2019-02-11 18:33:33 +01:00
Józef Kucia
09dea5f4d9
vkd3d-shader: Implement default control point phase.
...
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>
2019-02-11 18:33:31 +01:00
Józef Kucia
c9fb9c7a7d
vkd3d-shader: Simplify vkd3d_dxbc_compiler_emit_mov().
...
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>
2019-02-11 18:33:29 +01:00
Józef Kucia
bdae9e30b4
vkd3d-shader: Ignore dcl_hs_max_tessfactor.
...
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>
2019-02-11 18:33:26 +01:00
Józef Kucia
0498fafbb0
vkd3d-shader: Try to use SpvOpCopyMemory for mov 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>
2019-02-11 18:33:24 +01:00
Józef Kucia
a81a7f837e
vkd3d-shader: Add initial support for built-in patch constants.
...
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>
2019-02-08 17:20:39 +01:00
Józef Kucia
4ad4cbb7df
vkd3d-shader: Factor out vkd3d_symbol_set_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>
2019-02-08 17:20:37 +01:00