First part of the continuation of the implementation of non-constant offset dereferences (a.k.a. relative addressing) for SM4, now that we use vsir registers in tpf.c.
As a quick recap: while parsing HLSL we are expressing derefs as paths, and then we are lowering these paths into a single offset node (which is closer to the bytecode) using the replace_deref_path_with_offset() pass, right before register allocation.
This first part of the series splits this offset node into 2 parts:
- A constant uint, which will be called hlsl_deref.offset_const.
- A non-hlsl_ir_constant offset node that will only be present when we need relative addressing, that we will end up calling hlsl_deref.offset_rel.
Both these fields will be analog to the ones used in vsir register indexes, vkd3d_shader_register_index.rel_addr and vkd3d_shader_src_param.offset respectively, which is something we need for the second part of this series.
The following patches are in my [nonconst-offsets-8-part](https://gitlab.winehq.org/fcasas/vkd3d/-/commits/n… branch, if something is not clear in this series, it may be worth skimming through them.
Supersedes !229.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/396
Which may be different from the last desktop cursor handle.
This makes the behavior better match the old winex11 behavior, which queried
the current thread input cursor handle on every mouse move to sync it with X11,
although it contradicts MSDN documentation which states that the cursor handle
is global.
This fixes the X11 cursor being visible in "Deus Ex: GOTY Edition".
--
v3: server: Send WM_WINE_SETCURSOR with the thread input cursor handle.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4068
This adds support for missing architectures in widl, providing full coverage of current Debian architectures and ports.
I’m aware this restores SPARC which was removed in 2017; if that’s a problem I can remove that part of the patch.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3997
Which may be different from the last desktop cursor handle.
This makes the behavior better match the old winex11 behavior, which queried
the current thread input cursor handle on every mouse move to sync it with X11,
although it contradicts MSDN documentation which states that the cursor handle
is global.
This fixes the X11 cursor being visible in "Deus Ex: GOTY Edition".
--
v2: server: Send WM_WINE_SETCURSOR with the thread input cursor handle.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4068
If _NET_WM_FULLSCREEN_MONITORS is set then the property needs to be updated because it can't
be deleted by sending a _NET_WM_FULLSCREEN_MONITORS client message to the root window
according to the wm-spec version 1.5. Having the window spanning more than two monitors also
needs the property set. In other cases, _NET_WM_FULLSCREEN_MONITORS doesn't need to be set.
What's more, setting _NET_WM_FULLSCREEN_MONITORS adds a constraint on Mutter so that such a
window can't be moved to another monitor by using the Shift+Super+Up/Down/Left/Right
shortcut. So the property should be added only when necessary.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4063
On Fri Oct 6 16:29:41 2023 +0000, Aidan Khoury wrote:
> I used binary resources instead of header files full of an array of
> bytes: de05aea3c1a1213de90bbf433e8258753b1b60aa
> I borrowed this technique from other test cases I found, specifically in mf.dll
We can't ship binaries copied from some random installer. In any case this will need a lot more test cases for all the various code paths, so you'll need to be able to generate the binaries from the test.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3870#note_48313
Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com>
--
v7: vkd3d-shader/tpf: Write out 'switch' statements.
vkd3d-shader/hlsl: Initial support for 'switch' statement.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/361