HLSL_CLASS_OBJECT does not really have much in common, and a lot of code currently uses it assuming that all objects are resources, which is not actually true. Most users of HLSL_CLASS_OBJECT want to check for specific types, and so we can simplify code a fair amount by promoting all object "base types" to top-level classes.
This series is a first step, comprising some cleanup towards that goal.
--
v3: vkd3d-shader/hlsl: Use hlsl_is_numeric_type() in type_has_object_components().
vkd3d-shader/hlsl: Simplify type_has_object_components().
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/745
The Mesa version in Debian bookworm (22.3.6) we use for testing is now a bit outdated. While it's valuable to test on older drivers because they might be more representative of what users are running, it's also useful to test on recent drivers, which gives a less noisy signal to developers.
For the moment we enable it only for llvmpipe, because RADV is already passing all the tests anyway. And we don't bother with 32 bit here.
On llvmpipe using Mesa 24 fixes three shader runner tests.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/743
Type size_t is used in the file without importing any header which
defines it. This only works when the translation unit includes one of
the appropriate headers anyway or when the appropriate header is included
internally by other standard C headers; none of those strategies should
be relied upon.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/747
In substring expansion of variables, the length computation wasn't the same between:
- magic variables: length doesn't include terminating NUL
- regular variables: length does include terminating NUL
This led to incorrect substring operation for magic variables.
Always set length to not include terminating NUL. Took the opportunity to not
recompute length (as it's already computed by called functions).
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5428
I'm working on adding all the intrinsics we haven't implemented yet. Here's sinh, cosh, and tanh.
Sinh/cosh are implemented in the same commit because they forward to the same backing function (because the identities used only differ by a plus or minus).
--
v2: vkd3d-shader/hlsl: Implement tanh.
vkd3d-shader/hlsl: Implement hyperbolic sin and cos.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/740