Giovanni Mascellani
7e134f85a4
vkd3d-shader/dxil: Do not set the value type in sm6_parser_function_init().
...
It is rewritten in all branches that produce a value.
VALUE_TYPE_REG is therefore never set and can be retired at last.
2025-06-05 16:05:09 +02:00
Giovanni Mascellani
0e406cf0a8
vkd3d-shader/dxil: Do not set the value type in sm6_parser_declare_global().
...
It is rewritten in all branches.
2025-06-05 16:05:09 +02:00
Giovanni Mascellani
00b3fb96d9
vkd3d-shader/dxil: Store a SM6 value in sm6_phi.
...
Rather than a VSIR register.
2025-06-05 16:05:09 +02:00
Giovanni Mascellani
a9a3100cca
vkd3d-shader/dxil: Represent non uniformness in the SM6 value.
2025-06-05 16:05:09 +02:00
Giovanni Mascellani
af5e5fe31b
vkd3d-shader/dxil: Generate specialized values in sm6_parser_emit_cast() for trivial casts.
...
There is currently no need to make a special case for 16-bit
values, since the SPIR-V backend currently confuses them with
32-bit values. The generated VSIR code is not correct, but that
will have to be handled at a different level.
2025-06-05 16:05:09 +02:00
Elizabeth Figura
5e6def0843
vkd3d-shader/preproc: Store EOF state per buffer.
...
We may immediately push a new file or expansion.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=43481
2025-06-05 16:04:02 +02:00
Elizabeth Figura
d768ea6709
vkd3d-shader/preproc: Swap to the INITIAL state after ending a buffer.
2025-06-05 16:04:02 +02:00
Elizabeth Figura
0eb5fee633
vkd3d-shader/preproc: Parse comments in #include and #line directives.
2025-06-05 16:04:02 +02:00
Henri Verbeet
5ea697b8eb
vkd3d-shader/msl: Handle SV_SAMPLE_INDEX inputs.
2025-06-05 15:58:44 +02:00
Henri Verbeet
1cdfed919a
vkd3d-shader/msl: Simplify SV_DEPTH handling.
2025-06-05 15:58:44 +02:00
Henri Verbeet
cf312e14a9
vkd3d-shader/msl: Handle SV_VERTEX_ID inputs.
2025-06-05 15:58:44 +02:00
Henri Verbeet
e948098ae3
vkd3d-shader/msl: Handle SV_POSITION inputs.
2025-06-05 15:58:44 +02:00
Henri Verbeet
f14a0dfe07
vkd3d-shader/msl: Implement support for indirect constant buffer addressing.
2025-06-05 15:58:01 +02:00
Henri Verbeet
0b829db149
vkd3d-shader/msl: Continue when the SRV descriptor binding isn't specified in msl_ld().
...
Mostly to aid debugging.
2025-06-05 15:55:01 +02:00
Henri Verbeet
fadcbf3eeb
vkd3d-shader/msl: Slightly improve the error messages for unspecified descriptor bindings.
...
This also makes them consistent with the ones used by the GLSL backend.
2025-06-05 15:55:01 +02:00
Henri Verbeet
6a93c503cd
vkd3d-shader/msl: Get rid of the "lod" field of struct msl_resource_type_info.
...
1D read() is specified to support a level/lod parameter. The MSL
specification claims it needs to be 0 because "mipmaps are not supported
for 1D textures", but that restriction isn't documented for the
"mipmapLevelCount" property of MTLTextureDescriptor. Other APIs do
supported mipmapped 1D textures. Multi-sample textures aren't supported
by msl_ld(), so we don't need to worry about them.
2025-06-05 15:55:01 +02:00
Henri Verbeet
02d7d6038d
vkd3d-shader/msl: Reject cube and multi-sample texel fetches in msl_ld().
...
The cube variants are simply disallowed in Direct3D, and currently
mishandled by msl_ld(). It's less clear whether multi-sample fetches
should be allowed, and how they're supposed to behave if they are,
although typically the "ld2dms" instruction would be used for those.
They're not supported on the MSL side either way.
2025-06-05 15:55:01 +02:00
Henri Verbeet
671fbfea7d
vkd3d-shader/msl: Ensure we have a non-NULL "resource_type_info" pointer in msl_ld().
...
Since we're going to dereference it.
2025-06-05 15:55:01 +02:00
Giovanni Mascellani
bda2be3423
vkd3d-shader/hlsl: Reject programs with group shared variables.
...
Currently the modifier is ignored and the program is miscompiled.
2025-06-05 15:50:04 +02:00
Giovanni Mascellani
7f04060f33
vkd3d-shader/dxil: Handle 16-bit values uniformly in sm6_map_cast_op().
...
This makes the logic more transparent, and it eases handling
native 16-bit values once they will be supported.
2025-06-04 13:03:57 +02:00
Giovanni Mascellani
b9ce828451
vkd3d-shader/dxil: Validate that floating-point extension casts increase bit width.
2025-06-04 13:01:51 +02:00
Giovanni Mascellani
a91fb0523a
vkd3d-shader/dxil: Validate that integer extension casts increase bit width.
2025-06-04 13:01:51 +02:00
Giovanni Mascellani
a90b74baaa
vkd3d-shader/dxil: Validate that floating-point truncation casts decrease bit width.
...
Similarly to the integer case.
2025-06-04 13:01:45 +02:00
Giovanni Mascellani
0e006715d8
vkd3d-shader/dxil: Do not use field "reg" in of sm6_value when writing bitcasts.
...
It's going to be removed; the generated register data type is the
right thing to look at here.
2025-06-04 12:34:21 +02:00
Elizabeth Figura
9552dab5aa
vkd3d-shader: Use the correct union members for raw and structured resources.
2025-06-04 12:10:39 +02:00