--
v4: win32u: Read and cache adapter modes from the registry.
win32u: Introduce new add_mode device manager callback.
winemac.drv: Introduce new display_mode_to_devmode helper.
winex11.drv: Set desktop settings handler before updating display devices.
https://gitlab.winehq.org/wine/wine/-/merge_requests/406
This series implements a couple of enhancements to symbol undecoration in
msvcrt:
- more C++ constructs are correctly supported (pointer to member,
constructors/destructors from template class,
non-type function pointer template parameter...)
- some internal cleanups & simplification (most of them based on
revamped helper to build up the undecorated C++ symbols)
--
v2: dlls/msvcrt: undecorate function signature as template argument
dlls/msvcrt: correctly undecorate ptr to member data type
dlls/msvcrt: simplify str_build not to allocate buffer when possible
dlls/msvcrt: simplify some calls to str_build by not forcing separator
dlls/msvcrt: support %S operator in str_build
dlls/msvcrt: rename str_print into str_build
dlls/msvcrt: fix white space output for undecorating typecast operator
dlls/msvcrt: improve support for template in methods
https://gitlab.winehq.org/wine/wine/-/merge_requests/492
--
v4: win32u: Fix thread safety when accessing rawinput device data.
win32u: Read rawinput device preparsed data using virtual memory.
win32u: Enumerate mouse and keyboard devices first and skip duplicates.
dinput/tests: Add some rawinput joystick tests.
dinput/tests: Wait for Acquire to complete when injecting input.
https://gitlab.winehq.org/wine/wine/-/merge_requests/531
Currently, Widl's code formatting is in a very dissatisfying state, making in hard to dig through and work with it.
For example, the used tabs have a width of 8, but some code areas then mix them with 4 or even just 2 space indents...
Even worse, some code parts using just tabs aren't formatted properly in the first place. Making the code look like a minified JavaScript blob a bunch of times, which causes you to lose track of where you are often, and giving you a harder time to understand of what's going on:

This patch set is a draft on how this could be improved, using just space indents in the lexer file as an example.
It surely isn't a great thing for version control (especially on Widl), but does *in my opinion* greatly improve the code use- and readability.

The improvement is even better when you take wrong tab sizes into account:

