On Sun Dec 22 18:39:49 2024 +0000, Nikolay Sivov wrote:
> What does it return for network drives?
> P.S. I see you closed !7050, please reuse same MR next time, that
> preserves comments and commits history.
Good question, this morning I shared a drive over smb from my Mac to my Windows 11 computer. I mounted the network drive and verified it worked. I re-ran the tests on Windows and drive_get_path was still outputting the drive letter and a colon "W:", even for the network drive. I am happy to add more specific tests with network drives if you think that would be beneficial?
Thanks for your feedback, I am very new to wine's code-base and really appreciate it. I apologize on the MR, thank you for the information. I had read your feedback that I needed to clean it (the last MR) and mistook that to mean make a new one, especially since my code was very different.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7060#note_91071
On Sun Dec 22 17:58:32 2024 +0000, Akihiro Sagawa wrote:
> From my point of view, SJIS is correct.
> Here is an example of SJIS locale usage written by [Red
> Hat](https://access.redhat.com/solutions/727043) and
> [HP-UX](https://web.archive.org/web/20061206132454/http://docs.hp.com/en/UXL…
> (see Appendix A).
> Historically, until around 2000, the Japanese UNIX environment mainly
> used an encoding different from Shift-JIS, called EUC-JP (Extended Unix
> Code for Japanese). Therefore, with the exception of HP-UX, SJIS has
> rarely been used in locale settings.
I'm not well versed in the topic, I wrote this patch, because on two of my systems (Mint and Artix), the charmap file is named SHIFT_JIS rather than SJIS.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7017#note_91069
Anton Baskanov (@baskanov) commented about dlls/amstream/ddrawstream.c:
> if (!surface && rect)
> return E_INVALIDARG;
>
> + IMultiMediaStream_GetState(stream->parent, ¤t_state);
> + IMultiMediaStream_SetState(stream->parent, STREAMSTATE_STOP);
The correct way to fix this is to implement a custom allocator like it is done in the native AMDirectDrawStream. This will allow changing the format on the fly without stopping the stream. But it of course requires much more work, including adding format change support to decoders.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7057#note_91029
Commit f784374bcb5195c918754b1da6142a618a0da7dd introduced a cyclic reference between desktop and global hook through global hook table. So now if a hook was set and then not explicitly unset and the process was just terminated the hook, desktop, thread and some other related objects are leaked (which is displayed by wineserver on prefix shutdown in this case).
--
v2: server: Cleanup all the global hooks owned by terminating thread.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7039
That is, in particular, needed for Disgaea 5 complete to render movies with 'MovieType=1' settings (that settings is auto selected initially by the game based on GPU). Movie render window is initially a top level window, then the game reparents movie rendering window to the main window with SetParent() after 3d rendering to game window was already initialized earlier. The offscreen state for the window being rendered to (child in this case) is updated during presentation, but the parent does not (the same issue would be for the things going other way around, presenting to parent window when the child is never presented after reparenting).
This part is not enough to fix these cases though since the recent commit 786d9d1685ac220081b10cc779d4d331ddd2fc52 . When parent is not presented but the child is, the child image should appear in the window regardless of the fact that the parent has no WS_CLIPCHILDREN attribute. I know that commit is fixing regression Bug 57503, but due to these reasons the commit doesn't look right. And it is not clear to me from bug description what was actually wrong with "World in conflict" rendering when parent window offscreening took place: that alone is not supposed to be breaking the rendering (and if it would that would probably be a blocker for implementing child windows the way they are implemented?), I suspect there might be a bug elsewhere (just e. g., some other missing case of synchronizing window config state which ends up in child window not being properly offscreened in that case).
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7034
NULLREGION means that the entire window should be clipped out, and its
children displayed instead. The change broke some offscreening decisions
when both parent and children have a GL drawable created but drawing
actually happens on the child window.
(Found while trying to reproduce otherwise unrelated regression in
https://bugs.winehq.org/show_bug.cgi?id=52738, the game there uses ddraw
and doesn't display anything after 786d9d1685ac220081b10cc779d4d331ddd2fc52)
Fixes: 786d9d1685ac220081b10cc779d4d331ddd2fc52
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=57503
--
v2: winex11: Move GL/VK offscreen if the clipping region is NULLREGION.
winex11: Use DCX_USESTYLE when checking DC clipping regions.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7014
The preprocessor condition to cover pre-2013 VisualStudio around
C99 support actually also admitted current versions of GCC and
breaks GCC in C23 mode.
Address this by explicitly checking for GCC which, by definition,
then does not qualify as VisualStudio.
--
v3: capstone: Avoid GCC being treated as old VisualStudio
https://gitlab.winehq.org/wine/wine/-/merge_requests/7040
The preprocessor condition to cover pre-2013 VisualStudio around
C99 support actually also admitted current versions of GCC and
breaks GCC in C23 mode.
Address this by explicitly checking for GCC which, by definition,
then does not qualify as VisualStudio.
--
v2: capstone: Avoid GCC being treated as old VisualStudio
winex11: Use NtUserReleaseDC() with hdc.
ntdll: Align heap virtual allocations to a multiple of the page size.
msxml3: Correct looping of Document Element node map.
server: Avoid crash when handle table is allocated but not yet filled.
Revert "wined3d: Use bindless textures for GLSL shaders if possible.".
wined3d: Add nop state entries for states now invalidated on the client side.
windowscodecs/tests: Check persist options after Load().
windowscodecs/tests: Add loading tests for the writers.
windowscodecs/tests: Add some tests for metadata stream objects handling.
windowscodecs/tests: Add some tests for CreateMetadataWriter().
windowscodecs/tests: Add some tests for CreateMetadataWriterFromReader().
windowscodecs/tests: Added some tests for Exif and Gps IFDs embedded in App1 blob.
gdiplus: GdipPathAddRectangle should close the path.
kernelbase: Don't try to print the path in the FIXME in GetTempPath2.
cmd: Fix regression in variable search in expansion.
cmd/tests: Add more tests about variable expansion.
winex11: Sync gl drawable outside of the win_data mutex.
po: Update Japanese translation.
odbc32: Add null pointer checks to update_result_lengths helpers.
odbc32: Avoid crashing if str is null in debugstr_sqlstr.
Release 10.0-rc2.
winetest: Filter out color escapes for junit output.
winex11: Fix inconsistent coordinates when reparenting host window.
server: Allow merging WM_MOUSEMOVE across internal messages.
windowscodecs/tests: Add some tests for the App1 reader.
windowscodecs/tests: Add some tests for the Gps reader.
windowscodecs/tests: Run data test on the Exif reader.
windowscodecs/tests: Move IFD data tests to a helper.
windowscodecs/tests: Remove endianess compile time checks from the tests.
windowscodecs/tests: Use a helper instead of a macro.
windowscodecs/tests: Add some tests for GetContainerFormats().
windowscodecs/tests: Use test context in a few metadata tests.
explorer: Avoid hiding the taskbar if it's enabled.
shell32: Remove trailing spaces in SHELL_execute.
win32u: Check for driver events more often.
dinput: Queue the relative wheel motion as event data.
winex11: Skip offscreening if the children don't require clipping.
winex11: Always check if the GL drawable offscreen state needs to be changed.
winex11: Fixup window config size back to 0x0 if we've requested 1x1.
win32u: Use width and height to check if the display mode is vertical.
dbghelp: Lower vector allocation for local variables.
dbghelp: Fix error handling in PDB/FPO unwinder.
wineboot: Scale the wait dialog icon with the dialog size.
wineboot: Resize the wait dialog to accommodate the text size.
wineboot: Always wrap the wait dialog text.
mshtml: Remove unused MutationObserver DISPID and related hook.
dmloader: Remove redundant flag.
include: Use inline assembly on Clang MSVC mode in YieldProcessor().
configure: Define _load_config_used symbol in the cross-compiler test program.
winebus: Wait until the device is started before processing reports.
winex11: Request window config when it needs to be raised.
ntoskrnl: Fix off-by-one error in buffer size.
ntoskrnl: Support relative driver paths.
user32: Fixup forwarded functions on 32-bit.
win32u: Use the winstation monitor update serial to detect updates.
server: Add a winstation monitor update serial counter.
win32u: Extend display_lock CS around winstation check.
server: Force surface region update when window region is modified.
win32u: Copy the shape from the old surface when surface is recreated.
winebth.sys: Use the correct byte-ordering for setting the radio's address property.
winebth.sys: Set the Information field in the IRP's STATUS_BLOCK after handling IOCTL_BTH_GET_LOCAL_INFO.
win32u: Release the Win16 mutex when yielding in peek_message.
msvcrt: Don't leak find handle or error in _findfirst().
ucrtbase/tests: Use correct size to GetEnvironmentVariableW.
webservices: Rename a struct member from bool to boolean.
winebth.sys: Fix new bluetooth events being incorrect set due to variable shadowing.
mscoree: Use correct variable for codebase path.
win32u: Skip updating the cache on driver load if we're already updating it.
Release 10.0-rc1.
winebth.sys: Implement IOCTL_BTH_GET_LOCAL_INFO.
winebth.sys: Update radio PDO properties on receiving PropertiesChanged for an org.bluez.Adapter1 object.
winebth.sys: Remove the corresponding radio PDO on receiving InterfacesRemoved for a org.bluez.Adapter1 object.
winebth.sys: Create new radio PDOs on receiving InterfacesAdded for objects that implement org.bluez.Adapter1.
winebth.sys: Set radio PDO properties from the device's corresponding org.bluez.Adapter1 object properties.
ucrtbase: Always use CP_ACP when converting environment block.
winedbg: Add support for dynamic debug channel.
ntdll: Force redirect all ARM64EC indirect calls until the JIT is ready.
ntdll: Add arm64ec_get_module_metadata helper.
ntdll: Move update_hybrid_metadata() to the ARM64EC backend.
quartz/dsoundrender: Use send_sample_data() to fill the buffer with silence at EOS.
quartz/dsoundrender: Queue samples and render them on a separate thread.
quartz/dsoundrender: Do not ignore preroll samples.
quartz/dsoundrender: Do not provide time to the passthrough.
quartz/tests: Test whether the DirectSound renderer provides a position.
quartz/dsoundrender: Play non-discontinuous samples consecutively.
quartz/dsoundrender: Remove the unused "tStop" argument to send_sample_data().
quartz/dsoundrender: Always treat samples as continuous if they are late or out of order.
winex11: Listen to root window _NET_SUPPORTED property changes.
winex11: Move the _NET_SUPPORTED information to the thread data.
winegstreamer: Send media source shutdown notification via IMFMediaShutdownNotify.
mf: Introduce IMFMediaShutdownNotify for notification of media source shutdown.
mf: Handle media source Start() failure due to source shutdown.
mf: Handle media source event subscription failure due to source shutdown.
mf: Handle media source BeginGetEvent() failure due to shutdown.
mf: Handle media source EndGetEvent() failure due to shutdown.
mf/tests: Add tests for shutting down a media source used in a session.
winegstreamer: Return the result code from media_source_Pause().
server: Work around macOS W^X limitations in write_process_memory.
server: Do not page-align address in write_process_memory.
server: Do not suspend mach task in write_process_memory.
server: Use mach_vm_read_overwrite in get_selector_entry.
server: Do not suspend mach task in get_selector_entry.
server: Use mach_vm_read_overwrite in read_process_memory.
server: Do not suspend mach task in read_process_memory.
jscript: Add support for deleting host properties.
jscript: Move property allocation to update_external_prop.
include: Add SQL_C_TCHAR define.
include: Add DB_VARNUMERIC struct.
include: Add _WIN32_WINNT_ version defines.
server: Ensure in pending delete on close that path to unlink are unique.
winegstreamer: Handle null transform in WMA IMediaObject::Flush().
winegstreamer: Handle null transform in video IMFTransform::ProcessMessage() FLUSH.
winegstreamer: Handle null transform in video IMFTransform::ProcessMessage() DRAIN.
winegstreamer: Handle null transform in video IMediaObject::Flush().
ucrtbase: Enable utf8 support.
msvcrt: Prepare remaining process creation functions to handle utf-8 encoded arguments.
msvcrt: Prepare _execle to handle utf-8 encoded arguments.
msvcrt: Prepare _spawnl to handle utf-8 encoded arguments.
msvcrt: Prepare _loaddll to handle utf-8 encoded path.
msvcrt: Prepare freopen to handle utf-8 encoded path.
msvcrt: Prepare _sopen_dispatch to handle utf-8 encoded path.
msvcrt: Return error on NULL path parameter in _wsopen_dispatch.
msvcrt: Add putenv() utf-8 tests.
msvcrt: Call _wfindnext64i32 in _findnext64i32 function.
msvcrt: Call _wfindfirst64i32 in _findfirst64i32 function.
server: Print signal names in traces.
wrc: Use the correct error function for syntax errors.
winebuild: Remove support for .def files as import libraries.
winegcc: Remove support for .def files as import libraries.
configure: Correctly check the --enable-build-id option.
bcrypt: Trace returned handles.
include: Use inline assembly on Clang MSVC mode in exception helpers.
windows.networking.connectivity: Use %I64d instead of %llu.
mfmediaengine: Fallback to sample copy if scaling is required.
mfmediaengine: Implement D3D-aware video frame sink.
mfmediaengine: Implement the Simple Video Renderer.
ntdll: Use sched_getcpu instead of the getcpu syscall.
win32u: Hold the display_lock when checking the cache update time.
win32u: Remove recursive lock_display_devices calls.
win32u: Implement update_display_cache with lock_display_devices.
win32u: Add a force parameter to lock_display_devices.
ntdll: Implement NtGetCurrentProcessorNumber for macOS on x86_64.
qasf: Correctly return failure in process_output.
qasf/tests: Add more tests for dmo_wrapper_sink_Receive.
windowscodecs: Implement CreateMetadataReader().
windowscodecs/metadata: Add a helper to iterate over components.
windowscodecs/tests: Add a basic test for CreateComponentEnumerator().
windowscodecs/tests: Add some tests for CreateMetadataReader().
windowscodecs/tests: Use string literals in the metadata tests.
mshtml: Get rid of unused HTMLElement_toString_dispids.
mshtml: Expose respective props from StyleSheetPrototype.
mshtml: Don't expose toString from styles in IE9+ modes.
mshtml: Don't expose the *Expression methods from styles in IE9+ modes.
mshtml: Don't expose the clip* props from style declaration or properties in IE9+ modes.
mshtml: Don't expose 'behavior' prop from styles in IE11 mode.
mshtml: Move 'filter' prop to MSCSSPropertiesPrototype in IE9 mode.
mshtml: Prefer builtins for style aliases that have the same name.
mshtml: Expose respective props from MSCSSPropertiesPrototype.
mshtml/tests: Add more tests for the style aliased prop names.
msvcrt: Call _wfindnext64 in _findnext64 function.
msvcrt: Call _wfindfirst64 in _findfirst64 function.
msvcrt: Call _wfindnext32 in _findnext32 function.
msvcrt: Call _wfindfirst32 in _findfirst32 function.
include: Cleanup corecrt_io.h file and use it in io.h.
msvcrt: Prepare _searchenv_s() for utf-8 encoded filename.
msvcrt: Don't return success on GetFullPathName error in _wsearchenv_s.
msvcrt: Call _wtempnam in _tempnam function.
msvcrt: Call _wrename in rename function.
msvcrt: Call _wstat64 in _stat64 function.
d3dcompiler/tests: Test the 'double' HLSL data type.
d3dx9/tests: Test the 'double' HLSL data type.
d3dx9/tests: Add d3dx9_43 tests.
d3dx9_43: Generate an import library.
d3dcompiler/tests: Clean up further tests fixed by vkd3d merges.
d3dx11/tests: Clean up tests fixed by vkd3d merges.
d3d10_1/tests: Clean up tests fixed by vkd3d merges.
d3dcompiler/tests: Clean up tests fixed by vkd3d merges.
kernelbase: Improve logging of information classes in GetTokenInformation.
Revert "win32u: Create explorer with the thread effective access token.".
explorer: Apply a default admin token when running for the desktop.
widl: Avoid unused variable warning.
wbemprox: Avoid unused variable warning.
vbscript: Avoid unused variable warning.
msxml: Avoid unused variable warning.
msi: Avoid unused variable warning.
jscript: Avoid unused variable warning.
windows.networking.connectivity: Implement IConnectionProfile::GetNetworkConnectivityLevel().
windows.networking.connectivity/tests: Add some INetworkInformationStatics::GetInternetConnectionProfile() tests.
windows.networking.connectivity: Implement INetworkInformationStatics::GetInternetConnectionProfile().
windows.networking.connectivity: Add INetworkInformationStatics stub interface.
windows.networking.connectivity: Add stub dll.
dbghelp: Search debug info with buildid for RSDS debug entry w/o filenames.
dbghelp: Extend search for buildid in system directories.
ntdll: Use %fs/%gs prefixes instead of a separate .byte 0x64/.byte 0x65.
include: Use %fs/%gs prefixes instead of a separate .byte 0x64/.byte 0x65.
server: Only store a Unix name for regular files.
taskmgr: Only list dynamically settable debug channels.
quartz/dsoundrender: Make trace messages more consistent.
quartz/dsoundrender: Use a consistent style for method names.
quartz/dsoundrender: Make brace placement consistent.
quartz/dsoundrender: Add missing static qualifier to IDispatch methods.
quartz/dsoundrender: Rename "This" to "filter".
qasf: Return failure in dmo_wrapper_sink_Receive if process_output fails.
qasf/tests: Test dmo_wrapper_sink_Receive if downstream fail to receive.
qasf: Return S_FALSE for flushing in dmo_wrapper_sink_Receive.
msvcrt: Prepare _mktemp_s to handle UTF-8 strings.
msvcrt: Prepare _mktemp to handle UTF-8 strings.
msvcrt: Call _wunlink in _wremove function.
msvcrt: Call _unlink in remove function.
msvcrt: Call _wchmod in _chmod function.
msvcrt: Call _waccess in _access function.
msvcrt: Call _wunlink in _unlink function.
msvcrt: Prepare _fsopen to handle UTF-8 strings.
gdiplus: Cast enums to unsigned type when validating its value.
winevulkan: Use WINE_UNIX_LIB instead of WINE_VK_HOST.
winevulkan: Mirror function handling in vk_is_available_instance_function32().
ntdll: Make a debug channel dynamically settable only if there's no specified class.
loader: Add Default, Failed, and LastKnownGood values to HKLM\System\Select.
advapi32/tests: Add test for CurrentControlSet link.
winevulkan: Update to VK spec version 1.4.303.
msvcp140: Add a version resource.
winex11: Use bilinear filtering in xrender_blit.
win32u: Let fullscreen windows cover entire monitors, keeping aspect ratio.
winex11: Set a non-transparent window background pixel color.
configure: Don't add -Wl,--build-id linker option to CFLAGS.
configure: Use -Wl,--build-id unconditionally if requested.
winegcc: Remap build-id linker option for clang.
configure: Properly test clang for dwarf support.
gdiplus: Use the FormatID of the source image when cloning.
winex11: Do not use desired_state when computing state updates.
explorer: Prevent apps from showing Wine specific shell tray window with no icons.
ntdll/tests: Fix format warning with clang.
ntdll: Fix reported exception code for some brk immediates.
ntdll: Test more ARM64 brk instruction exception behaviour.
winex11: Don't update Win32 window position for offscreen windows.
d2d1/effect: Improve handling of blob properties.
kernelbase: Add test for EnumSystemFirmwareTables on missing provider.
kernelbase: Properly return 0 from EnumSystemFirmwareTable on error.
kernel32: Use a proper import for HeapFree.
win32u: Move surface and swapchain wrappers from winevulkan.
winevulkan: Keep the host function pointers in devices and instances.
winevulkan: Use the vulkan object as the wrapper tree node.
winevulkan: Get rid of unnecessary *to_handle helpers.
winevulkan: Avoid changing client command buffer pointer.
winevulkan: Fix incorrect client queue pointers.
winevulkan: Introduce a new vulkan_object_init helper.
winevulkan: Use the result to decide if creation failed.
server: Make CurrentControlSet a symlink in new prefixes.
include: Enable format attributes for debug traces in Clang MSVC mode.
mmdevapi/tests: Use %u format for unsigned int arguments.
imagehlp: Cast AddressOfData to size_t in debug traces.
ole32/tests: Add more FMTID_UserDefinedProperties property storage tests.
ole32: Read property storage section from correct location.
ole32/tests: Add FMTID_UserDefinedProperties property storage tests.
ole32: Fix unsupported vector elements detection in PropertyStorage_ReadProperty.
msvcrt: Call _wfullpath in _fullpath function.
msvcrt: Call _wgetdcwd in _getdcwd function.
msvcrt: Call _wgetcwd in _getcwd function.
msvcrt: Call _wchdir in _chdir function.
msvcrt: Call _wrmdir in _rmdir function.
msvcrt: Call _wmkdir in _mkdir function.
bluetoothapis: Implement BluetoothFindFirstRadio, BluetoothFindNextRadio, BluetoothFindRadioClose.
bluetoothapis/tests: Add tests for BluetoothFindRadioClose.
bluetoothapis/tests: Add tests for BluetoothFindNextRadio.
bluetoothapis/tests: Add tests for BluetoothFindFirstRadio.
bluetoothapis/tests: Fix potential test failure from memcmp'ing uninitialized bytes.
msxml3: Accept the domdoc MaxElementDepth property.
ntdll: Add NtFlushBuffersFileEx() semi-stub.
win32u: Add some access rights when creating a desktop object.
server: Use the correct handle allocation pattern for all object types.
mshtml: Don't expose some props from document prototype depending on mode.
mshtml: Expose the right props from document fragments.
mshtml: Use DocumentPrototype as the document's prototype for modes prior to IE11.
mshtml: Move HTMLDocument prototype props to the Document prototype.
mscoree: Update Wine Mono to 9.4.0.
wined3d: Implement vertex fog in the HLSL FFP pipeline.
wined3d: Implement lighting in the HLSL FFP pipeline.
wined3d: Take the depth buffer into account for HLSL pretransformed draws.
wined3d: Implement pretransformed varyings in the HLSL FFP pipeline.
wined3d: Beginnings of an HLSL FFP pixel shader implementation.
winevulkan: Use a vulkan_object header for other wrappers.
winevulkan: Introduce a new vulkan_swapchain base structure.
winevulkan: Introduce a new vulkan_surface base structure.
winevulkan: Introduce a new vulkan_queue base structure.
winevulkan: Restore some wine_*_from_handle helpers.
winevulkan: Introduce a new vulkan_device base structure.
winevulkan: Name wine_device parameters and variables more consistently.
wined3d: Use wined3d_texture_download_from_texture() even if the dst texture map binding is not valid.
ddraw/tests: Always use a format string in winetest_push_context calls.
d3d11/tests: Always use a format string in winetest_push_context calls.
msvcp60/tests: Add wcsrtombs tests.
msvcp60: Improve wcsrtombs implementation.
msi: Dynamically determine supported package architectures.
msi: Assume PLATFORM_INTEL if the template property is missing.
d3dx9: Remove superfluous null check (Coverity).
win32u: Allow unsetting the user driver.
msvcp140: Call into fopen from _Fiopen.
msvcp140/tests: Add tests for _Fiopen.
ucrtbase/tests: Add tests for _fsopen.
include: Add ___lc_codepage_func() declaration.
comctl32/edit: Scroll caret on Ctrl+A.
vkd3d: Import upstream release 1.14.
uxtheme: Check DrawThemeEdge() content rectangle pointer.
include: Use format attribute on Clang in MSVC mode.
include: Use LONG_PTR format hack on Clang in MSVC mode.
include: Apply LONG_PTR format hack only to Wine build.
msvcrt/tests: Silence -Wformat-security Clang warning in test_snprintf.
mshtml: Get rid of HTMLELEMENT_TIDS.
mshtml: Add IHTMLDOMNode2 in every mode in node's init_dispex_info.
mshtml: Move HTMLTableDataCellElement prototype props to the HTMLTableCellElement prototype.
mshtml: Don't expose some props from elements in IE11 mode.
mshtml: Don't expose some props from elements in IE10+ modes.
mshtml: Don't expose expression methods from elements in IE9+ modes.
mshtml: Don't expose onpage from elements in IE9+ modes.
mshtml: Move normalize from HTMLElement to HTMLDOMNode in IE9+ modes.
mshtml: Move hasAttributes from HTMLElement to HTMLDOMNode in IE9+ modes.
mshtml: Move toString from HTMLElement to HTMLAnchorElement or HTMLAreaElement in IE9+ modes.
mshtml: Don't expose onmspointerhover from elements in IE11 mode.
mshtml: Don't expose fireEvent from elements in IE11 mode.
mshtml: Expose respective props from Element prototype.
user32: Add EvaluateProximityToRect stub.
user32: Add PackTouchHitTestingProximityEvaluation stub.
msvcp120/tests: Add tests for _Fiopen.
msvcr120/tests: Add tests for _fsopen.
comctl32: Make CBS_NOINTEGRALHEIGHT only set minimum combobox height.
comctl32/tests: Add tests for a small number of items but big size to the combobox dropdown size tests.
mmdevapi: Do not modify buffer size after sample rate change.
mmdevapi/tests: Test for IAudioClockAdjustment.
winevulkan: Introduce a new vulkan_physical_device base structure.
winevulkan: Introduce a new vulkan_instance base structure.
winevulkan: Hoist physical device array and client instance handle.
winevulkan: Name wine_instance parameters and variables more consistently.
winevulkan: Move vulkan_client_object header to wine/vulkan_driver.h.
winevulkan: Generate ALL_VK_(DEVICE|INSTANCE)_FUNCS in wine/vulkan.h.
winevulkan: Get rid of the instance/device funcs structs.
win32u: Use PFN_* typedefs for vulkan function pointers.
winevulkan: Add missing wine_vkGetPhysicalDeviceSurfaceFormatsKHR manual wrapper.
winebth.sys: Register and enable BTHPORT_DEVICE and BLUETOOTH_RADIO interfaces for radio PDOs.
winebth.sys: Derive a unique hardware ID for radio PDOs from their corresponding BlueZ object path.
winebth.sys: Create radio PDOs from the list of org.bluez.Adapter1 objects on BlueZ.
winebth.sys: Add a basic unixlib stub using DBus.
winebth.sys: Add base winebth.sys driver.
oleaut32: Remove unneeded null checks.
oleaut32: Make OleCreateFontIndirect return error if font name is missing.
user32: Send parent BN_CLICKED notification when a radio button get focused.
user32/tests: Add tests for radio button WM_SETFOCUS.
comctl32: Send parent BN_CLICKED notification when a radio button get focused.
comctl32/tests: Add tests for radio button WM_SETFOCUS.
win32u/window: Ignore changing WS_EX_TOPMOST for message-only windows.
user32/tests: Check that message-only windows ignore WS_EX_TOPMOST.
dsound: Add non-NaN value tests for SetOrientation().
dsound/tests: Add NaN tests for floating-point 3D functions.
dsound: Add an angle check for SetOrientation().
dsound: Handle NaN values in the 3D code.
ntdll/tests: Add tests for opening objects with zero access.
ntdll/tests: Remove some workarounds for old Windows versions.
server: Fix a token reference leak.
server: Do not allow to open an existing mailslot in NtCreateMailslotFile.
ntdll: Always return the handle from NtCreateIoCompletion().
winhlp32: Drop unused member of struct lexret.
winex11: Only request the supported _NET_WM_STATE atoms.
winex11: Read _NET_SUPPORTED atom list on process attach.
winebus: Ignore reports with unexpected IDs.
appwiz.cpl: Fix wine_get_version() function pointer check.
dwrite/gdiinterop: Apply dpi scaling to the whole target transform.
dwrite/gdiinterop: Always return valid bounds from DrawGlyphRun on success.
dwrite/tests: Add a test for DrawGlyphRun() bounds.
dsound: Fix SetNotificationPositions at end of nonlooping buffer.
dsound/tests: Add nonlooping SetNotificationPositions test.
mshtml: Make ProgressEvent constructor only available in IE10+ modes.
mshtml: Make PageTransitionEvents only available in IE11 mode.
mshtml: Expose ie9_char as char for KeyboardEvent.
mshtml: Implement get_data for legacy DOCTYPE comment elements.
mshtml: Don't expose element props from comment nodes in IE9+ modes.
mshtml: Don't expose 'atomic' prop from comment nodes in IE9+ modes.
mshtml: Expose IHTMLCommentElement2 interface for comment elements.
mshtml: Don't expose toString from text nodes in IE9+ mode.
mshtml: Expose the props from the IWineHTMLCharacterData interface for CharacterDataPrototype.
mshtml: Add an internal IWineHTMLCharacterData interface and forward text node methods to it.
mshtml: Move htmlcomment.c contents into htmltextnode.c.
ntdll: Initial version of NtContinueEx().
ntdll/tests: Unify APC test functions.
msxml3/tests: Add indentation test.
kernelbase: Fix exit code for default ctrl-c handler.
kernel32: Add tests for checking the exit code of default ctrl-c handlers.
msi: Use mybool instead of bool as variable name.
dplayx: Support DPMESSAGEQUEUE_RECEIVE in GetMessageQueue().
dplayx/tests: Test client side of GetMessageQueue() separately.
dplayx: Add a few more locks (Coverity).
Release 9.22.
dplayx: Reimplement DP_LoadSP() using DP_GetConnections().
dplayx: Reimplement DirectPlayEnumerateAW() using DP_GetConnections().
dplayx: Use DP_GetRegValueW() to read SP GUID.
dplayx: Read connection name from descriptionW and descriptionA when available.
dplayx: Cache connections.
winex11: Remove now unnecessary WindowPosChanged re-entry guards.
winex11: Update the Win32 window state outside of event handlers.
user32/tests: Workaround a FVWM maximized window state bug.
winex11: Delay window config request when restoring from fullscreen/maximized.
winex11: Avoid sending WM_WINDOWPOSCHANGING when applying window manager config.
winex11: Generate GravityNotify events instead of ConfigureNotify.
winex11: Introduce a new get_window_state_updates helper.
wininet: Parse multi-token Connection strings for Keep-Alive.
urlmon/tests: Expect "Upgrade, Keep-Alive" connection string.
secur32/tests: Update the tests to expect HTTP/2 headers.
win32u: Map cursor pos to raw DPI before calling drivers SysCommand.
win32u: Check if parent is the desktop window in get_win_monitor_dpi.
gitlab: Wait for the fvwm process to start.
kernel32/tests: Check for the _SW_INVALID bit presence only.
wtsapi32: Handle WTSSessionInfo class in WTSQuerySessionInformationW().
server: Use an explicit struct instead of a typedef for rectangles.
server: Use an explicit struct instead of a typedef for register contexts.
server: Use an explicit struct instead of a typedef for object locators.
server: Use an explicit union instead of a typedef for UDP endpoints.
server: Use an explicit union instead of a typedef for TCP connections.
win32u: Reimplement list_window_children() using NtUserBuildHwndList().
server: Add a new request to find sibling windows by class name.
win32u: Don't use bool as member of a union type
This merge request has too many patches to be relayed via email.
Please visit the URL below to see the contents of the merge request.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7040
> …separate samplers are a d3d10-level feature, and any
d3d10-level GPU should be capable of supporting Vulkan
You’d think so, but NVIDIA never supported Vulkan on Fermi (their 2010 to 2012 uarch) or earlier GPUs.
I don’t think it’s worth expending effort to support those though. They require the 390 legacy driver branch, last updated 2 years ago so doesn’t work with current kernels or toolchains.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7018#note_90847
On Wed Dec 18 16:32:46 2024 +0000, Bernhard Übelacker wrote:
> Having PE-ASan in CI at the end would be great, but unfortunately my
> attempt involved building llvm-mingw/llvm-project with a few patches,
> which I attempted upstreaming for quite some time.
> Then building wine with it needs also a few patches, and running it
> involves currently an ugly mix of a non-ASan and an ASan build. Some
> more old/outdated details are
> [here](https://gitlab.winehq.org/wine/wine/-/merge_requests/6791#note_86908),
> for running just the executables below wine/programs.
> But running the tests locally produced quite a few unfinished
> [patches](https://gitlab.winehq.org/bernhardu/wine/-/commits/asan-pe_2024-12…
> where I try to get the more obvious and hopefully freeze-compatible ones
> in, while waiting on progress with llvm-project.
I see, thanks.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7041#note_90845
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53953
This is not what I would do. Bug 53953 amounts to "some users didn't install
32-bit headers, so we used the wrong ones, which are usually identical so it
doesn't matter". From the perspective of using the software as intended, this is
unilaterally user error.
From a more utilitarian perspective, this is a regression, and ensuring that
we're not using the *functionally* incorrect headers is a problem we have to
solve anyway. (Cf. GStreamer, which may be the only interesting case.)
On the other hand, it's a regression that's already been in two major versions.
Anyone building Wine on Fedora has surely already installed the right headers by
now.
I'm submitting this patch in an attempt to garner a decreed resolution to the
bug, one way or another, but again, this solution is not the one I would
prescribe if it were my choice.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7022
Commit f784374bcb5195c918754b1da6142a618a0da7dd introduced a cyclic reference between desktop and global hook through global hook table. So now if a hook was set and then not explicitly unset and the process was just terminated the hook, desktop, thread and some other related objects are leaked (which is displayed by wineserver on prefix shutdown in this case).
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7039
The preprocessor condition to cover pre-2013 VisualStudio around
C99 support actually also admitted current versions of GCC and
breaks GCC in C23 mode.
Address this by explicitly checking for GCC which, by definition,
then does not qualify as VisualStudio.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7040
At least Doom 64 calls ClipCursor() with identical parameters
repeatedly, which seems to cause a considerable overhead. Together with
high polling rate mouse input this causes the game to almost freeze
while the mouse is being moved. So if the clipping did not change we can
bail out early because it will not cause any observable difference
anyway.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46976
Signed-off-by: Jan Klötzke <jan(a)kloetzke.net>
--
v2: winex11.drv: optimize repeated ClipCursor calls
winex11.drv: create win32 clipping window only once
https://gitlab.winehq.org/wine/wine/-/merge_requests/825
(For after the code freeze.)
I think we want to have this DLL living in Wine for easier development, and probably dynamically load our custom Chromium fork from here. (just like MSHTML and wine-Gecko)
The code for that fork could then be created in its own repo.
--
v5: embeddedbrowserwebview: Create CreateWebViewEnvironmentWithOptionsInternal stub.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7032
(For after the code freeze.)
I think we want to have this DLL living in Wine for easier development, and probably dynamically load our custom Chromium fork from here. (just like MSHTML and wine-Gecko)
The code for that fork could then be created in its own repo.
--
v4: embeddedbrowserwebview: Create CreateWebViewEnvironmentWithOptionsInternal stub.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7032
(For after the code freeze.)
I think we want to have this DLL living in Wine for easier development, and probably dynamically load our custom Chromium fork from here. (just like MSHTML and wine-Gecko)
The code for that fork could then be created in its own repo.
--
v3: embeddedbrowserwebview: Create CreateWebViewEnvironmentWithOptionsInternal stub.
embeddedbrowserwebview: Add stub dll.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7032
I was experimenting with a Wine tree built with ASan enabled at PE side.
With it I tried to run the test suite, but every now and then I received a crash in wineserver.
Because the management structure for the ASan shadow makes each wine process using several gigabytes memory I had a taskmgr.exe running all the time.
I think this crash is a result of this taskmgr calling `NtQuerySystemInformation(SystemHandleInformation)` in conjunction with having many new processes created by the tests.
This patch leaves `enum_handles` early if the last member has still the value -1 from `alloc_handle_table`.
```
Program received signal SIGSEGV, Segmentation fault.
enum_handles (process=0x55ec0db97780, user=0x7ffce90cee30) at .../wine/wine/server/handle.c:846
846 if (!entry->ptr) continue;
1: x/i $pc
=> 0x55ec0b25ae6e <enum_handles+158>: cmpq $0x0,(%rdx)
(rr) bt
#0 enum_handles (process=0x55ec0db97780, user=0x7ffce90cee30) at .../wine/wine/server/handle.c:846
#1 0x000055ec0b268908 in enum_processes (cb=cb@entry=0x55ec0b25add0 <enum_handles>, user=user@entry=0x7ffce90cee30) at .../wine/wine/server/process.c:1112
#2 0x000055ec0b25c868 in req_get_system_handles (req=<optimized out>, reply=0x7ffce90cee90) at .../wine/wine/server/handle.c:875
#3 0x000055ec0b27d6eb in call_req_handler (thread=thread@entry=0x55ec0db62c10) at .../wine/wine/server/request.c:304
#4 0x000055ec0b27e62a in read_request (thread=thread@entry=0x55ec0db62c10) at .../wine/wine/server/request.c:338
#5 0x000055ec0b2896c0 in thread_poll_event (fd=<optimized out>, event=1) at .../wine/wine/server/thread.c:389
#6 0x000055ec0b2560b7 in fd_poll_event (event=<optimized out>, fd=<optimized out>) at .../wine/wine/server/fd.c:503
#7 main_loop_epoll () at .../wine/wine/server/fd.c:597
#8 0x000055ec0b25633e in main_loop () at .../wine/wine/server/fd.c:953
#9 0x000055ec0b246aa2 in main (argc=3, argv=0x7ffce90cf6c8) at .../wine/wine/server/main.c:238
(rr) print table->last
$38 = -1
(rr) print table->count
$39 = 32
```
--
v2: server: Avoid crash when handle table is allocated but not yet filled.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7035
I was experimenting with a Wine tree built with ASan enabled at PE side.
With it I tried to run the test suite, but every now and then I received a crash in wineserver.
Because the management structure for the ASan shadow makes each wine process using several gigabytes memory I had a taskmgr.exe running all the time.
I think this crash is a result of this taskmgr calling `NtQuerySystemInformation(SystemHandleInformation)` in conjunction with having many new processes created by the tests.
This patch leaves `enum_handles` early if the last member has still the value -1 from `alloc_handle_table`.
```
Program received signal SIGSEGV, Segmentation fault.
enum_handles (process=0x55ec0db97780, user=0x7ffce90cee30) at .../wine/wine/server/handle.c:846
846 if (!entry->ptr) continue;
1: x/i $pc
=> 0x55ec0b25ae6e <enum_handles+158>: cmpq $0x0,(%rdx)
(rr) bt
#0 enum_handles (process=0x55ec0db97780, user=0x7ffce90cee30) at .../wine/wine/server/handle.c:846
#1 0x000055ec0b268908 in enum_processes (cb=cb@entry=0x55ec0b25add0 <enum_handles>, user=user@entry=0x7ffce90cee30) at .../wine/wine/server/process.c:1112
#2 0x000055ec0b25c868 in req_get_system_handles (req=<optimized out>, reply=0x7ffce90cee90) at .../wine/wine/server/handle.c:875
#3 0x000055ec0b27d6eb in call_req_handler (thread=thread@entry=0x55ec0db62c10) at .../wine/wine/server/request.c:304
#4 0x000055ec0b27e62a in read_request (thread=thread@entry=0x55ec0db62c10) at .../wine/wine/server/request.c:338
#5 0x000055ec0b2896c0 in thread_poll_event (fd=<optimized out>, event=1) at .../wine/wine/server/thread.c:389
#6 0x000055ec0b2560b7 in fd_poll_event (event=<optimized out>, fd=<optimized out>) at .../wine/wine/server/fd.c:503
#7 main_loop_epoll () at .../wine/wine/server/fd.c:597
#8 0x000055ec0b25633e in main_loop () at .../wine/wine/server/fd.c:953
#9 0x000055ec0b246aa2 in main (argc=3, argv=0x7ffce90cf6c8) at .../wine/wine/server/main.c:238
(rr) print table->last
$38 = -1
(rr) print table->count
$39 = 32
```
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7035
Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com>
--
v2: windowscodecs/tests: Check persist options after Load().
windowscodecs/tests: Add loading tests for the writers.
windowscodecs/tests: Add some tests for metadata stream objects handling.
windowscodecs/tests: Add some tests for CreateMetadataWriter().
windowscodecs/tests: Add some tests for CreateMetadataWriterFromReader().
windowscodecs/tests: Added some tests for Exif and Gps IFDs embedded in App1 blob.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7033