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
Access to handle table is actually concurrent (and races / corrupts memory / crashes in practice when apps use different security contexts from different threads).
Then, unrelated to races, schan_handle_table can be reallocated and then schan_free_handles chain points to old memory location. Alternatively to patch 2, that could be fixed up on reallocating schan_handle_table, but it seems to me we can as well just scan the handle table for free slots.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4008
---
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