Excited about some opinions.
Signed-off-by: Bernhard K��lbl <besentv(a)gmail.com>
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/421
Fixes Civilization IV crashing on creating a new game (and possibly when loading game save).
--
v2: msxml3: Use node_get_text() in domelem_get_nodeTypedValue() if no type is present.
https://gitlab.winehq.org/wine/wine/-/merge_requests/526
--
v3: win32u: Read and cache adapter modes from the registry.
win32u: Introduce new add_mode device manager callback.
winemac.drv: Introduce new display_mode_to_devmode helper.
winex11.drv: Set desktop settings handler before updating display devices.
https://gitlab.winehq.org/wine/wine/-/merge_requests/406
--
v3: win32u: Fix thread safety when accessing rawinput device data.
win32u: Read rawinput device preparsed data using virtual memory.
win32u: Enumerate mouse and keyboard devices first and skip duplicates.
dinput/tests: Add some rawinput joystick tests.
dinput/tests: Wait for Acquire to complete when injecting input.
https://gitlab.winehq.org/wine/wine/-/merge_requests/531
--
v2: win32u: Fix thread safety when accessing rawinput device data.
win32u: Read rawinput device preparsed data using virtual memory.
win32u: Enumerate mouse and keyboard devices first and skip duplicates.
dinput/tests: Add some rawinput joystick tests.
dinput/tests: Wait for Acquire to complete when injecting input.
https://gitlab.winehq.org/wine/wine/-/merge_requests/531
--
v2: wow64win: Sort gdi syscall thunks.
win32u: Use syscall interface for NtUserSystemParametersInfo.
win32u: Use syscall interface for window class functions.
win32u: Use syscall interface for more windowing functions.
https://gitlab.winehq.org/wine/wine/-/merge_requests/528
Star Trek Starfleet Academy does not like it when available video memory
goes down after creating a system memory resource. It destroys all its
textures and recreates them, and in some sitations forgets to recreate
one or another texture, resulting in rendering bugs.
I suspect the game is trying to detect focus loss by monitoring for
unexpected video memory changes.
---
I am open to renaming WINED3DUSAGE_PRIVATE to something else, like
WINED3DUSAGE_NO_VIDMEM_ACCOUNTING. This particular name is ugly long
though.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/521
After 7161dcd, the timezone bias is calculated every time when SystemTimeOfDayInformation is queried.
This restores the cache for timezone bias.
Improve HROT framerate from ~100fps to ~500fps.
Signed-off-by: Zhiyi Zhang <zzhang(a)codeweavers.com>
--
v2: ntdll: Restore the timezone bias cache.
https://gitlab.winehq.org/wine/wine/-/merge_requests/530
After 7161dcd, the timezone bias is calculated every time when SystemTimeOfDayInformation is queried.
This restores the cache for timezone bias.
Improve HROT framerate from ~100fps to ~500fps.
Signed-off-by: Zhiyi Zhang <zzhang(a)codeweavers.com>
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/530
--
v2: wow64: Return error from NtQueryVirtualMemory(MemoryBasicInformation) for a too-large address.
ntdll/tests: Add tests for the address limit of NtQueryVirtualMemory(MemoryBasicInformation).
https://gitlab.winehq.org/wine/wine/-/merge_requests/529
Some notes for the loaded/total props for ProgressEvent: they are todo_wine for loadend initially because wine-gecko is never informed of OnProgress, but the last commit fixes this. It's placed last so that its effects can be shown. Also, if it wasn't deferred until OnDataAvailable, it would assume it's for uploading state, because it's OnStartRequest on gecko's XHR that changes the state...
--
v3: mshtml: Inform Gecko of progress done via OnProgress.
mshtml: Implement ProgressEvent's total prop.
mshtml: Implement ProgressEvent's loaded prop.
mshtml: Implement ProgressEvent's lengthComputable prop.
mshtml: Fix copy-paste mistake in test message.
mshtml: Remove FIXME comment from MessageEvent in event_types.
mshtml: Allocate Keyboard events via the types table.
mshtml: Allocate Mouse events via the types table.
mshtml: Allocate UI events via the types table.
mshtml: Use a table to construct the different event types by their interface.
https://gitlab.winehq.org/wine/wine/-/merge_requests/487
The commit end of a subheap may be equal to the beginning of another subheap, in
which case find_subheap() will return that one, and we may effectively skip
backwards in the subheap list.
---
There may be a more architecturally palatable way to solve this problem, but
hopefully this is enough to at least demonstrate it.
--
v2: ntdll: Do not use find_subheap() to find the subheap corresponding to an uncommitted region.
https://gitlab.winehq.org/wine/wine/-/merge_requests/425
FACTWaveBank_Destroy will invoke the callback which we
attempt to lookup the wavebank.
The callback must have a pointer, help states it isn't valid but still
points to the wavebank that was destroyed.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com>
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/517
Some notes for the loaded/total props for ProgressEvent: they are todo_wine for loadend initially because wine-gecko is never informed of OnProgress, but the last commit fixes this. It's placed last so that its effects can be shown. Also, if it wasn't deferred until OnDataAvailable, it would assume it's for uploading state, because it's OnStartRequest on gecko's XHR that changes the state...
--
v2: mshtml: Inform Gecko of progress done via OnProgress.
mshtml: Implement ProgressEvent's total prop.
mshtml: Implement ProgressEvent's loaded prop.
mshtml: Implement ProgressEvent's lengthComputable prop.
mshtml: Fix copy-paste mistake in test message.
mshtml: Remove FIXME comment from MessageEvent in event_types.
mshtml: Allocate Keyboard events via the types table.
mshtml: Allocate Mouse events via the types table.
mshtml: Allocate UI events via the types table.
mshtml: Use a table to construct the different event types by their interface.
https://gitlab.winehq.org/wine/wine/-/merge_requests/487
Throttle that comes with Thrustmaster T16000M FCS has a dial that doesn't work /
is usassignable in many games (e.g. Elite Dangerous).
Returning correct GUID and name would be enough but it breaks the tests due to
some quirks of the default format so that is also fixed.
--
v3: dinput/tests: Test GetObjectInfo() with three sliders and a proper format.
https://gitlab.winehq.org/wine/wine/-/merge_requests/507
Throttle that comes with Thrustmaster T16000M FCS has a dial that doesn't work /
is usassignable in many games (e.g. Elite Dangerous).
Returning correct GUID and name would be enough but it breaks the tests due to
some quirks of the default format so that is also fixed.
--
v2: dinput/tests: Test GetObjectInfo() with three sliders and a proper format.
dinput/tests: Assert that we can't get info about the third slider with c_dfDIJoystick2.
dinput: Use GUID_Slider type for dials.
dinput: Enumerate user format object forwards.
dinput/tests: Use helper for checking device object instances.
dinput: Get rid of unused parameter in match_device_object.
dinput: Set correct object names for dials and sliders.
https://gitlab.winehq.org/wine/wine/-/merge_requests/507
Throttle that comes with Thrustmaster T16000M FCS has a dial that doesn't work /
is usassignable in many games (e.g. Elite Dangerous).
Returning correct GUID and name would be enough but it breaks the tests due to
some quirks of the default format so that is also fixed.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/507
---
It is only set if certain shader properties are met, and Visual Studio
rightfully complains that we read an uninitialized variable later. Maybe
resource_symbol.info.resource.uav_counter_array is never used later on,
but it still is bad style to propagate uninitialized values.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1
This is the hidclass/ntoskrnl/setupapi counterpart to !359. As with that merge request, implementing `BusQueryContainerID` in the bus driver is left out and will be addressed in a different MR.
I believe this is useful to expose the Container ID no matter how those end up being assigned by the bus driver.
--
v11: ntoskrnl: Set device ContainerID from driver.
hidclass: Expose ContainerID from underlying driver.
hidclass: Improve error handling in get_device_id.
ntoskrnl/tests: Add test for getting SPDRP_BASE_CONTAINERID from PnP driver.
setupapi: Add support for SPDRP_BASE_CONTAINERID.
https://gitlab.winehq.org/wine/wine/-/merge_requests/432
This is the hidclass/ntoskrnl/setupapi counterpart to !359. As with that merge request, implementing `BusQueryContainerID` in the bus driver is left out and will be addressed in a different MR.
I believe this is useful to expose the Container ID no matter how those end up being assigned by the bus driver.
--
v10: ntoskrnl: Set device ContainerID from driver
hidclass: Expose ContainerID
hidclass: Copy device ContainerID to child devices
hidclass: Copy ContainerID from underlying driver in driver_add_device
hidclass: Improve error handling in get_device_id
ntoskrnl/tests: Add test for getting SPDRP_BASE_CONTAINERID from PnP driver
setupapi: Add support for SPDRP_BASE_CONTAINERID
https://gitlab.winehq.org/wine/wine/-/merge_requests/432
Gated behind a boolean environment variable WINETEST_COLOR for the moment
(default off).
I've experimented with this locally for a while, and I've found it helps me
immensely when looking for a specific kind of message. Too often failure or
succeeded-inside-todo messages get buried among todo messages, WINEDEBUG output,
or (in the case of some badly written test units) trace() output, but this has
also helped me check whether there are any todo and skip messages, in cases
where I want to make sure that one or the other doesn't show up.
I'm quite open to bikeshedding :-)
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/520
Under Wow64, disabling no-exec (done at the bottom of `alloc_module`) was failing.
Fixes crashes in games using older Steam DRM (where the EXE entry point is in a '.bind' section which is not marked executable)
--
v2: wow64: Allow setting NtSetInformationProcess(ProcessExecuteFlags).
ntdll: Allow changes to DEP flags under Wow64.
https://gitlab.winehq.org/wine/wine/-/merge_requests/500
- Based on !463
- _RunAndWait and exception handling implemented in later commits
@piotr
--
v6: msvcr100: Implement _StructuredTaskCollection::_Schedule and _Schedule_loc.
msvcr100: Factor out the mapping of a context to a scheduler.
msvcr100: Cache one Context instance.
msvcr100: Factor out EXCEPTION_RECORD to exception_ptr conversion.
msvcr100: Move exception_ptr functions to a separate file.
https://gitlab.winehq.org/wine/wine/-/merge_requests/464
Under Wow64, disabling no-exec (done at the bottom of `alloc_module`) was failing.
Fixes crashes in games using older Steam DRM (where the EXE entry point is in a '.bind' section which is not marked executable)
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/500