The software color converter DMO on Windows seems to be broken using certain topologies, making our media engine not work. As such, make the topology loader use the hardware accelerated one.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8362
Instead of https://gitlab.winehq.org/wine/wine/-/merge_requests/7815, for https://gitlab.winehq.org/wine/wine/-/merge_requests/7226, this only split the sync ops to a separate vtable and let objects delegate theirs to a separate object.
This starts using a event-like interface for most objects, leaving the decision regarding if/how to split sync themselves / integrate inproc syncs for later.
--
v10: server: Use an event sync for fd objects.
server: Introduce a new event sync object.
…
[View More] server: Redirect fd-based objects sync to the fd.
server: Add an operation to retrieve an object sync.
server: Move object grab/release out of (add|remove)_queue.
server: Move signal access checks outside of the objects.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7848
[View Less]
On Wed Jun 18 15:09:09 2025 +0000, Nikolay Sivov wrote:
> Should we check anything here? For example ActiveFrame could be null or
> it could be that ActiveFrame != &frame_extended->Frame.
Both of these cases lead to crashes on Windows. So I guess it's just unsafe, as the function name states.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8326#note_107066
Related to 57817044b983683f115edea6c5068ed6cddd858b. I believe originally the
missing double null terminator caused Windows to take garbage memory as file
name resulted in the ERROR_FILE_NOT_FOUND. Now it's fixed we are seeing what
Windows actually returns.
!8316
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8361
* * *
While investigating another problem, I found we are handling empty attributes list differently compared native.
But the actual problem is this, shouldn't `CRYPT_SizeOfAttributes` add `sizeof(CRYPT_ATTRIBUTES)` to `size`? Basically we return `size == 0` when the attributes list is empty, so the caller allocates zero bytes and call `GetParam` again, and we write out-of-bound trying to `out->cAttrs = in->cAttrs` in `CRYPT_ConstructAttributes`. (Of course with this MR this problem no …
[View More]longer show up, but the question still stands.)
--
v2: crypt32: Handle missing attributes in CDecodeSignedMsg_GetParam.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8350
[View Less]
Across the codebase there are several test cases where the arguments to ok()
is not safe to evaluate unless the test case fails.
For example:
ok(i == ARRAY_SIZE(array), "i is too small: %d\n", array[i]);
Only when the test fails (i.e. i < ARRAY_SIZE(array)), is array[i] safe to
evaluate.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=58320
* * *
The other option is to fix all such cases in the test suite, and add some documentation to make it clear arguments to `ok()` are …
[View More]_always_ evaluated. I don't know which one is better.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8360
[View Less]
In CopyFileEx, and DeleteFile functions, by default, the file name
and path are limited to MAX_PATH characters. To extend this limit
to 32,767 wide characters, need prepend "\\\\?\\" to the path.
--
v11: kernelbase: Limit the maximum path length for DeleteFile.
kernelbase: Fix DeleteFileA doesn't support long path.
kernelbase: Limit the maximum path length for filesystem.
ntdll: Check if long path aware is enabled.
kernel32/tests: Add tests for DeleteFile
…
[View More]kernel32/tests: Add tests for maximum path length limitation.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7540
[View Less]
On Wed Jun 18 08:29:18 2025 +0000, Nikolay Sivov wrote:
> This will change behavior for all the tests. We can create this file
> dynamically as an external manifest, then restart as a child process.
Right. That would be better. Let's do that.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7540#note_106999
On Wed Jun 18 08:27:27 2025 +0000, Zhiyi Zhang wrote:
> I see. In that case, you can leave it and keep the longPathAware
> manifest in the kernel32 test resource.
This will change behavior for all the tests. We can create this file dynamically as an external manifest, then restart as a child process.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7540#note_106998
On Wed Jun 18 08:25:18 2025 +0000, Yongjie Yao wrote:
> When testing on windows 11, handle=CreateActCtxW() ->
> ActivateActCtx(handle) -> QueryActCtxSettingsW(handle), the value of the
> longPathAware is true, but CopyFileExA still can't support long path.
> When I create a file with kernel32_test.exe.manifest as filename and
> test again, CopyFileExA can support long path. So I guess it is just
> checked at process startup.
I see. In that case, you can leave it and …
[View More]keep the longPathAware manifest in the kernel32 test resource.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7540#note_106997
[View Less]
On Mon Jun 16 10:56:00 2025 +0000, Zhiyi Zhang wrote:
> Please test if activating the longPathAware manifest dynamically sets
> IsLongPathAwareProcess, or if it is just checked at process startup.
> MSDN says the LongPathsEnabled registry value is cached. However, it
> doesn't say if the manifest is cached. This could be a local test.
When testing on windows 11, handle=CreateActCtxW() -> ActivateActCtx(handle) -> QueryActCtxSettingsW(handle), the value of the longPathAware is …
[View More]true, but CopyFileExA still can't support long path. When I create a file with kernel32_test.exe.manifest and test again, CopyFileExA can support long path. So I guess it is just checked at process startup.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7540#note_106996
[View Less]
For React Native.
--
v3: kernel32/tests: Add tests for RtlActivateActivationContextUnsafe() and RtlDeactivateActivationContextUnsafeFast().
ntdll: Implement RtlDeactivateActivationContextUnsafeFast().
ntdll: Implement RtlActivateActivationContextUnsafeFast().
ntdll: Set and check 0x8 flag for activation context stack frames.
kernel32/tests: Add tests for normal activation context stack frame flags.
ntdll: Use explicit ACTIVATION_CONTEXT type instead of HANDLE.
https://gitlab.winehq.org/wine/wine/-/merge_requests/8326
* * *
While investigating another problem, I found we are handling empty attributes list differently compared native.
But the actual problem is this, shouldn't `CRYPT_SizeOfAttributes` add `sizeof(CRYPT_ATTRIBUTES)` to `size`? Basically we return `size == 0` when the attributes list is empty, so the caller allocates zero bytes and call `GetParam` again, and we write out-of-bound trying to `out->cAttrs = in->cAttrs` in `CRYPT_ConstructAttributes`. (Of course with this MR this problem no …
[View More]longer show up, but the question still stands.)
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8350
[View Less]
CW* masks in window_set_config() are from comparing against the old rect from data->pending_state.rect,
not the actual X11 window rectangle. So it's still possible that after removing __NET_WM_STATE_FULLSCREEN,
WM moves the window behind Wine's back. Then window_set_config() calculates CW* masks and calls
XReconfigureWMWindow(), assuming the old rect is still the actual X11 window rect. As the result,
some rectangle updates might be missed.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8128