Previously it was assumed that synchronous I/O fills the 64-bit IOSB, and
asynchronous I/O fills the 32-bit IOSB.
As the ntdll:wow64 tests show, this is incorrect. I/O on an overlapped handle,
whether it is synchronous or not, fills the 32-bit IOSB, and I/O on a
non-overlapped handle always fills the 64-bit IOSB.
The first half is important, since completion can be signaled before we even
return from the initial I/O call [NtReadFile() etc.] Filling the IOSB after
signaling completion is the cause of bug 56389. This patch series fixes that.
The second discrepancy does not cause any bugs, as far as I can see, and is
a bit harder to fix anyway. It is therefore not addressed by this patch series.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56389
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5926
This is part X of cmd engine rewrite.
This serie:
- tackles some other variable expansion issues,
- attaches redirections to CMD_NODE (where it belongs)
(eg. "> foo (IF 1==1 echo a)" is a valid command),
- preparing for next serie.
Next serie will activate he updated lexer and parser.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5932
IIUC atexit isn't exported by ucrtbase, but still exists (maybe as a builtin) and is resolved to a module-local symbol which can be used to register functions executed on module process detach. It is called implicitly by C++ compilers to register static destructors.
--
v3: include: Define __cpuid(ex) as intrinsics when _MSC_VER is defined.
include: Don't import atexit when building with ucrtbase.
include: Guard rpcndr.h DECLSPEC_UUID definition.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5915
GStreamer uses _SC_NPROCESSORS_CONF to determine 'max-threads'. On the
Steam Deck, this is configured to be 16 (which is double its number
of logical cores).
_SC_NPROCESSORS_CONF also disregards a process's CPU affinity, thus it
can create more threads than is useful, which ultimately wastes memory
resources.
Using affinity to set 'max-threads' addresses both these problems.
--
v2: winegstreamer: Set MAX_THREADS to 4 for i386.
winegstreamer: Use thread_count to determine 'max-threads' value.
winegstreamer: Provide thread_count to init_gstreamer.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5923
Zhiyi Zhang (@zhiyi) commented about dlls/comctl32/listview.c:
> {
> if ((infoPtr->uView == LV_VIEW_LIST) || (infoPtr->uView == LV_VIEW_DETAILS))
> {
> - while (nItem < infoPtr->nItemCount)
> + while (nItem < infoPtr->nItemCount - 1)
This looks correct at first glance. Do you have an application affected by this? It seems to me changing this only reduces some time and -1 will be returned if it's the last item.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5909#note_74440
On Wed Jun 26 07:15:20 2024 +0000, Ilia Docin wrote:
> To reproduce it, I moved gripper left and right to hide some buttons,
> then brought it back. On the first image chevron didn't disappear as
> expected. On the second one chevron went away as I applied fix.
Do you have a link to the software you used to demonstrate?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5706#note_74439
Zhiyi Zhang (@zhiyi) commented about dlls/comctl32/rebar.c:
> lpBand->rcChild.top, lpBand->rcChild.right + CHEVRON_WIDTH,
Please also change the commit message title to "comctl32/rebar: Hide chevron if rebar's band is resized back to full size with gripper.". Note the dot at the end of the title.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5706#note_74438
Mostly race condition fixes.
"winegstreamer: Do waits for samples on stream-specific work queues." works around a Gstreamer bug that I'll try to write a minimal reproducer for and submit to their bug tracker. For now, doing sample waits actually concurrently works around the problem.
"winegstreamer: Fixate caps in autoplug_continue_cb." so far I've only seen relevant when the source is a uridecodebin (in Proton), but I though it couldn't hurt to upstream it too.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5917
This commit replaces the SampleGrabberSink with a dedicated Video Sink,
referred to as the Simple Video Renderer (SVR).
This brings it more inline with Windows and provides the benefit of
having direct access to the IMFSample, removing the need to copy the
sample data.
--
v2: mfmediaengine: Implement SVR.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5924
If the script cache was already freed before ScriptTextOut() runs and
hence the sfnt member is not available, use the definition from
init_script_cache() to conditionally apply the ETO_GLYPH_INDEX flag.
--
v3: gdi32/uniscribe: Ensure the cache is initialised.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5893