3941 Commits

Author SHA1 Message Date
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
Conor McCarthy
9d7f63dc26 vkd3d: Validate that a resource with initial state RENDER_TARGET is a render target. 2024-04-10 08:55:11 -05:00
Conor McCarthy
78301d7202 vkd3d: Validate presence of flag ALLOW_RENDER_TARGET or ALLOW_DEPTH_STENCIL for multisampled resources. 2024-04-10 08:55:11 -05:00
Stefan Dösinger
a7860ae752 vkd3d: Implement reopening existing caches. 2024-04-10 08:54:58 -05:00
Stefan Dösinger
f24005507c vkd3d: Implement opening and closing shader caches. 2024-04-10 08:54:58 -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