Commit Graph

4013 Commits

Author SHA1 Message Date
Conor McCarthy
b4b5af66ef vkd3d-shader/dxil: Emit an error if a LOAD instruction uses a forward-referenced pointer. 2024-04-30 16:31:39 +02:00
Alexandre Julliard
91762a62c6 vkd3d-shader: Avoid non-constant initializer.
Fixes "initializer element is not constant" error with gcc < 8.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56508
2024-04-30 16:31:32 +02:00
Henri Verbeet
87c83e2ae2 vkd3d-shader: Get rid of struct vkd3d_shader_desc. 2024-04-30 16:31:19 +02:00
Henri Verbeet
b761f1a263 vkd3d-shader/spirv: Use location information from the current instruction. 2024-04-30 16:31:14 +02:00
Henri Verbeet
8b8ad07057 vkd3d-shader/hlsl: Use vkd3d_string_buffer_printf() in declare_predefined_types(). 2024-04-30 16:31:09 +02:00
Francisco Casas
ee735e8eed vkd3d-shader/hlsl: Fold x * 1 identities. 2024-04-30 16:31:05 +02:00
Francisco Casas
b14f935d0f vkd3d-shader/hlsl: Fold x + 0 identities. 2024-04-30 16:31:02 +02:00
Stefan Dösinger
cb6c868460 vkd3d: Implement cache locking. 2024-04-24 23:49:20 +02:00
Stefan Dösinger
71f1955cd6 vkd3d: Implement vkd3d_shader_cache_get. 2024-04-24 23:49:20 +02:00
Stefan Dösinger
aad76f4ed2 vkd3d: Implement vkd3d_shader_cache_put. 2024-04-24 23:49:15 +02:00
Henri Verbeet
af33caf036 vkd3d-common: Introduce vkd3d_atomic_exchange_ptr(). 2024-04-24 23:49:12 +02:00
Henri Verbeet
b1c326ce56 vkd3d-common: Introduce vkd3d_atomic_exchange_u32(). 2024-04-24 23:49:11 +02:00
Henri Verbeet
5c8a90a6c9 vkd3d-common: Introduce vkd3d_atomic_compare_exchange_u32(). 2024-04-24 23:49:11 +02:00
Henri Verbeet
bfbd29efe6 vkd3d: Get rid of vkd3d_atomic_compare_exchange_pointer().
The only uses of this were remove by commit
3ca2259807.
2024-04-24 23:49:10 +02:00
Henri Verbeet
11db8c1719 vkd3d-common: Use WIDL_C_INLINE_WRAPPERS. 2024-04-24 23:48:44 +02:00
Henri Verbeet
534044181b vkd3d-utils: Use WIDL_C_INLINE_WRAPPERS. 2024-04-24 23:48:44 +02:00
Henri Verbeet
d5717d333b vkd3d: Use WIDL_C_INLINE_WRAPPERS. 2024-04-24 23:48:44 +02:00
Conor McCarthy
075979fa21 vkd3d-shader/ir: Always check for undominated SSA use in register relative addresses. 2024-04-24 23:48:13 +02:00
Francisco Casas
5e3515f191 vkd3d-shader/d3dbc: Support SM1 if conditionals.
According to the documentation, if_comp is available from 2_x pixel
and vertex shaders and, unlike "if bool" it doesn't expect a constant
boolean register (from the input signature), so:

if_neq cond -cond

