Vectors cannot be used as array indexes, however, single-component
swizzles (such as vec.x) can be used.
This suggests that single-component swizzles should actually be
scalars and not vectors of dimx = 1.
It is worth noting that the use of swizzles on scalars should still
be allowed.
--
v4: vkd3d-shader/hlsl: Make single-component swizzles retrieve a scalar.
tests: Add tests for assignments to self with swizzles.
tests: Test swizzles on scalar values.
tests: Test using single-component swizzles as indexes.
tests: Combine all the swizzle tests in a single file.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/70
Call MoveFileWithProgress from MoveFileTransacted such that the stub functions.
This enables saving for Affinity Photo.
--
v9: kernel32: Unstub MoveFileTransactedW, Use MoveFileWithProgressW.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1444
Call MoveFileWithProgress from MoveFileTransacted such that the stub functions.
This enables saving for Affinity Photo.
--
v8: kernel32: Unstub MoveFileTransactedW, Use MoveFileWithProgressW
https://gitlab.winehq.org/wine/wine/-/merge_requests/1444
--
v4: tests: Test entry point semantics on function declarations.
tests: Add more tests for early return from the entry point.
tests: Add some tests for early return from user-defined functions.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/65
--
v2: rpcrt4/tests: Use common code to set the firewall.
wsdapi/tests: Use common code to set the firewall.
dpnet/tests: Use common code to set the firewall.
dplayx/tests: Use common code to set the firewall.
webservices/tests: Move firewall code to a common header.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1987
Pretty much the same as https://gitlab.winehq.org/wine/wine/-/merge_requests/1843, but on win32u side, to figure and validate the syscall entry signatures.
--
v3: win32u/tests: Test NtUserGetPointerInfoList syscall signature.
win32u/tests: Test NtUserIsMouseInPointerEnabled syscall.
win32u/tests: Test NtUserEnableMouseInPointer syscall.
win32u: Stub NtUserGetPointerInfoList syscall.
win32u: Stub NtUserIsMouseInPointerEnabled syscall.
win32u: Move NtUserEnableMouseInPointer from user32.
include: Declare some NtUser pointer related syscalls.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1844
First relevant commit:
windows.media.speech: Add a worker thread to the recognition session.
--
v12: windows.media.speech: Store recorded audio in a temporary ringbuffer.
windows.media.speech: Partially implement the speech recognizer state.
windows.media.speech: Add an audio capturing system.
windows.media.speech: Allow the recognition session worker to be paused.
windows.media.speech/tests: Check if stopping the session resets the paused state.
windows.media.speech: Add a worker thread to the recognition session.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1948
--
v4: vbscript: Implement SID_GetCaller for QueryService.
vbscript: Add a ServiceProvider stub.
jscript: Implement SID_GetCaller for QueryService.
mshtml: Set SCRIPTPROP_ABBREVIATE_GLOBALNAME_RESOLUTION properly.
mshtml: Implement location props when there's no URI.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1733
This functions should also work with document fragments, in wine they only return NULL.
--
v6: mshtml: Implement HTMLDocument_get_body for document fragments.
mshtml: Use This->node for HTMLDocument_get_all.
mshtml/tests: Test for get_all and get_body in document fragments.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1918
First relevant commit:
windows.media.speech: Add a worker thread to the recognition session.
--
v11: windows.media.speech: Store recorded audio in a temporary ringbuffer.
windows.media.speech: Partially implement the speech recognizer state.
windows.media.speech: Add an audio capturing system.
windows.media.speech: Allow the recognition session worker to be paused.
windows.media.speech/tests: Check if stopping the session resets the paused state.
windows.media.speech: Add a worker thread to the recognition session.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1948
Pretty much the same as https://gitlab.winehq.org/wine/wine/-/merge_requests/1843, but on win32u side, to figure and validate the syscall entry signatures.
--
v2: win32u/tests: Test NtUserGetPointerInfoList syscall signature.
win32u/tests: Test NtUserIsMouseInPointerEnabled syscall.
win32u/tests: Test NtUserEnableMouseInPointer syscall.
win32u: Stub NtUserGetPointerInfoList syscall.
win32u: Stub NtUserIsMouseInPointerEnabled syscall.
win32u: Move NtUserEnableMouseInPointer from user32.
include: Declare some NtUser pointer related syscalls.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1844
On Wed Jan 25 16:39:04 2023 +0000, Francisco Casas wrote:
> I don't think the problem is currently happening with regular
> stores/loads, because when we do a replacement, we are removing the
> whole instruction (and replacing all subsequent references to it), so
> there is not the possibility of copy-prop doing an incorrect replacement
> for the instruction being replaced a second time.
> Writing directly
> ```
> a = b;
> b = c;
> d = a;
> ```
> could be misleading, since on regular stores what we have on the rhs is
> an hlsl_src, a reference to another node, so it would be more accurate
> to write it as:
> ```
> 1 : load (b)
> 2 : a = @1;
> 3 : load (c)
> 4 : b = @3;
> 5 : load (a)
> 6 : d = @5;
> ```
> which would be transformed to
> ```
> 1 : load (b)
> 2 : a = @1;
> 3 : load (c)
> 4 : b = @3;
> 5 : <deleted>
> 6 : d = @1;
> ```
Yes, you're right, I got confused.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/59#note_21971
In early November 2022 builds on FreeBSD 12/amd64 saw makedep core dump
1791 times due to it being invoked with a NULL pointer. Turns out it did
not validate its input for being non-NULL, so add such a check and add a
diagnostics.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/1855
On Wed Jan 25 21:29:22 2023 +0000, Francisco Casas wrote:
> Actually it seems that the chosen function depends on the version of the compiler!
> fxc 9.29.952.3111 (`d3d_compiler43.dll`) seems to load the first
> `main()`, while fxc 10.1 (`d3d_compiler47.dll`) seems to load the
> second, at least for me.
Indeed. Nice. Some further testing implies that 43 always picks the first function, and 47 always picks the last, i.e. the arguments don't matter.
(Side note, that version number seems to come from the d3dcompiler dll, not fxc. At least, I get the same version number in native disassembly.)
46 behaves like 47.
I think this is the first difference in behaviour we've found that we're actually going to want to put effort into emulating. We'll have to figure out a way to deal with it in the tests...
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/65#note_21934
The test for ISmbiosInformationStatics_get_SerialNumber is broken on Window 10 testbot VMs, presumably because they don't have a serial number? It results in an HRESULT of E_UNEXPECTED. I added a broken test case for it. I'm assuming that normal installations of Windows return a valid serial number or at least something like "Not Specified" and not NULL. Also, on my Linux OS running cat /sys/class/dmi/id/product_serial returns "To be filled by O.E.M". So I added a fallback to return 0 as the number. Or is it fine to just return whatever string is found?
On the Windows 8 VMs, the test crashes at line 75, hr = ISmbiosInformationStatics_get_SerialNumber( smbios_statics, &serial ). Not sure what I should do in this case. I was hoping for a flag that checks if the VM is Windows 8, but there doesn't seem to be one. Should I wrap the test in if (0) or is there an alternative way?
Another weird thing is the test fails prematurely on only the 32-bit version of debian11b, saying that the runtimeclass is not registered. I'm assuming it's an issue with the testbot. Debian11 32 bit runs fine.
--
v8: windows.system.profile.systemmanufacturers: Implement ISmbiosInformationStatics_get_SerialNumber.
windows.system.profile.systemmanufacturers/tests: Add ISmbiosInformationStatics_get_SerialNumber tests.
windows.system.profile.systemmanufacturers: Stub ISmbiosInformationStatics interface.
windows.system.profile.systemmanufacturers: Add stub DLL.
include: Add windows.system.profile.systemmanufacturers.idl file.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1588
On Wed Jan 25 20:25:14 2023 +0000, Zebediah Figura wrote:
> changed this line in [version 3 of the diff](/wine/wine/-/merge_requests/2010/diffs?diff_id=29048&start_sha=8eae0afb08c6e06634aa471605d9f9800d3144c8#0e3bdc3483a2521905df15e2af3431db3ab47a56_2279_2278)
Wow, okay, thank you SPIR-V for the excellent choices in naming.
Sent a v3 with this changed to 11.0, thanks :-)
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2010#note_21856
--
v2: wined3d: Disable 64-bit integer support.
wined3d: Require shader cull distance support to create a feature level 10.0 device.
wined3d: Require shader clip distance support to create a feature level 10.0 device.
wined3d: Require gather offset support to create a feature level 10.1 device.
wined3d: Require fragment shader image stores and atomics to create a feature level 10.0 device.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2010
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53176
1) The async test is broken on Windows 10 1507. This appears to be a trend among WinRT dlls. I'm thinking that we can add macro definitions for each testbot VM to avoid having to skip tests that would otherwise be working fine, and just greater control over tests in general.
2) The provider file that contains `interface IWineAsyncInfoImpl` is likely going to be reused again in the future. Perhaps a new file can be added in the include/wine folder to prevent duplicate code? I can do this in a separate merge request and cleanup the existing provider files.
3) All the check_bool_async tests return a random async_id so I skipped them. Testbot example: https://testbot.winehq.org/JobDetails.pl?Key=127232&f208=exe32.report#k208
--
v7: cryptowinrt/tests: Add IKeyCredentialManagerStatics_IsSupportedAsync tests.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1714
FFXIV depends on this. It calls SetFullscreenState when it receives WM_WINDOWPOSCHANGED. Through luck the recursion aborts after two calls. The user-visible bug is that after leaving fullscreen, the game's window is still TOPMOST because we overwrite the stored pre-fullscreen window flags.
--
v2: dxgi/tests: Test nested SetFullscreenState from the same thread.
dxgi/tests: Test nested fullscreen application from different thread.
dxgi: Catch nested SetFullscreenState invocations.
dxgi/tests: Run test_swapchain_window_messages on d3d12.
dxgi/tests: Run test_resize_target_wndproc on d3d12 too.
dxgi/tests: Fix UnregisterClass call in test_resize_target_wndproc.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1964