As has been pointed out a couple of times, mainly by @zfigura, hlsl_type_get_regset() is not defined for structs. So it is responsibility of the programmer to ensure that the data type in question belongs to a single regset before calling that function.
Turns out that when we call this function we either have to handle the possibility of the type spanning across multiple regsets, or we want the regset of a single component or vector, so this MR replaces the calls to hlsl_type_get_regset() with either a for loop that goes through all the pertaining regsets, hlsl_type_get_component_offset(), or hlsl_type_get_regset().
hlsl_type_get_regset() is still needed in the implementation of these functions, so it is downgraded to a static function for hlsl.c instead of being completely removed.
The tests in 3/5 (structs with multiple register reservations) are to explain why it makes sense to iterate over the regsets in 4/5 even if we don't have a proper implementation for register reservations on structs that span across mutiple regsets yet.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/342
Implements asin, acos, atan, and atan2.
Also includes some tests in a new test file.
One possible problem here is that I'm not sure how to test what Microsoft's atan and atan2 outputs are in boundary cases like atan2(1, 0). I've made the test suites adhere with the calculator program I've been using (Qalculate, which I assume is using libc's atan2).
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55154
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/364
---
I came across this in my attempts to implement nooverwrite maps based on
sysmem staging buffers when buffer storage is not available. My debug
modifications broke the fast path for update_sub_resource and the
wined3d_resource_wait() didn't do its job for the push constant buffers.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3979
Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com>
--
v3: d3d10/effect: Add support for 'dot' instruction.
d3d10/effect: Add support for 'floor' instruction.
d3d10/effect: Add support for 'ceil' instruction.
d3d10/tests: Compact returned arrays checks.
d3d10/effect: Add support for 'buge'/'bult' instructions.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3987