Conor McCarthy
488722b9b5
vkd3d: Create one fence worker thread per command queue.
...
Simplifies the handling of GPU waits, and in vkd3d-proton is reported
to increase performance when support for multiple Vulkan queues is
enabled, because it avoids the problem of fences being signaled while
they sit in the pending buffer waiting to be moved to the wait buffer.
Based on a vkd3d-proton patch by Philip Rebohle.
Signed-off-by: Conor McCarthy <cmccarthy@codeweavers.com >
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com >
Signed-off-by: Alexandre Julliard <julliard@winehq.org >
2022-05-02 20:19:32 +02:00
Conor McCarthy
34e7b87966
vkd3d: Introduce an internal refcount to d3d12_fence to replace the thread waiting mechanism.
...
Simplifies the preservation of fence objects until worker threads are
done with them, and will be needed when threaded queue submission is
added.
Signed-off-by: Conor McCarthy <cmccarthy@codeweavers.com >
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com >
Signed-off-by: Alexandre Julliard <julliard@winehq.org >
2022-05-02 20:19:29 +02:00
Giovanni Mascellani
6167b3a4e2
vkd3d-shader/hlsl: Handle branches in copy propagation.
...
Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com >
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com >
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com >
Signed-off-by: Alexandre Julliard <julliard@winehq.org >
2022-05-02 11:30:21 +02:00
Giovanni Mascellani
38d7913f5f
vkd3d-shader/hlsl: Allow storing to matrices.
...
Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com >
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com >
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com >
Signed-off-by: Alexandre Julliard <julliard@winehq.org >
2022-05-02 11:30:18 +02:00
Francisco Casas
a58c0e7c9d
vkd3d-shader/hlsl: Detect missing loads on rhs when splitting copies of non-numeric types.
...
Otherwise we can get failed assertions:
assert(node->type == HLSL_IR_LOAD);
because broadcasts to these types are not implemented yet.
Signed-off-by: Francisco Casas <fcasas@codeweavers.com >
Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com >
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com >
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com >
Signed-off-by: Alexandre Julliard <julliard@winehq.org >
2022-05-02 11:29:54 +02:00
Giovanni Mascellani
cf7cf05cb7
vkd3d-shader/hlsl: Parse matrix constructors.
...
Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com >
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com >
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com >
Signed-off-by: Alexandre Julliard <julliard@winehq.org >
2022-04-27 21:45:45 +02:00
Giovanni Mascellani
ff3ec5d4a5
vkd3d-shader/hlsl: Support matrix indexing.
...
Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com >
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com >
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com >
Signed-off-by: Alexandre Julliard <julliard@winehq.org >
2022-04-27 21:45:43 +02:00
Francisco Casas
246ff14511
vkd3d-shader/hlsl: Support all complex initalizers.
...
Signed-off-by: Francisco Casas <fcasas@codeweavers.com >
Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com >
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com >
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com >
Signed-off-by: Alexandre Julliard <julliard@winehq.org >
2022-04-27 21:45:41 +02:00
Giovanni Mascellani
e2b4f01a9f
vkd3d-shader/hlsl: Simplify flow in add_array_load().
...
Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com >
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com >
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com >
Signed-off-by: Alexandre Julliard <julliard@winehq.org >
2022-04-27 21:45:39 +02:00
Giovanni Mascellani
c5c50a8b9b
vkd3d-shader/hlsl: Do not generate useless swizzles.
...
Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com >
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com >
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com >
Signed-off-by: Alexandre Julliard <julliard@winehq.org >
2022-04-27 21:45:37 +02:00
Giovanni Mascellani
4d181bc622
vkd3d-shader/hlsl: Do not allow NaNs in SM1.
...
Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com >
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com >
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com >
Signed-off-by: Alexandre Julliard <julliard@winehq.org >
2022-04-27 21:45:32 +02:00
Zebediah Figura
9839850b87
vkd3d-shader: Remove the workaround for sample_c.
...
The current workaround is broken for texture cube arrays, which already have 4
components.
Sampling with the components not packed together apparently succeeds with newer
NVidia drivers, so just remove the workaround. Tested with 470.103.01 on a GTX
1060.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52886
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com >
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com >
Signed-off-by: Alexandre Julliard <julliard@winehq.org >
2022-04-26 16:02:09 +02:00
Giovanni Mascellani
74273ccadd
vkd3d-shader/hlsl: Do not handle vector types in major_size() and minor_size().
...
Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com >
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com >
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com >
Signed-off-by: Alexandre Julliard <julliard@winehq.org >
2022-04-25 22:12:55 +02:00
Giovanni Mascellani
d2ba10a696
vkd3d-shader/hlsl: Update split_copy()'s introductory comment.
...
Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com >
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com >
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com >
Signed-off-by: Francisco Casas <fcasas@codeweavers.com >
Signed-off-by: Alexandre Julliard <julliard@winehq.org >
2022-04-25 22:12:39 +02:00
Giovanni Mascellani
0e8098ccfe
vkd3d-shader/hlsl: Add trailing dots to warning messages.
...
Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com >
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com >
Signed-off-by: Francisco Casas <fcasas@codeweavers.com >
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com >
Signed-off-by: Alexandre Julliard <julliard@winehq.org >
2022-04-25 22:12:23 +02:00
Giovanni Mascellani
c680b674d6
vkd3d-shader/hlsl: Do not generate infinities in SM1.
...
Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com >
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com >
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com >
Signed-off-by: Alexandre Julliard <julliard@winehq.org >
2022-04-25 22:12:17 +02:00
Conor McCarthy
6b893b597b
vkd3d: Prevent a null pointer dereference when a descriptor is not a UAV.
...
Fixes crashes in Shadow of the Tomb Raider, GRID 2019 and probably others.
Signed-off-by: Conor McCarthy <cmccarthy@codeweavers.com >
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com >
Signed-off-by: Alexandre Julliard <julliard@winehq.org >
2022-04-25 22:12:04 +02:00
Giovanni Mascellani
e38ee49e99
vkd3d-shader/hlsl: Split matrix copies.
...
Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com >
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com >
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com >
Signed-off-by: Francisco Casas <fcasas@codeweavers.com >
Signed-off-by: Alexandre Julliard <julliard@winehq.org >
2022-04-20 23:02:14 +02:00
Giovanni Mascellani
d1fac2660c
vkd3d-shader/hlsl: Support vector indexing.
...
Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com >
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com >
Signed-off-by: Francisco Casas <fcasas@codeweavers.com >
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com >
Signed-off-by: Alexandre Julliard <julliard@winehq.org >
2022-04-20 23:02:11 +02:00
Zebediah Figura
aaa743033a
vkd3d-shader/hlsl: Return bool from add_record_load() and add_array_load().
...
Signed-off-by: Matteo Bruni <mbruni@codeweavers.com >
Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com >
Signed-off-by: Francisco Casas <fcasas@codeweavers.com >
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com >
Signed-off-by: Alexandre Julliard <julliard@winehq.org >
2022-04-20 23:02:00 +02:00
Zebediah Figura
a58e713314
include: Move vkd3d_dl*() helpers to vkd3d_common.h.
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com >
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com >
Signed-off-by: Alexandre Julliard <julliard@winehq.org >
2022-04-20 16:41:37 +02:00
Giovanni Mascellani
2b23b7329c
vkd3d-shader/hlsl: Fold constant modulus.
...
This commit includes work by Francisco Casas.
Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com >
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com >
Signed-off-by: Francisco Casas <fcasas@codeweavers.com >
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com >
Signed-off-by: Alexandre Julliard <julliard@winehq.org >
2022-04-15 21:18:20 +02:00
Giovanni Mascellani
40b299c727
vkd3d-shader/hlsl: Fold constant division.
...
This commit includes work by Francisco Casas.
Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com >
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com >
Signed-off-by: Francisco Casas <fcasas@codeweavers.com >
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com >
Signed-off-by: Alexandre Julliard <julliard@winehq.org >
2022-04-15 21:18:17 +02:00
Francisco Casas
aefadb87b6
vkd3d-shader/hlsl: Support complex numeric initializers.
...
Signed-off-by: Francisco Casas <fcasas@codeweavers.com >
Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com >
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com >
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com >
Signed-off-by: Alexandre Julliard <julliard@winehq.org >
2022-04-15 21:18:15 +02:00
Francisco Casas
9c518b45d1
vkd3d-shader/hlsl: Handle static struct initializer instructions.
...
Signed-off-by: Francisco Casas <fcasas@codeweavers.com >
Signed-off-by: Giovanni Mascellani <gmascellani@codeweavers.com >
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com >
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com >
Signed-off-by: Alexandre Julliard <julliard@winehq.org >
2022-04-15 21:18:13 +02:00