In preparation for moving display placement to win32u, for https://gitlab.winehq.org/wine/wine/-/merge_requests/551.
The idea for win32u to enumerate and work with full modes, with driver extra data, to do the display placement logic and validation, and pass the modes array for all adapters at once to the driver to apply them.
--
v4: winex11.drv: Constify set_current_mode DEVMODEW parameter.
winex11.drv: Iterate display settings using dmDriverExtra.
winex11.drv: Use DEVMODEW instead of x11drv_display_setting.
winex11.drv: Update devmode dmPosition instead of new_rect.
winex11.drv: Use DM_POSITION field bit to mark placed displays.
winex11.drv: Use a local desired_rect variable when placing displays.
https://gitlab.winehq.org/wine/wine/-/merge_requests/561
The following patches fix sending of the LVN_ODSTATECHANGED notification for
LVS_OWNERDATA list views, adding more refined tests in the process and
fixing various bugs.
This is v5, with the added comment in 3/6 as requested on the mailing list.
These are the patches sent as a response to v4 by Zhiyi Zhang on the mailing list, unmodified apart from 3/6 or f24f4b7fd.
---
Warning: I have had access to the Windows Research Kernel (WRK) 1.2
~10 years ago. These changes are regarding comctrl32 & tests which are NOT
part of the WRK. As outlined in https://wiki.winehq.org/Developer_FAQ this
should therefore satisfy the requirement of ONLY submitting patches to
components I have NOT had access to.
--
v5: comctl32/tests: Add more ownerdata listview tests.
https://gitlab.winehq.org/wine/wine/-/merge_requests/550
On Mon Aug 1 21:34:19 2022 +0000, Tobias G��rgens wrote:
> I'll slowly add/improve commits after the test results are available, I
> don't want to delete every commit again lol
> Is there any way to manually trigger the test bot?
the pipeline fails due to an unrelated issue in another dll.
They have a function with the same name, DllGetVersion.
Could it be that the dev defined it in shlwapi.h?
The issue is that I can't declare my function correctly with this definition (probably the reason why the first implementation used it, wrongly).
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/564#note_5462
On Mon Aug 1 19:43:52 2022 +0000, Bernhard K��lbl wrote:
> Tests cannot fail in their own commit. You need to denote stuff, that's
> going to be implemented with todo_wine, which expects a failure. Then
> the commit message for tests needs to be cabinet/tests:
I'll slowly add/improve commits after the test results are available, I don't want to delete every commit again lol
Is there any way to manually trigger the test bot?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/564#note_5461
Before https://gitlab.winehq.org/wine/wine/-/merge_requests/140, and to avoid a situation in the future where we might decide to implement this, and where the callback would be called asynchronously as they are supposed to, without the ASF reader filter supporting it.
--
v2: winegstreamer: Make IWMReader state transitions asynchronous.
winegstreamer: Move IWMReaderCallbackAdvanced *callback_advanced to a local variable.
wmvcore/tests: Add more IWMReader_(Open|Start|Stop|Close) async checks.
https://gitlab.winehq.org/wine/wine/-/merge_requests/393
Fix stub DllGetVersion implementation to read Dll version
and put it in correct structure.
Implement GetDllVersion by using DllGetVersion function
and return version
--
v6: cabinet: Implement GetDllVersion
https://gitlab.winehq.org/wine/wine/-/merge_requests/564
This doesn't implement the listeners (needs wine-gecko notification). Also "media" seems to return somewhat different strings on gecko in some cases, so some of the tests are todo_wine because of that, but I'm not sure if it's worth replicating in practice.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/568
In preparation for moving display placement to win32u, for https://gitlab.winehq.org/wine/wine/-/merge_requests/551.
The idea for win32u to enumerate and work with full modes, with driver extra data, to do the display placement logic and validation, and pass the modes array for all adapters at once to the driver to apply them.
--
v3: winex11.drv: Constify set_current_mode DEVMODEW parameter.
winex11.drv: Iterate display settings using dmDriverExtra.
winex11.drv: Use DEVMODEW instead of x11drv_display_setting.
winex11.drv: Update devmode dmPosition instead of new_rect.
winex11.drv: Use DM_POSITION field bit to mark placed displays.
winex11.drv: Use a local desired_rect variable when placing displays.
https://gitlab.winehq.org/wine/wine/-/merge_requests/561
Fix stub DllGetVersion implementation to read Dll version
and put it in correct structure.
Implement GetDllVersion by using DllGetVersion function
and return version
--
v2: cabinet.dll: implement DllGetVersion & GetDllVersion
https://gitlab.winehq.org/wine/wine/-/merge_requests/564
Zhiyi Zhang (@zhiyi) commented about dlls/win32u/sysparams.c:
>
> #undef query_mode_field
>
> + ret = query_reg_value( hkey, driver_extraW, value, sizeof(value_buf) ) &&
> + value->Type == REG_BINARY;
> + if (ret && value->DataLength <= mode->dmDriverExtra)
> + memcpy( mode + 1, value->Data, mode->dmDriverExtra );
Hi, R��mi. This is causing a new Coverity report. In NtUserChangeDisplaySettings(), default_mode is passed to read_registry_settings(), which eventually calls read_adapter_mode() and then writes to the mode + 1. This is out of bound access because default_mode is not an array. I think the correct fix is to not set dmDriverExtra for ENUM_REGISTRY_SETTINGS.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/406#note_5410
In preparation for moving display placement to win32u, for https://gitlab.winehq.org/wine/wine/-/merge_requests/551.
The idea for win32u to enumerate and work with full modes, with driver extra data, to do the display placement logic and validation, and pass the modes array for all adapters at once to the driver to apply them.
--
v2: winex11.drv: Constify set_current_mode DEVMODEW parameter.
winex11.drv: Iterate display settings using dmDriverExtra.
winex11.drv: Use DEVMODEW instead of x11drv_display_setting.
winex11.drv: Update devmode dmPosition instead of new_rect.
winex11.drv: Use DM_POSITION field bit to mark placed displays.
winex11.drv: Use a local desired_rect variable when placing displays.
https://gitlab.winehq.org/wine/wine/-/merge_requests/561
The following patches fix sending of the LVN_ODSTATECHANGED notification for
LVS_OWNERDATA list views, adding more refined tests in the process and
fixing various bugs.
This is v5, with the added comment in 3/6 as requested on the mailing list.
These are the patches sent as a response to v4 by Zhiyi Zhang on the mailing list, unmodified apart from 3/6 or f24f4b7fd.
---
Warning: I have had access to the Windows Research Kernel (WRK) 1.2
~10 years ago. These changes are regarding comctrl32 & tests which are NOT
part of the WRK. As outlined in https://wiki.winehq.org/Developer_FAQ this
should therefore satisfy the requirement of ONLY submitting patches to
components I have NOT had access to.
--
v4: comctl32/tests: Add more ownerdata listview tests.
https://gitlab.winehq.org/wine/wine/-/merge_requests/550
Some installer, like the visual studio installer, also make use of this function, instead of just NCryptVerifySignature.
--
v2: ncrypt: Initial implementation for NCryptEncrypt.
bcrypt: Initial RSA encryption implementation.
https://gitlab.winehq.org/wine/wine/-/merge_requests/565
Fix stub DllGetVersion implementation to read Dll version
and put it in correct structure.
Implement GetDllVersion by using DllGetVersion function
and return version
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/564
--
v2: winegstreamer: Use the correct name for WMADecMediaObject DMO.
mf: Increase min_buffer_size to MF_MT_AUDIO_AVG_BYTES_PER_SECOND.
mf: Implement SAR media type required attributes checks.
winegstreamer: Set the MF_MT_AUDIO_AVG_BYTES_PER_SECOND attribute.
mf: Return MF_E_NO_MORE_TYPE from AudioRenderer GetMediaTypeByIndex.
mf/tests: Add required SAR media type attributes tests.
https://gitlab.winehq.org/wine/wine/-/merge_requests/553
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53429
As the bug states, the test is failing on Wine / Intel GPU. The test was added in commit 83cbcdefa3f55afc449b6be51e215c4f646869f4 which was a test for cc8d8b5ee33561e984d4abe4112ddd6324f77115 (opengl32: Prioritize stencil check over depth check in wglChoosePixelFormat()). The motivation under that change was to avoid the situation when we erroneously return the no-stencil format (which was breaking a game) and not vice versa. This specific test was probably added for completeness. I don't have a Windows Intel GPU machine to check how it looks like there but it seems to me that this aspect (returning 0 depth stencil instead of 8 when no stencil requested) is much less likely to affect things in practice, so just remove the test instead of trying to fix that in Wine on Intel.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/563
The following patches fix sending of the LVN_ODSTATECHANGED notification for
LVS_OWNERDATA list views, adding more refined tests in the process and
fixing various bugs.
This is v5, with the added comment in 3/6 as requested on the mailing list.
These are the patches sent as a response to v4 by Zhiyi Zhang on the mailing list, unmodified apart from 3/6 or f24f4b7fd.
---
Warning: I have had access to the Windows Research Kernel (WRK) 1.2
~10 years ago. These changes are regarding comctrl32 & tests which are NOT
part of the WRK. As outlined in https://wiki.winehq.org/Developer_FAQ this
should therefore satisfy the requirement of ONLY submitting patches to
components I have NOT had access to.
--
v3: comctl32/tests: Add more ownerdata listview tests.
comctl32/listview: Don't send LVN_ODSTATECHANGED for empty ranges.
comctl32/listview: Send LVN_ODSTATECHANGED notification for LVS_OWNERDATA listview on selection changes.
comctl32/listview: Send LVN_ODSTATECHANGED only for LVS_OWNERDATA listviews.
comctl32/listview: Move sending LVN_ODSTATECHANGED notifications to a function.
comctl32/listview: Send one deselect all items notification for LVS_OWNERDATA listviews.
https://gitlab.winehq.org/wine/wine/-/merge_requests/550
This series ensures that when WineDbg looks up for the type
'pointer to a given type', this type always exists.
There's no reason this is always available from DbgHelp, so
synthetize the relevant type when it's not.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/559
With this series it's now possible to run and pass `user32:monitor` and `user32:sysparams` tests with nulldrv, and so most `user32` tests (except for a few desktop cursor position tests). This still requires some prefix configuration to enable the nulldrv driver, or a change like https://gitlab.winehq.org/rbernon/wine/-/commit/753368ad0ec52f03f8d6e78ca79… to enable it when `DISPLAY` environment variable is unset.
This then shows that some of the user32 tests are failing with winex11 but passing with nulldrv, as in https://gitlab.winehq.org/rbernon/wine/-/commit/6d5f4109a514a0dc266899fcacf….
--
v2: win32u: Add a default EnumDisplaySettingsEx driver implementation.
win32u: Add a default ChangeDisplaySettingsEx driver implementation.
win32u: Move enumeration of available modes out of graphics drivers.
win32u: Validate NtUserChangeDisplaySettings mode against available modes.
win32u: Ignore DM_POSITION mode fields for available modes.
https://gitlab.winehq.org/wine/wine/-/merge_requests/551
Zhiyi Zhang (@zhiyi) commented about dlls/comctl32/tests/listview.c:
> + res = SendMessageA(hwnd, WM_KEYDOWN, VK_DOWN, 0);
> + expect(0, res);
> + ok_sequence(sequences, PARENT_ODSTATECHANGED_SEQ_INDEX,
> + ownerdata_multiselect_select_3_odstatechanged_seq,
> + "ownerdata multiselect: deselect all, select item 3 via DOWN", FALSE);
> + res = SendMessageA(hwnd, WM_KEYUP, VK_DOWN, 0);
> + expect(0, res);
> + res = SendMessageA(hwnd, LVM_GETSELECTEDCOUNT, 0, 0);
> + expect(1, res);
> +
> + hold_key(VK_SHIFT);
> +
> + flush_sequences(sequences, NUM_MSG_SEQUENCES);
> +
> + /* First up then down */
> + /* Select multiple items via SHIFT+UP */
For consistency, let's move hold_key() to the start of each test. Right now some of them are at the start and some are at the up.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/550#note_5316
This is a new try of mciqtz32's video window patch.
Comparing to the previous !370, I added a lot of tests regarding the video window behavior.
Some portion of the previous patch are dropped to avoid complexity, I'll add that part later.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/557
--
v4: mciqtz32: Show the default video window when switching from another one.
mciqtz32: Hide the default video window when switching to another one.
mciqtz32: Reset the video size when switching video destination.
mciqtz32: Correct initial video window dimensions.
mciqtz32: Fix MCI_DGV_WHERE_WINDOW behavior.
mciqtz32: Correct video window behavior by creating default window.
winmm/tests: Add tests for destination of video window.
winmm/tests: Add tests for dimensions of video window.
winmm/tests: Add tests for window style of video window.
mciqtz32: Don't hide video window when stopping.
winmm/tests: Add tests for visibility of video window.
https://gitlab.winehq.org/wine/wine/-/merge_requests/370
1. Default to zero on IDOK if the edit control is empty.
2. Limit text input length to 8 or 16 hexadecimal characters, or 10 or 20 decimal characters, depending on registry value type and format specifier chosen.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/554
On Thu Jul 28 03:42:04 2022 +0000, **** wrote:
> Marvin replied on the mailing list:
> ```
> Hi,
> It looks like your patch introduced the new failures shown below.
> Please investigate and fix them before resubmitting your patch.
> If they are not new, fixing them anyway would help a lot. Otherwise
> please ask for the known failures list to be updated.
> The full results can be found at:
> https://testbot.winehq.org/JobDetails.pl?Key=119994
> Your paranoid android.
> === debian11 (32 bit report) ===
> comctl32:
> listview.c:3578: Test succeeded inside todo block: ownerdata select
> multiple notification: marked "todo_wine" but succeeds
> listview.c:3595: Test succeeded inside todo block: ownerdata select
> multiple notification: marked "todo_wine" but succeeds
> listview.c:3578: Test succeeded inside todo block: ownerdata select
> multiple notification: marked "todo_wine" but succeeds
> listview.c:3595: Test succeeded inside todo block: ownerdata select
> multiple notification: marked "todo_wine" but succeeds
> === debian11 (32 bit Chinese:China report) ===
> comctl32:
> listview.c:3578: Test succeeded inside todo block: ownerdata select
> multiple notification: marked "todo_wine" but succeeds
> listview.c:3595: Test succeeded inside todo block: ownerdata select
> multiple notification: marked "todo_wine" but succeeds
> listview.c:3578: Test succeeded inside todo block: ownerdata select
> multiple notification: marked "todo_wine" but succeeds
> listview.c:3595: Test succeeded inside todo block: ownerdata select
> multiple notification: marked "todo_wine" but succeeds
> === debian11 (32 bit WoW report) ===
> comctl32:
> listview.c:3578: Test succeeded inside todo block: ownerdata select
> multiple notification: marked "todo_wine" but succeeds
> listview.c:3595: Test succeeded inside todo block: ownerdata select
> multiple notification: marked "todo_wine" but succeeds
> listview.c:3578: Test succeeded inside todo block: ownerdata select
> multiple notification: marked "todo_wine" but succeeds
> listview.c:3595: Test succeeded inside todo block: ownerdata select
> multiple notification: marked "todo_wine" but succeeds
> === debian11 (64 bit WoW report) ===
> comctl32:
> listview.c:3578: Test succeeded inside todo block: ownerdata select
> multiple notification: marked "todo_wine" but succeeds
> listview.c:3595: Test succeeded inside todo block: ownerdata select
> multiple notification: marked "todo_wine" but succeeds
> listview.c:3578: Test succeeded inside todo block: ownerdata select
> multiple notification: marked "todo_wine" but succeeds
> listview.c:3595: Test succeeded inside todo block: ownerdata select
> multiple notification: marked "todo_wine" but succeeds
> ```
Should be fixed.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/550#note_5203
The following patches fix sending of the LVN_ODSTATECHANGED notification for
LVS_OWNERDATA list views, adding more refined tests in the process and
fixing various bugs.
This is v5, with the added comment in 3/6 as requested on the mailing list.
I removed the `Signed-off-by: Zhiyi Zhang <zzhang(a)codeweavers.com>` as I am unsure what the custom is. These are the patches sent as a response to v4 by Zhiyi Zhang on the mailing list, unmodified apart from 3/6 or f24f4b7fd.
---
Warning: I have had access to the Windows Research Kernel (WRK) 1.2
~10 years ago. These changes are regarding comctrl32 & tests which are NOT
part of the WRK. As outlined in https://wiki.winehq.org/Developer_FAQ this
should therefore satisfy the requirement of ONLY submitting patches to
components I have NOT had access to.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/550
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.
--
v2: ddraw/tests: Add some video memory accounting tests.
ddraw: Don't account video memory for sysmem surfaces' draw textures.
https://gitlab.winehq.org/wine/wine/-/merge_requests/521
`getAttributeNS` is tested with the `setAttributeNS` implementation.
--
v6: mshtml: Implement HTMLTitleElement's text property.
mshtml: Implement childElementCount for Elements.
mshtml: Implement previousElementSibling for Elements.
mshtml: Implement nextElementSibling for Elements.
mshtml: Implement lastElementChild for Elements.
mshtml: Implement hasAttributeNS for Elements.
mshtml: Implement removeAttributeNS for Elements.
mshtml: Implement setAttributeNS for Elements.
mshtml: Implement getAttributeNS for Elements.
https://gitlab.winehq.org/wine/wine/-/merge_requests/538
`getAttributeNS` is tested with the `setAttributeNS` implementation.
--
v4: mshtml: Implement HTMLTitleElement's text property.
mshtml: Implement childElementCount for Elements.
mshtml: Implement previousElementSibling for Elements.
mshtml: Implement nextElementSibling for Elements.
mshtml: Implement lastElementChild for Elements.
mshtml: Implement hasAttributeNS for Elements.
mshtml: Implement removeAttributeNS for Elements.
mshtml: Implement setAttributeNS for Elements.
mshtml: Implement getAttributeNS for Elements.
https://gitlab.winehq.org/wine/wine/-/merge_requests/538
`getAttributeNS` is tested with the `setAttributeNS` implementation.
--
v3: mshtml: Implement HTMLTitleElement's text property.
mshtml: Implement childElementCount for Elements.
mshtml: Implement previousElementSibling for Elements.
mshtml: Implement nextElementSibling for Elements.
mshtml: Implement lastElementChild for Elements.
mshtml: Implement hasAttributeNS for Elements.
mshtml: Implement removeAttributeNS for Elements.
mshtml: Implement setAttributeNS for Elements.
mshtml: Implement getAttributeNS for Elements.
https://gitlab.winehq.org/wine/wine/-/merge_requests/538
`getAttributeNS` is tested with the `setAttributeNS` implementation.
--
v2: mshtml: Implement HTMLTitleElement's text property.
mshtml: Implement childElementCount for Elements.
mshtml: Implement previousElementSibling for Elements.
mshtml: Implement nextElementSibling for Elements.
mshtml: Implement lastElementChild for Elements.
mshtml: Implement hasAttributeNS for Elements.
mshtml: Implement removeAttributeNS for Elements.
mshtml: Implement setAttributeNS for Elements.
mshtml: Implement getAttributeNS for Elements.
https://gitlab.winehq.org/wine/wine/-/merge_requests/538
- Based on !463
- _RunAndWait and exception handling implemented in later commits
@piotr
--
v23: msvcr100: Work around dependency issue.
msvcr100: Implement _StructuredTaskCollection::_Schedule and _Schedule_loc.
msvcr100: Add reference counting to thread contexts.
msvcr100: Factor out the mapping of a context to a scheduler.
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
- Based on !463
- _RunAndWait and exception handling implemented in later commits
@piotr
--
v22: msvcr100: Implement _StructuredTaskCollection::_Schedule and _Schedule_loc.
msvcr100: Add reference counting to thread contexts.
msvcr100: Factor out the mapping of a context to a scheduler.
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
- Based on !463
- _RunAndWait and exception handling implemented in later commits
@piotr
--
v19: tmp
msvcr100: Implement _StructuredTaskCollection::_Schedule and _Schedule_loc.
msvcr100: Add reference counting to thread contexts.
msvcr100: Factor out the mapping of a context to a scheduler.
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
- Based on !463
- _RunAndWait and exception handling implemented in later commits
@piotr
--
v18: msvcr100: Implement _StructuredTaskCollection::_Schedule and _Schedule_loc.
msvcr100: Add reference counting to thread contexts.
msvcr100: Factor out the mapping of a context to a scheduler.
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
The first patch is needed due to the way unixlibs are loaded. We require imported unixlibs to be loaded first by other means and loading user32 as a result of winevulkan PE import is too late. It's not a problem with native vulkan loader, because it statically links to user32 (and ICDs are loaded later). This patch mimics that behavior in our vulkan-1.dll.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/547
- Based on !463
- _RunAndWait and exception handling implemented in later commits
@piotr
--
v7: msvcr100: Implement _StructuredTaskCollection::_Schedule and _Schedule_loc.
msvcr100: Add reference counting to thread contexts.
msvcr100: Factor out the mapping of a context to a scheduler.
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