seems like a convenient way to write these, for profiles above 2.0.
2024-04-24 23:48:06 +02:00
Francisco Casas
d2427ea1bd vkd3d-shader/ir: Lower IFC instructions to IF instructions. 2024-04-24 23:48:05 +02:00
Francisco Casas
e370ce5bf2 vkd3d-shader/d3dbc: Pass hlsl_block instead of function declaration. 2024-04-24 23:48:04 +02:00
Henri Verbeet
46fca3f9f4 vkd3d-common: Introduce VKD3D_BITMAP_SIZE. 2024-04-23 22:41:25 +02:00
Francisco Casas
aa35b2cecb vkd3d-shader/hlsl: Cleanup parse_attribute_list structs (valgrind). 2024-04-23 22:38:03 +02:00
Conor McCarthy
e3dde09bb9 vkd3d-shader/ir: Accept undefined PHI incomings as valid.
An incoming can be undefined if the PHI result is not used if the
incoming's path was taken, or if the undefined value is consumed by
an instruction (dxc will compile such code without errors).
2024-04-23 22:37:33 +02:00
Zebediah Figura
d7da278693 vkd3d-shader/hlsl: Make HLSL_TYPE_RENDERTARGETVIEW into a separate class. 2024-04-23 22:37:09 +02:00
Zebediah Figura
ee2bde3aba vkd3d-shader/hlsl: Make HLSL_TYPE_DEPTHSTENCILVIEW into a separate class. 2024-04-23 22:37:06 +02:00
Zebediah Figura
76971d811e vkd3d-shader/hlsl: Make HLSL_TYPE_TECHNIQUE into a separate class. 2024-04-23 22:36:51 +02:00
Zebediah Figura
3c8c7426df vkd3d-shader/hlsl: Make HLSL_TYPE_PASS into a separate class. 2024-04-23 22:36:38 +02:00
Zebediah Figura
24d3a352a6 vkd3d-shader/hlsl: Make HLSL_TYPE_EFFECT_GROUP into a separate class. 2024-04-23 22:36:32 +02:00
Giovanni Mascellani
6b841486d4 vkd3d-shader/ir: Materialize SSAs in each function of a hull shader. 2024-04-23 22:36:17 +02:00
Giovanni Mascellani
c8af142bb0 vkd3d-shader/ir: Structurize each function of a hull shader. 2024-04-23 22:36:16 +02:00
Giovanni Mascellani
d8e4b19cdc vkd3d-shader/ir: Skip invalid blocks when materializing undominated SSAs. 2024-04-23 22:36:14 +02:00
Henri Verbeet
7b4a1fdfbc vkd3d: Move the vkd3d_cond implementation to vkd3d-common.
Much like the vkd3d_mutex implementation.
2024-04-22 23:15:20 +02:00
Henri Verbeet
8345b9b6f5 vkd3d-shader/glsl: Implement VKD3DSIH_NOP. 2024-04-22 23:14:30 +02:00
Conor McCarthy
079f8e4d52 vkd3d-shader/dxil: Implement DX intrinsic OutputControlPointID. 2024-04-22 23:13:31 +02:00
Conor McCarthy
3976738baf vkd3d-shader/dxil: Implement DX intrinsic DomainLocation. 2024-04-22 23:13:30 +02:00
Conor McCarthy
e165f9cefc vkd3d-shader/dxil: Implement DX intrinsic StorePatchConstant. 2024-04-22 23:13:29 +02:00
Conor McCarthy
3479962983 vkd3d-shader/dxil: Implement DX intrinsics LoadOutputControlPoint and LoadPatchConstant. 2024-04-22 23:13:28 +02:00
Conor McCarthy
4457181b2a vkd3d-shader/dxil: Support patch constant functions and signatures. 2024-04-22 23:13:26 +02:00
Zebediah Figura
833c897aac vkd3d-shader/hlsl: Parse register space reservations. 2024-04-22 23:13:15 +02:00
Zebediah Figura
29f6a7e5f7 vkd3d-shader/hlsl: Rename register_opt and packoffset_opt to register_reservation and packoffset_reservation.
"opt" seems to imply "optional", but the optional aspect of these reservations
is not (and never has been) encoded into these rules.
2024-04-22 23:13:13 +02:00
Henri Verbeet
4a209efb62 vkd3d-shader/hlsl: Support spirv-binary and spirv-text as target formats. 2024-04-19 22:24:07 +02:00
Henri Verbeet
0116e49d9b vkd3d-shader/hlsl: Support d3d-asm as target format. 2024-04-19 22:24:06 +02:00
Henri Verbeet
414bb99542 vkd3d-shader/glsl: Add vkd3d-shader version information to the generated shader. 2024-04-19 22:23:55 +02:00
Conor McCarthy
3205e08fb1 vkd3d-shader/dxil: Support SV_Depth, SV_DepthGreaterEqual and SV_DepthLessEqual. 2024-04-19 22:23:43 +02:00
Giovanni Mascellani
296edf0d68 vkd3d-utils: Make all extensions optional in D3D12CreateDeviceVKD3D().
A D3D12 device can be useful even without a surface and swapchain.
On the other hand, just having the surface and swapchain extensions
doesn't give any feature (the client still has to manage them), so
there is no point in making them a requirement.
2024-04-19 22:23:28 +02:00
Zebediah Figura
171e097268 vkd3d-shader/hlsl: Make HLSL_TYPE_UAV into a separate class. 2024-04-19 22:23:20 +02:00
Zebediah Figura
93d7cd1785 vkd3d-shader/hlsl: Make HLSL_TYPE_TEXTURE into a separate class. 2024-04-19 22:23:19 +02:00
Zebediah Figura
220362cbad vkd3d-shader/hlsl: Make HLSL_TYPE_SAMPLER into a separate class. 2024-04-19 22:23:18 +02:00
Zebediah Figura
f57db442b0 vkd3d-shader/hlsl: Make HLSL_TYPE_STRING into a separate class. 2024-04-19 22:23:16 +02:00