This was previously automatically done when user32 was loaded, but since
the move of __wine_send_input to win32u, we do not need to load it any
more. Somehow it is still loaded when prefix is initialized or updated,
and the dinput tests work in some cases, but not in some other.
This makes sure we have a desktop or WM_INPUT messages won't be sent by
wineserver.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/1841
On Mon Dec 19 11:04:02 2022 +0000, Ziqing Hui wrote:
> Testbot complains about too much printing. Should I remove some tests?
> For example, test only one input type for SetOutputType tests.
I'd suggest to shorten the test messages, like for instance `SetOutputType returned unexpected hr 0x80004001 for flag 0.` shorten to `0x0: SetOutputType returned 0x80004001.` with wine_push_context for the flags, or as an even more extreme measure, if necessary, `0x0: got hr 0x80004001.`.
If that's not enough then yes, you can probably think about removing some tests.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/1839#note_19835
If a hlsl_ir_load loads a variable whose components are stored from different
instructions, copy propagation doesn't replace it.
But if all these instructions are constants (which currently is the case
for value constructors), the load can be replaced with a constant value, which
is what the first patch of this series does.
For instance, this shader:
```
sampler s;
Texture2D t;
float4 main() : sv_target
{
return t.Gather(s, float2(0.6, 0.6), int2(0, 0));
}
```
results in the following IR before applying the patch:
```
float | 6.00000024e-01
float | 6.00000024e-01
uint | 0
| = (<constructor-2>[@4].x @2)
uint | 1
| = (<constructor-2>[@6].x @3)
float2 | <constructor-2>
int | 0
int | 0
uint | 0
| = (<constructor-5>[@11].x @9)
uint | 1
| = (<constructor-5>[@13].x @10)
int2 | <constructor-5>
float4 | gather_red(resource = t, sampler = s, coords = @8, offset = @15)
| return
| = (<output-sv_target0> @16)
```
and this IR afterwards:
```
float2 | {6.00000024e-01 6.00000024e-01 }
int2 | {0 0 }
float4 | gather_red(resource = t, sampler = s, coords = @2, offset = @3)
| return
| = (<output-sv_target0> @4)
```
This is required to write texel_offsets as aoffimmi modifiers in the sm4 backend, since it expects the texel_offset arguments to be hlsl_ir_constant.
This series also:
* Allows Gather() methods to use aoffimmi modifiers instead of an additional source register (which is the only way allowed for shader model 4.1), when possible.
* Adds support to texel_offsets in the Load() method via aoffimmi modifiers (the only allowed method).
--
v5: vkd3d-shader/hlsl: Propagate swizzle chains.
vkd3d-shader/hlsl: Replace swizzles with constants in copy prop.
tests: Test constant propagation through swizzles.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/51