2850 Commits

Author SHA1 Message Date
Giovanni Mascellani
aad040af05 vkd3d-shader/ir: Remove loops that terminate with a `break'. 2024-04-11 09:22:14 -05:00
Giovanni Mascellani
105ccc4769 vkd3d-shader/ir: Count how many jumps target each loop. 2024-04-11 09:22:13 -05:00
Giovanni Mascellani
f5d1b5d263 vkd3d-shader/ir: Move `break's out of selection constructs when possible. 2024-04-11 09:22:11 -05:00
Nikolay Sivov
8d78e3a821 vkd3d-shader/hlsl: Support refract() intrinsic.
With some changes by Giovanni Mascellani.
2024-04-10 08:55:27 -05:00
Giovanni Mascellani
ecad299ba4 vkd3d-shader/hlsl: Emit half results when operating on half arguments. 2024-04-10 08:55:24 -05:00
Zebediah Figura
280bea9033 vkd3d-shader/fx: Use a switch in write_fx_2_initial_value(). 2024-04-10 08:55:20 -05:00
Zebediah Figura
6c6106f780 vkd3d-shader/fx: Move unimplemented type checks into is_type_supported_fx_2(). 2024-04-10 08:55:19 -05:00
Zebediah Figura
047040fc63 vkd3d-shader/fx: Don't use an array to write the type class. 2024-04-10 08:55:18 -05:00
Zebediah Figura
285059ef11 vkd3d-shader/d3dbc: Consider the class in sm1_base_type().
We want the base type to stop being a property of all types, and to stop using
the same enumeration for objects and numeric types. The backend should do the
work of translation; we want a more sensible and convenient representation for
the compiler itself.
2024-04-10 08:55:17 -05:00
Zebediah Figura
a882d60534 vkd3d-shader/hlsl: Map HLSL_TYPE_DOUBLE to D3DXPT_FLOAT. 2024-04-10 08:55:15 -05:00
Giovanni Mascellani
a2bb4ef301 vkd3d-shader/d3d-asm: Reset indent level on HS phases. 2024-04-10 08:54:29 -05:00
Conor McCarthy
cb5411408a vkd3d-shader/dxil: Implement DX intrinsic CalculateLOD. 2024-04-10 08:54:23 -05:00
Francisco Casas
e9559c394b vkd3d-shader/hlsl: Allow KW_PIXELSHADER and KW_VERTEXSHADER as stateblock lhs. 2024-04-10 08:54:23 -05:00
Francisco Casas
ef9ae22ed0 vkd3d-shader/hlsl: Store state block on pass variables. 2024-04-10 08:54:23 -05:00
Francisco Casas
a99bcb1196 vkd3d-shader/hlsl: Parse list of state blocks. 2024-04-10 08:54:23 -05:00
Francisco Casas
80320f6129 vkd3d-shader/hlsl: Introduce hlsl_ir_stateblock_constant. 2024-04-10 08:54:23 -05:00
Francisco Casas
ee0d439a1b vkd3d-shader/hlsl: Parse and store state blocks on variables. 2024-04-10 08:54:23 -05:00
Francisco Casas
4dedcc5885 vkd3d-shader/hlsl: Also call dce before lowering deref paths. 2024-04-10 08:54:23 -05:00
Francisco Casas
5ab1ef1cad vkd3d-shader/hlsl: Properly release string buffer on write_atan_or_atan2().
vkd3d_string_buffer_cleanup() doesn't do the same as
hlsl_release_string_buffer(). The former only frees the char array
inside the string buffer and not the string buffer itself.
2024-04-09 12:28:03 -05:00
Zebediah Figura
0e3377a1be vkd3d-shader/hlsl: Avoid using HLSL_CLASS_OBJECT without checking the base type.
As the diffstat shows, HLSL_CLASS_OBJECT does not really have much in common.
Resource types (TEXTURE, SAMPLER, UAV) sometimes behave similarly to each other,
but do not generally behave similarly to effect-specific types (string, shader,
state, view). Most consumers of HLSL_CLASS_OBJECT subsequently check the base
type anyway.

Hence we want to replace HLSL_TYPE_* with individual classes for object types.
As a first step, change the last few places that only check HLSL_CLASS_OBJECT.
2024-04-09 12:27:55 -05:00
Zebediah Figura
269cdad7b9 vkd3d-shader/hlsl: Consider any valid register reservation to invoke manual packing.
Regardless of the type of the variable.
2024-04-09 12:27:53 -05:00
Zebediah Figura
ce50c3a186 vkd3d-shader/hlsl: Use hlsl_type_is_resource() for unbounded array checks.
Not all objects can be unbounded descriptors.
2024-04-09 12:27:51 -05:00
Zebediah Figura
c5f507ac38 vkd3d-shader/hlsl: Add SM5.1 shader target strings. 2024-04-09 12:27:47 -05:00
Zebediah Figura
843968cd63 vkd3d-shader/hlsl: Use hlsl_version_ge() when checking for unbounded arrays.
6.x also allows them.
2024-04-09 12:27:45 -05:00
Zebediah Figura
5fbd2708c0 vkd3d-shader/hlsl: Move shader version helpers to hlsl.h. 2024-04-09 12:27:43 -05:00