The Wine development release 9.10 is now available.
What's new in this release:
- Bundled vkd3d upgraded to version 1.12.
- DPI Awareness support improvements.
- C++ RTTI support on ARM platforms.
- More obsolete features removed in WineD3D.
- Various bug fixes.
The source is available at <https://dl.winehq.org/wine/source/9.x/wine-9.10.tar.xz>
Binary packages for various distributions will be available
from <https://www.winehq.org/download>
You will find documentation on <https://www.winehq.org/documentation>
Wine is available thanks to the work of many people.
See the file [AUTHORS][1] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/raw/wine-9.10/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 9.10 (total 18):
- #23434 Race management software hangs & jumps up to 100% processor load
- #34708 Silent Hill 4: The Room crashes after first videoscene when trying to go to the door.
- #45493 SRPG Studio games need proper DISPATCH_PROPERTYPUTREF implementation
- #46039 Paint.NET 4.1 (.NET 4.7 app) installer tries to run MS .NET Framework 4.7 installer (Wine-Mono only advertises as .NET 4.5)
- #46787 Notepad++ rather slow (GetLocaleInfoEx)
- #50196 can not copy words between wine apps and ubuntu apps
- #50789 Multiple .NET applications crash with unimplemented 'System.Security.Principal.WindowsIdentity.get_Owner' using Wine-Mono (Affinity Photo 1.9.1, Pivot Animator 4.2)
- #52691 FL Studio 20.9.1 Freezes on start-up
- #54992 EA app launcher does not render correctly
- #56548 reMarkable crashes on start
- #56582 vb3 combobox regression: single click scrolls twice
- #56602 DualShock 4 controller behaves incorrectly on Darwin with hidraw enabled
- #56666 BExAnalyzer from SAP 7.30 does not work correctly
- #56674 Multiple games fail to launch (Far Cry 3, Horizon Zero Dawn CE, Metro Exodus)
- #56718 Compilation fails on Ubuntu 20.04 with bison 3.5.1
- #56724 New chromium versions don't start under wine anymore
- #56730 Access violation in riched20.dll when running EditPad
- #56736 App packager from Windows SDK (MakeAppx.exe) 'pack' command crashes on unimplemented function ntdll.dll.RtlLookupElementGenericTableAvl
### Changes since 9.9:
```
Aida Jonikienė (2):
dxdiagn: Add bIsD3DDebugRuntime property.
dxdiagn: Add AGP properties.
Alexandre Julliard (52):
msvcrt: Add helpers to abstract RVA accesses to RTTI data.
msvcrt: Unify __RTtypeid implementation.
msvcrt: Unify __RTDynamicCast implementation.
msvcrt: Unify _CxxThrowException implementation.
msvcrt: Unify _is_exception_typeof implementation.
msvcrt: Unify __ExceptionPtrCopyException implementation.
msvcrt: Unify exception_ptr_from_record implementation.
msvcrt: Unify call_copy_ctor/call_dtor implementations.
msvcp: Unify __ExceptionPtrCopyException implementation.
msvcp: Unify __ExceptionPtrCurrentException implementation.
msvcp: Unify call_copy_ctor/call_dtor implementations.
msvcrt: Use RVAs in rtti and exception data on all platforms except i386.
msvcp: Use RVAs in rtti and exception data on all platforms except i386.
msvcrt/tests: Use function pointers to bypass builtin malloc/realloc.
msvcp/tests: Fix mangled names on ARM.
winecrt0: Initialize the Unix call dispatcher on first use.
ntdll: Make __wine_unix_call() an inline function.
wbemprox: Avoid unused function warning.
kernelbase: Fix the name of the default system locale.
wbemprox: Don't reference yysymbol_name on older bisons.
conhost: Fix a printf format warning.
winegcc: Don't print a potentially reallocated pointer.
adsldpc: Add correct C++ mangled names for all platforms.
dxtrans: Add correct C++ mangled names for all platforms.
msmpeg2vdec: Add correct C++ mangled names for all platforms.
vssapi: Add correct C++ mangled names for all platforms.
msvcrt: Fix bad_cast_copy_ctor spec entry on ARM.
msvcrt: Export all _ConcRT functions also on ARM.
msvcp120_app: Fix a typo in a C++ mangled name.
msvcp: Replace some stubs by exported functions that already exist for other platforms.
msvcp: Export the thiscall version of ios_base_Tidy.
msvcp140: Sort entry points by function instead of platform.
msvcp: Only export thiscall functions on i386.
msvcp: Only export stubs of thiscall functions on i386.
msvcrt: Only export thiscall functions on i386.
msvcrt: Only export stubs of thiscall functions on i386.
msvcrt: Add missing C++ mangled names for ARM.
msvcirt: Add missing C++ mangled names for ARM.
msvcp60: Add missing C++ mangled names for ARM.
msvcp70: Add missing C++ mangled names for ARM.
msvcp71: Add missing C++ mangled names for ARM.
msvcp80: Add missing C++ mangled names for ARM.
msvcp90: Add missing C++ mangled names for ARM.
msvcp100: Add missing C++ mangled names for ARM.
winedump: Print exported function names in the exception data.
winedump: Print the export or import name of exception handlers.
winedump: Dump exception data for known exception handlers.
vkd3d: Import upstream release 1.12.
msvcrt: Move common exception handling types to the header.
msvcrt: Share the find_caught_type() helper between platforms.
msvcrt: Share the copy_exception() helper between platforms.
msvcrt: Share a helper to find a catch block handler.
Alexandros Frantzis (15):
opengl32: Remove the wglDescribePixelFormat driver entry point.
win32u: Emit number characters for numpad virtual keys.
win32u: Allow drivers to send only the scan code for keyboard events.
win32u: Store the full KBD vkey information in kbd_tables_init_vsc2vk.
server: Send numpad virtual keys if NumLock is active.
user32/tests: Add tests for SendInput with numpad scancodes.
winewayland.drv: Populate vkey to wchar entry for VK_DECIMAL.
server: Fix handling of KEYEVENTF_UNICODE inputs with a non-zero vkey.
user32/tests: Add more test for unicode input with vkey.
user32/tests: Add tests for raw keyboard messages.
server: Use right-left modifier vkeys for hooks.
server: Apply modifier vkey transformations regardless of unicode flag.
server: Don't send raw input events for unicode inputs.
user32/tests: Check async key state in raw nolegacy tests.
server: Set VK_PACKET async state in raw input legacy mode.
Alistair Leslie-Hughes (10):
include: Complete __wine_uuidof for C++.
include: Add C++ support for IUnknown.
odbc32: Correct SQLSetConnectOptionW length parameter type.
include: Added sqlucode.h to sql.h.
include: Correct ListView_GetItemIndexRect macro.
include: Add IFACEMETHOD macros.
include: Add LOGFONTA/W typedef in shtypes.idl.
include: Add IPreviewHandler* interfaces.
include: Correct IRowsetNotify HROW parameter type.
include: Add missing TreeView_* defines.
Anton Baskanov (4):
quartz/tests: Use unaligned width in AVIDec tests to expose incorrect stride calculation.
quartz: Get output format from source, not sink in AVIDec.
quartz: Use the correct stride when calculating image size in AVIDec.
quartz: Hold the streaming lock while calling ICDecompressEnd.
Brendan Shanks (1):
ntdll: Don't warn on macOS and FreeBSD when xattr doesn't exist.
Connor McAdams (1):
uiautomationcore: NULL initialize SAFEARRAY variable passed to IRawElementProviderFragment::GetRuntimeId().
Daniel Lehman (1):
odbc32: Allow null handle for SQLSetEnvAttr.
Danyil Blyschak (3):
win32u: Remove external fonts from the registry before writing to it.
shcore: Check optional pointer in filestream_CopyTo() before writing to it.
wineps.drv: Only merge dmDefaultSource member of devmodes when a slot is found.
Davide Beatrici (6):
winealsa: Return minimum period in get_device_period if requested.
mmdevapi: Adjust timing in AudioClient_Initialize.
winealsa: Remove superfluous timing adjustment.
winecoreaudio: Remove superfluous timing adjustment.
wineoss: Remove superfluous timing adjustment.
winepulse: Remove superfluous timing adjustment.
Dmitry Timoshkov (2):
comctl32/tests: Create a fully updated ListView window.
user32/tests: Add a test to show that SendMessage(LB_SETCOUNT) adds a scrollbar.
Elizabeth Figura (21):
wined3d: Remove the no longer used STATE_SAMPLER.
wined3d: Remove the no longer used STATE_POINTSPRITECOORDORIGIN.
wined3d: Remove the FFP blitter.
wined3d: Remove some obsolete state invalidations.
wined3d: Remove the no longer needed fragment_caps.proj_control flag.
d3d9/tests: Remove leftover debugging code.
wined3d: Remove the no longer needed fragment_caps.srgb_texture flag.
wined3d: Remove the no longer needed fragment_caps.color_key flag.
wined3d: Remove the no longer needed wined3d_vertex_caps.xyzrhw flag.
wined3d: Remove the no longer needed wined3d_vertex_caps.ffp_generic_attributes flag.
wined3d: Remove the no longer used buffer conversion code.
wined3d: Remove the no longer used wined3d_context.fog_coord field.
wined3d: Remove the no longer used wined3d_context_gl.untracked_material_count field.
wined3d: Remove the no longer used wined3d_context.use_immediate_mode_draw field.
wined3d: Remove the no longer used WINED3D_SHADER_CAP_VS_CLIPPING flag.
wined3d: Remove the no longer used wined3d_context.namedArraysLoaded field.
wined3d: Remove the no longer used WINED3D_SHADER_CAP_SRGB_WRITE flag.
wined3d: Move the GL_EXTCALL() definition to wined3d_gl.h.
wined3d: Remove some no longer used wined3d_context fields.
wined3d: Remove no longer used "exponent" and "cutoff" precomputed fields.
wined3d: Remove the no longer used ignore_textype argument of wined3d_ffp_get_fs_settings().
Eric Pouech (4):
conhost: Fix display of font preview in 64-bit mode.
winedump: Dump correct handle information for minidump.
winedump: Don't dump twice.
winedump: Dump Memory64List streams in minidumps.
Esme Povirk (14):
gdiplus: Replace HDC check in GdipFlush.
gdiplus: Bracket HDC use in GdipMeasureCharacterRanges.
gdiplus: Bracket HDC use in GdipMeasureString.
gdiplus: Bracket HDC use in GdipDrawString.
gdiplus: Bracket HDC use in GDI32_GdipDrawDriverString.
gitlab: Add unzip to build image.
gdiplus: Replace HDC use in draw_driver_string.
gdiplus: Bracket HDC use in get_path_hrgn.
gdiplus: Bracket HDC use in gdi_transform_acquire/release.
gdiplus: Do not store HDC on HWND Graphics objects.
gdiplus: Don't call GetDeviceCaps for NULL dc.
user32/tests: Rename winevent_hook_todo to msg_todo.
user32/tests: Mark some Wine-todo messages.
win32u: Implement EVENT_SYSTEM_FOREGROUND.
Fabian Maurer (5):
oleaut32: Add test for invoking a dispatch get-only property with DISPATCH_PROPERTYPUT.
oleaut32: Handle cases where invoking a get-only property with INVOKE_PROPERTYPUT returns DISP_E_BADPARAMCOUNT.
userenv: Add CreateAppContainerProfile stub.
riched20: In para_set_fmt protect against out of bound cTabStop values.
user32/tests: Fix ok_sequence succeeding in todo block not giving a test failure.
Francis De Brabandere (1):
vbscript/tests: Fix error clear call.
Ilia Docin (1):
sane.ds: Add missing color modes setting support.
Jacek Caban (30):
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlobject.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlscript.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlselect.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlstorage.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlstyle.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlstyleelem.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlstylesheet.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmltable.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmltextarea.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmltextnode.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in mutation.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in omnavigator.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in range.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in selection.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in svg.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in xmlhttprequest.c.
ntdll: Use assembly wrapper for unixlib calls on ARM64EC.
d3d9/tests: Use GNU assembly syntax on clang x86_64 MSVC target.
d3d8/tests: Use GNU assembly syntax on clang x86_64 MSVC target.
d3d9: Use GNU assembly syntax on clang x86_64 MSVC target.
d3d8: Use GNU assembly syntax on clang x86_64 MSVC target.
ddraw: Use GNU assembly syntax on clang x86_64 MSVC target.
gitlab: Use --enable-werror for Clang builds.
mshtml: Return success in IHTMLWindow2::get_closed stub.
mshtml/tests: Add more custom properties tests.
mshtml: Factor out alloc_dynamic_prop.
mshtml: Use DispatchEx vtbl for elements as window property lookups.
mshtml: Use DispatchEx vtbl for all window properties.
mshtml: Use macro for window object IDispatch functions implementation.
mshtml: Move IDispatchEx forwarding implementation to outer window object.
Krzysztof Bogacki (7):
win32u: Use separate variable for inner loop.
win32u: Log Vulkan GPU's PCI IDs when matching against them.
win32u: Log Vulkan UUIDs when adding GPUs.
win32u: Remove unused variable from add_vulkan_only_gpus.
win32u: Use common name for fake GPUs and prefer Vulkan name over it.
win32u: Prefer Vulkan PCI IDs over empty ones.
win32u: Prefer Vulkan UUIDs over empty ones.
Marcus Meissner (1):
shell32/tests: Fixed sizeof to GetModuleFileName.
Myah Caron (1):
msvcrt: Fix _kbhit ignoring the last event.
Nikolay Sivov (3):
gdi32/text: Make GetTextExtentExPointW() return sizes consistent with ExtTextOutW().
d3dcompiler/fx: Write empty buffers for compiler versions 33-39.
d3dcompiler: Enable D3DCOMPILE_EFFECT_CHILD_EFFECT option.
Paul Gofman (4):
wine.inf: Add InstallationType field to CurrentVersion.
wine.inf: Add Explorer\Advanced registry key.
mf/tests: Add a test for MFEnumDeviceSources().
mf: Implement audio capture device enumeration in MFEnumDeviceSources().
Piotr Caban (1):
ntdll: Fix UNC path handling in alloc_module.
Rémi Bernon (57):
win32u: Fix default_update_display_devices return type to NTSTATUS.
win32u: Load the graphics driver vulkan functions lazily.
win32u: Keep a list of vulkan GPUS in the device manager context.
win32u: Match driver GPUs with vulkan GPUS from their ids, or index.
win32u: Query GPU memory from vulkan physical device.
win32u: Enumerate offscreen vulkan devices as GPU devices.
dinput: Dynamically allocate the internal device / event arrays.
server: Pass the adjusted vkey to send_hook_ll_message.
winegstreamer: Use DMO_MEDIA_TYPE in the WMA decoder.
winegstreamer: Implement WMA DMO Get(Input|Output)CurrentType.
win32u/tests: Introduce a new run_in_process helper.
win32u/tests: Add NtUser(Get|Set)ProcessDpiAwarenessContext tests.
win32u: Fix NtUserSetProcessDpiAwarenessContext.
user32/tests: Add some SetProcessDpiAwarenessContext tests.
user32/tests: Add more SetThreadDpiAwarenessContext tests.
user32: Fix SetProcessDpiAwarenessContext.
winegstreamer: Use a GstCaps for wg_parser current_format.
winegstreamer: Use a GstCaps instead of preferred_format.
winegstreamer: Rename get_preferred_format to get_current_format.
winegstreamer: Use a GstCaps for wg_parser_stream codec format.
win32u: Get rid of the drivers force_display_devices_refresh flag.
win32u: Update the display device cache after loading the driver.
win32u: Get rid of the UpdateDisplayDevices force parameter.
user32: Test and fix IsValidDpiAwarenessContext.
user32: Test and implement GetDpiFromDpiAwarenessContext.
user32/tests: Add more AreDpiAwarenessContextsEqual tests.
user32/tests: Add more GetAwarenessFromDpiAwarenessContext tests.
win32u: Use NtUserCallOnParam for SetThreadDpiAwarenessContext.
win32u: Return UINT from NtUserGetWindowDpiAwarenessContext.
win32u: Use NtGdiDdDDICreateDCFromMemory for gdi16 DIBDRV.
wineandroid: Fix NtUserSendHardwareInput parameter order.
wineandroid: Use DWORD for pixel pointers.
win32u: Flush window surface when it is fully unlocked.
win32u: Remove surface recursive locking requirement.
win32u: Stop using a recursive mutex for the offscreen surface.
wineandroid: Stop using a recursive mutex for the window surfaces.
winemac: Stop using a recursive mutex for the window surfaces.
winewayland: Stop using a recursive mutex for the window surfaces.
winex11: Stop using a recursive mutex for the window surfaces.
win32u: Get the thread DPI context instead of the awareness.
win32u: Pass the DPI awareness context in win_proc_params.
win32u: Fix SetThreadDpiAwarenessContext.
win32u: Only keep DPI awareness context with window objects.
win32u: Introduce a new window_surface_init helper.
win32u: Move the window surface mutex to the surface header.
win32u: Use helpers to lock/unlock window surfaces.
win32u: Move window surface bounds to the window_surface base struct.
winemac: Get rid of unnecessary blit_data / drawn surface members.
wineandroid: Hold the lock while reading window surface bits.
win32u: Use a helper to flush window surface, factor locking and bounds reset.
win32u: Initialize window surfaces with a hwnd.
win32u: Split update_surface_region into get_window_region helper.
server: Merge get_surface_region / get_window_region requests together.
win32u: Intersect the clipping region with the window shape region.
server: Update window surface regions when the window is shaped.
wineandroid: Remove now unnecessary set_surface_region calls.
win32u: Use a helper to set the window surface clipping, within the lock.
Vijay Kiran Kamuju (1):
ntdll: Add stub RtlLookupGenericTableAvl function.
Yuxuan Shui (2):
shell32: Make sure array passed to PathResolve is big enough.
shell32: Fix ShellExecute for non-filespec paths.
Zhiyi Zhang (4):
comctl32/tests: Add WM_SETFONT tests.
comctl32/syslink: Don't delete font when destroying the control.
comctl32/tooltips: Don't duplicate font when handling WM_SETFONT.
comctl32/ipaddress: Delete font when destroying the control.
```
The vkd3d team is proud to announce that release 1.12 of vkd3d, the Direct3D
to Vulkan translation library, is now available.
This release contains improvements that are listed in the release notes below.
The main highlights are:
- The HLSL compiler can directly output SPIR-V and Direct3D shader assembly.
- Improved support for shader model 1-3 profiles in the HLSL compiler.
- Miscellaneous bug fixes and performance improvements.
The source is available from the following location:
<https://dl.winehq.org/vkd3d/source/vkd3d-1.12.tar.xz>
The current source can also be pulled directly from the git repository:
<https://gitlab.winehq.org/wine/vkd3d.git>
Vkd3d is available thanks to the work of multiple people. See the file AUTHORS
for the complete list.
# What's new in vkd3d 1.12
### libvkd3d
- When the VK_EXT_fragment_shader_interlock extension is available, libvkd3d
supports rasteriser-ordered views.
- Compute pipeline state objects can be created from compute shaders with
embedded root signatures.
- When supported by the underlying Vulkan implementation, libvkd3d supports
the DXGI_FORMAT_B5G6R5_UNORM, DXGI_FORMAT_B5G5R5A1_UNORM, and
DXGI_FORMAT_B4G4R4A4_UNORM formats.
- The ID3D12ShaderCacheSession interface is supported.
- The ID3D12Device9 interface is supported.
- The CreateCommittedResource2(), CreatePlacedResource1(),
GetCopyableFootprints1(), and GetResourceAllocationInfo2() methods of the
ID3D12Device8 interface are implemented.
- Several new feature queries are supported:
- D3D12_FEATURE_D3D12_OPTIONS14
- D3D12_FEATURE_D3D12_OPTIONS15
- D3D12_FEATURE_D3D12_OPTIONS16
- D3D12_FEATURE_D3D12_OPTIONS17
- D3D12_FEATURE_D3D12_OPTIONS18
### libvkd3d-shader
- The experimental DXIL source type supports the majority of Direct3D shader
model 6.0 instructions and features. Note that this is currently still an
unsupported feature, enabled by building vkd3d with the
‘-DVKD3D_SHADER_UNSUPPORTED_DXIL’ preprocessor option. No API or ABI
stability guarantees are provided for experimental features.
- New features for the HLSL source type:
- Support for compiling directly to Direct3D shader assembly and SPIR-V
target types. This is primarily a convenience feature, as targeting
these could previously be achieved by going through either the ‘Legacy
Direct3D byte-code’ or ‘Tokenized Program Format’ formats as
intermediates.
- Improved support for shader model 1-3 profiles. In particular:
- The ternary, comparison, and logical operators are now supported for
these profiles.
- Support for integer and Boolean types has been improved.
- Shader constants are allocated in an order compatible with the
Microsoft implementation.
- More complex array size expressions. For example, matrix and vector
swizzles are allowed, as well as (constant) array dereferences.
- The following intrinsic functions are supported:
- cosh()
- determinant()
- refract()
- sinh()
- tanh()
- Reflection data for ‘Tokenized Program Format’ targets more accurately
reflects the source shader.
- Constant folding of expressions like ‘x + 0’ and ‘x * 1’.
- Support for the ‘single’ qualifier on constant buffer declarations.
- Parser support for annotations on constant buffer declarations.
- Parser support for effect state objects.
- When the SPV_EXT_fragment_shader_interlock extension is supported, SPIR-V
targets support rasteriser-ordered views.
- New interfaces:
- The VKD3D_SHADER_PARSE_DXBC_IGNORE_CHECKSUM flag indicates that
vkd3d_shader_parse_dxbc() should skip validating the checksum of the
DXBC blob. This allows otherwise valid blobs with a missing or invalid
checksum to be parsed.
- The VKD3D_SHADER_SPIRV_ENVIRONMENT_VULKAN_1_1 enumeration value
specifies the Vulkan 1.1 environment for SPIR-V targets. Most notably,
the Vulkan 1.1 environment implies support for SPIR-V 1.3, which is a
requirement for supporting Direct3D shader model 6 wave operations on
SPIR-V targets.
- The VKD3D_SHADER_SPIRV_EXTENSION_EXT_FRAGMENT_SHADER_INTERLOCK
enumeration value indicates support for the
SPV_EXT_fragment_shader_interlock extension in the SPIR-V target
environment.
- The VKD3D_SHADER_COMPILE_OPTION_FEATURE_WAVE_OPS flag indicates support
for Direct3D shader model 6 wave operations in the SPIR-V target
environment.
- The VKD3D_SHADER_COMPILE_OPTION_FORMATTING_IO_SIGNATURES flag indicates
that vkd3d_shader_compile() should include information about input,
output, and patch constant shader signatures when targeting Direct3D
shader assembly. Note that this is a libvkd3d-shader extension, and
potentially makes the output incompatible with other implementations.
- The VKD3D_SHADER_COMPILE_OPTION_CHILD_EFFECT compile option specifies
whether libvkd3d-shader should produce child effects for ‘fx_4_0’ and
‘fx_4_1’ HLSL target profiles.
- The VKD3D_SHADER_COMPILE_OPTION_INCLUDE_EMPTY_BUFFERS_IN_EFFECTS compile
option specifies whether empty constant buffer descriptions should be
included in the output for ‘fx_4_0’ and ‘fx_4_1’ HLSL target profiles.
- The VKD3D_SHADER_COMPILE_OPTION_WARN_IMPLICIT_TRUNCATION compile option
specifies whether the HLSL compiler should emit warnings for vector and
matrix truncation in implicit type conversions.
### libvkd3d-utils
- D3D12CreateDeviceVKD3D() and D3D12CreateDevice() no longer require the
VK_KHR_surface and VK_KHR_swapchain extensions to be available. This
allows them to be used in environments with a windowing system, for
example for off-screen rendering and compute tasks.
- The GetConstantBufferByIndex() and GetResourceBindingDesc() methods of the
ID3D12ShaderReflection interface are implemented.
- The GetVariableByIndex() method of the
ID3D12ShaderReflectionConstantBuffer interface is implemented.
- The GetMemberTypeByIndex() method of the ID3D12ShaderReflectionType
interface is implemented.
- The GetType() method of the ID3D12ShaderReflectionVariable interface is
implemented.
### vkd3d-compiler
- The ‘+signatures’ flag for the ‘--formatting’ option can be used to
specify that vkd3d-compiler should include information about input,
output, and patch constant shader signatures when outputting Direct3D
shader assembly. Note that this is a vkd3d-compiler extension, and
potentially makes the output incompatible with other implementations.
- The ‘--child-effect’ option can be used to specify that vkd3d-compiler
should produce child effects for ‘fx_4_0’ and ‘fx_4_1’ HLSL target
profiles.
- The ‘--fx-include-empty-buffers’ option can be used to specify that
vkd3d-compiler should include empty constant buffer descriptions in the
output for ‘fx_4_0’ and ‘fx_4_1’ HLSL target profiles.
### vkd3d-dxbc
- The ‘--ignore-checksum’ option can be used to specify that vkd3d-dxbc
should skip validating the checksum of the DXBC input blob. This allows
vkd3d-dxbc to operate on otherwise valid blobs with missing or invalid
checksums.
- The ‘--emit’ option can be used to indicate that vkd3d-dxbc should output
a new DXBC blob.
- The ‘--extract’ option can be used to specify a section to extract out of
the input blob. For example, ‘vkd3d-dxbc -x t:PRIV blob.dxbc > priv.bin’
would extract the private data section of ‘blob.dxbc’ to ‘priv.bin’, and
‘vkd3d-dxbc -x t:RTS0 blob.dxbc > root_signature.bin’ would extract the
root signature to ‘root_signature.bin’.
- The ‘--output’ option can be used to specify where vkd3d-dxbc should write
its output for the ‘--emit’ and ‘--extract’ options.
### Changes since vkd3d 1.11:
```
Alexandre Julliard (1):
vkd3d-shader: Avoid non-constant initializer.
Conor McCarthy (169):
tests/shader-runner: Add raw UAV tests.
vkd3d-shader/spirv: Always use a 64-bit write mask for IMMCONST64 src params.
vkd3d: Add ID3D12Device8 interface stubs.
tests/d3d12: Add tests for GetResourceAllocationInfo2().
tests/d3d12: Add tests for CreateCommittedResource2().
tests/d3d12: Add tests for CreatePlacedResource1().
tests/d3d12: Add tests for GetCopyableFootprints1().
vkd3d: Implement GetResourceAllocationInfo2().
vkd3d: Implement CreateCommittedResource2().
vkd3d: Implement CreatePlacedResource1().
vkd3d: Implement GetCopyableFootprints1().
tests/shader-runner: Add a test for FCMP_ORD (is ordered).
vkd3d-shader/dxil: Support FCMP_ORD and FCMP_UNO for CMP2.
vkd3d-shader/spirv: Handle the ORD and UNO instructions.
tests/shader-runner: Add sampler comparison tests.
tests/shader-runner: Add a Gather test with non-constant offset.
vkd3d-shader/dxil: Implement DX intrinsic TextureGather.
vkd3d-shader/dxil: Implement DX intrinsic TextureGatherCmp.
tests/shader-runner: Add tests for minimum-precision constants.
vkd3d-shader/spirv: Introduce a data_type_is_floating_point() helper function.
vkd3d-shader/spirv: Introduce HALF and UINT16 types for minimum precision.
vkd3d-shader/dxil: Support 16-bit types.
vkd3d-shader/spirv: Emit an error if COUNTBITS has a 64-bit source.
vkd3d-shader/spirv: Emit an error if a FIRSTBIT instruction has a 64-bit source.
tests/hlsl: Add tests for countbits() and firstbit{high|low}().
vkd3d-shader/spirv: Support zero-initialisation for workgroup memory.
vkd3d-shader/dxil: Implement raw groupshared address space global variables.
vkd3d-shader/dxil: Implement structured groupshared address space global variables.
vkd3d-shader/spirv: Emit a trace message if TGSM alignment is ignored.
vkd3d-shader/dxil: Implement DX instruction Barrier.
tests/hlsl: Add UAV counter tests.
vkd3d-shader/dxil: Implement DX intrinsic BufferUpdateCounter.
tests/hlsl: Add tests for mad() and fma().
vkd3d-shader/spirv: Use dst register data type in spirv_compiler_emit_imad().
vkd3d-shader/dxil: Implement DX intrinsics FMa, FMad, IMad and UMad.
vkd3d-shader/dxil: Implement DX intrinsic FAbs.
vkd3d-shader/dxil: Implement DX intrinsic Saturate.
vkd3d-shader/spirv: Do not assert if a TGSM load dst register is not UINT.
vkd3d-shader/spirv: Do not assert if a TGSM store data register is not UINT.
vkd3d-shader/spirv: Support 64-bit register info component type in spirv_compiler_emit_load_reg().
vkd3d-shader/dxil: Emit an error if a constant code is unhandled.
tests/shader-runner: Add TGSM tests.
vkd3d-shader/dxil: Implement DX instructions ThreadId, GroupId, ThreadIdInGroup and FlattenedThreadIdInGroup.
vkd3d-shader/dxil: Implement the DXIL ATOMICRMW instruction.
vkd3d-shader/spirv: Emit a warning if the atomic instruction volatile flag is unhandled.
vkd3d-shader/spirv: Handle the sequentially consistent ordering flag for atomic instructions.
vkd3d-shader/spirv: Support bool source in spirv_compiler_emit_discard().
vkd3d-shader/dxil: Implement DX intrinsic Discard.
tests/hlsl: Add tests for asdouble().
vkd3d-shader/dxil: Implement DX intrinsic MakeDouble.
vkd3d-shader/dxil: Implement DX intrinsics Dot2, Dot3 and Dot4.
vkd3d-shader/ir: Materialise phis to temps in the incoming blocks.
vkd3d-shader/spirv: Emit a uint result for RESINFO_UINT if the dst register is SSA.
vkd3d-shader/spirv: Handle uint2 to double bitcast in spirv_compiler_emit_mov().
vkd3d-shader/ir: Convert SSAs to temps only if the block of origin does not dominate all uses.
vkd3d-shader/ir: Materialise SSAs to temps before lowering switch instructions.
vkd3d-shader/dxil: Support constexpr GEP.
vkd3d-shader/spirv: Bitcast if necessary in spirv_compiler_emit_store_dst_components().
vkd3d-shader/spirv: Ensure the data register is UINT in spirv_compiler_emit_store_tgsm().
tests/hlsl: Add tests for CalculateLevelOfDetail().
vkd3d-shader/dxil: Implement DX intrinsic CalculateLOD.
tests/d3d12: Test resource flags for multisampled resources.
vkd3d: Validate presence of flag ALLOW_RENDER_TARGET or ALLOW_DEPTH_STENCIL for multisampled resources.
vkd3d: Validate that a resource with initial state RENDER_TARGET is a render target.
vkd3d-shader/ir: Implement MAD in two operations if flagged as precise.
tests/hlsl: Supply data for all mip levels in calculate-lod.shader_test.
tests/hlsl: Add a tessellation test.
vkd3d-shader/dxil: Load domain shader properties.
vkd3d-shader/dxil: Load hull shader properties.
vkd3d-shader/dxil: Implement DX intrinsic PrimitiveID.
vkd3d-shader/ir: Validate tessellation declarations.
tests/hlsl: Add tests for GetSamplePosition() and GetSampleCount().
vkd3d-shader/dxil: Implement DX intrinsics Texture2DMSGetSamplePosition and RenderTargetGetSamplePosition.
vkd3d-shader/dxil: Implement DX intrinsic RenderTargetGetSampleCount.
tests/hlsl: Add an InterlockedCompareExchange() TGSM test.
vkd3d-shader/dxil: Implement the DXIL CMPXCHG instruction.
vkd3d-shader/spirv: Emit a compiler warning if an atomic op is flagged volatile.
vkd3d-shader: Introduce SPIRV_ENVIRONMENT_VULKAN_1_1.
vkd3d: Use Vulkan 1.1 if available.
vkd3d-shader: Introduce a wave ops feature flag.
tests: Add UNORM formats B5G6R5, B5G5R5A1 and B4G4R4A4 to the UAV image clear tests.
vkd3d: Support DXGI_FORMAT_B5G6R5_UNORM.
vkd3d: Support DXGI_FORMAT_B5G5R5A1_UNORM.
vkd3d: Support DXGI_FORMAT_B4G4R4A4_UNORM.
tests/hlsl: Add tests for SV_Depth.
tests/hlsl: Add tests for SV_DepthLessEqual and SV_DepthGreaterEqual.
vkd3d-shader/dxil: Support SV_Depth, SV_DepthGreaterEqual and SV_DepthLessEqual.
tests/hlsl: Add wave op tests.
vkd3d-shader/dxil: Support patch constant functions and signatures.
vkd3d-shader/dxil: Implement DX intrinsics LoadOutputControlPoint and LoadPatchConstant.
vkd3d-shader/dxil: Implement DX intrinsic StorePatchConstant.
vkd3d-shader/dxil: Implement DX intrinsic DomainLocation.
vkd3d-shader/dxil: Implement DX intrinsic OutputControlPointID.
tests/hlsl: Add tests for min() and integer max().
tests/hlsl: Add a test for a structured UAV scalar store.
tests/hlsl: Add a test for UAV InterlockedExchange().
tests/hlsl: Add tests for texture UAV atomics.
tests/hlsl: Add tests for texture UAV signed atomics.
vkd3d-shader/ir: Accept undefined PHI incomings as valid.
vkd3d-shader/ir: Always check for undominated SSA use in register relative addresses.
vkd3d-shader/dxil: Emit an error if a LOAD instruction uses a forward-referenced pointer.
vkd3d-shader/dxil: Emit an error if a STORE instruction uses a forward-referenced pointer.
vkd3d-shader/dxil: Emit an error if a ATOMICRMW instruction uses a forward-referenced pointer.
vkd3d-shader/dxil: Emit an error if a CMPXCHG instruction uses a forward-referenced pointer.
tests/hlsl: Add a test for constexpr pointer cast.
vkd3d-shader/dxil: Handle constexpr pointer cast.
tests/hlsl: Add an SV_InstanceId test.
vkd3d-shader/dxil: Handle SV_InstanceId.
vkd3d-shader/dxil: Handle SV_PrimitiveId.
tests/hlsl: Add SV_Coverage tests.
vkd3d-shader/dxil: Implement DX intrinsic Coverage.
vkd3d-shader/dxil: Implement DX intrinsics WaveGetLaneCount and WaveGetLaneIndex.
vkd3d-shader/spirv: Handle the WAVELANECOUNT register.
vkd3d: Initialise wave ops feature options.
tests/shader-runner: Skip shader model 6.0 tests if the device does not support them.
tests/shader-runner: Add a 'require' directive for wave ops.
vkd3d-shader/spirv: Handle the WAVELANEINDEX register.
vkd3d-shader/dxil: Implement DX intrinsic WaveActiveAllEqual.
vkd3d-shader/spirv: Handle the WAVE_ACTIVE_ALL_EQUAL instruction.
vkd3d-shader/dxil: Implement DX intrinsic WaveAllTrue.
vkd3d-shader/spirv: Handle the WAVE_ALL_TRUE instruction.
vkd3d-shader/dxil: Implement DX intrinsic WaveAnyTrue.
vkd3d-shader/spirv: Handle the WAVE_ANY_TRUE instruction.
vkd3d-shader/dxil: Implement DX intrinsic WaveActiveBallot.
vkd3d-shader/spirv: Implement the WAVE_ACTIVE_BALLOT instruction.
vkd3d-shader/dxil: Implement DX intrinsic WaveActiveBit.
vkd3d-shader/spirv: Implement the WAVE_ACTIVE_BIT_* instructions.
vkd3d-shader/dxil: Implement DX intrinsics WaveActiveOp and WavePrefixOp.
vkd3d-shader/spirv: Implement the WAVE_OP_* instructions.
tests/shader-runner: Free the hull and domain shader source code.
tests/hlsl: Add a geometry shader test.
vkd3d-shader/dxil: Load geometry shader properties.
vkd3d-shader/ir: Validate geometry shader properties.
vkd3d-shader/dxil: Implement DX intrinsics EmitStream, CutStream and EmitThenCutStream.
vkd3d-shader/dxil: Implement DX intrinsic WaveAllBitCount.
vkd3d-shader/spirv: Implement the WAVE_ALL_BIT_COUNT instruction.
vkd3d-shader/dxil: Implement DX intrinsic WaveIsFirstLane.
vkd3d-shader/spirv: Implement the WAVE_IS_FIRST_LANE instruction.
vkd3d-shader/dxil: Implement DX intrinsic WavePrefixBitCount.
vkd3d-shader/spirv: Implement the WAVE_PREFIX_BIT_COUNT instruction.
tests: Add tests for D3D12_FEATURE_SHADER_MODEL.
vkd3d: Return a shader model no higher than the requested one for D3D12_FEATURE_SHADER_MODEL.
vkd3d: Return E_INVALIDARG if the requested shader model is unknown.
vkd3d-shader/dxil: Emit bool inputs and outputs as uint.
vkd3d-shader/spirv: Do not warn if no global flags are unhandled.
vkd3d-shader/spirv: Emit a trace instead of a warning message for ignored alignment.
vkd3d-shader/dxil: Delete bool not-equal-to-false comparison instructions.
vkd3d-shader/ir: Allow all DCL instructions to occur outside hull shader phases.
tests/hlsl: Add a test for WaveReadLaneAt() with a non-uniform index.
vkd3d-shader/dxil: Implement DX intrinsic WaveReadLaneAt.
vkd3d-shader/spirv: Implement the WAVE_READ_LANE_AT instruction.
vkd3d-shader/dxil: Implement DX intrinsic WaveReadLaneFirst.
tests/hlsl: Clear the RTV before the WaveReadLaneFirst() test.
vkd3d-shader/spirv: Implement the WAVE_READ_LANE_FIRST instruction.
tests/hlsl: Add a test for SV_Coverage out.
vkd3d-shader/dxil: Handle SV_Coverage out.
tests/hlsl: Add a test for SV_ClipDistance.
vkd3d-shader/dxil: Handle SV_ClipDistance and SV_CullDistance.
tests/d3d12: Do not test a typed UAV in test_atomic_instructions().
tests/d3d12: Do not test 3D depth textures in test_get_copyable_footprints().
tests/d3d12: Do not clear UAVs via a structured view.
tests/d3d12: Set the descriptor heaps for the draw call in test_graphics_uav_counters().
tests/d3d12: Check the correct depth/stencil plane format and alignment in test_get_copyable_footprints().
tests/d3d12: Test format D32_FLOAT_S8X24_UINT in test_get_copyable_footprints().
tests/d3d12: Check UnalignedBlockTexturesSupported when testing GetCopyableFootprints().
tests/d3d12: Ensure stream output BufferFilledSizeLocation is always valid.
tests/d3d12: Use get_cpu_sampler_handle() for the sampler heap in test_unbounded_samplers().
tests/d3d12: Add a separate null 'views' pointer test in test_null_vbv().
vkd3d: Check for mutable descriptor set allocation failure in d3d12_descriptor_heap_create_descriptor_set().
Elizabeth Figura (62):
vkd3d-shader/spirv: Implement CMP.
vkd3d-shader/spirv: Implement SLT and SGE.
tests: Use a UAV barrier between ClearUnorderedAccessViewFloat() and a compute shader.
vkd3d-utils: Implement ID3D12ShaderReflection::GetConstantBufferByIndex().
vkd3d-utils: Parse the RD11 section.
vkd3d-utils: Implement ID3D12ShaderReflectionConstantBuffer::GetVariableByIndex().
vkd3d-utils: Implement ID3D12ShaderReflectionVariable::GetType().
vkd3d-utils: Implement ID3D12ShaderReflectionType::GetMemberTypeByIndex().
vkd3d-shader/tpf: Do not write non-numeric struct fields into the RDEF.
vkd3d-shader/hlsl: Allocate register reservations for structs as well.
vkd3d-shader/tpf: Do not write structs with no numeric fields into the RDEF.
vkd3d-shader/tpf: Explicitly write the class and base type for non-numeric types.
vkd3d-shader/tpf: Write the component count as the column count for structs.
vkd3d-shader/tpf: Set the user-packed flag for sm5.0 resources as well.
tests: Test constant and resource reflection via D3DReflect().
tests: Add more tests for resource and struct RDEF contents.
vkd3d-shader/spirv: Implement VKD3DSIH_ABS.
vkd3d-shader: Add a compile option to control whether implicit truncation warnings are printed.
vkd3d-shader/hlsl: Remove a redundant type check.
vkd3d-shader/hlsl: Move a hlsl_fixme() to a more relevant place.
vkd3d-shader/hlsl: Simplify type_has_object_components().
vkd3d-shader/hlsl: Use hlsl_is_numeric_type() in type_has_object_components().
vkd3d-shader/hlsl: Move shader version helpers to hlsl.h.
vkd3d-shader/hlsl: Use hlsl_version_ge() when checking for unbounded arrays.
vkd3d-shader/hlsl: Add SM5.1 shader target strings.
tests: Test HLSL unbounded array syntax.
vkd3d-shader/hlsl: Use hlsl_type_is_resource() for unbounded array checks.
tests: Add more tests for manual packing.
vkd3d-shader/hlsl: Consider any valid register reservation to invoke manual packing.
vkd3d-shader/hlsl: Avoid using HLSL_CLASS_OBJECT without checking the base type.
vkd3d-shader/hlsl: Map HLSL_TYPE_DOUBLE to D3DXPT_FLOAT.
vkd3d-shader/d3dbc: Consider the class in sm1_base_type().
vkd3d-shader/fx: Don't use an array to write the type class.
vkd3d-shader/fx: Move unimplemented type checks into is_type_supported_fx_2().
vkd3d-shader/fx: Use a switch in write_fx_2_initial_value().
vkd3d-shader/hlsl: Make HLSL_TYPE_VOID into a separate class.
vkd3d-shader/hlsl: Make HLSL_TYPE_STRING into a separate class.
vkd3d-shader/hlsl: Make HLSL_TYPE_SAMPLER into a separate class.
vkd3d-shader/hlsl: Make HLSL_TYPE_TEXTURE into a separate class.
vkd3d-shader/hlsl: Make HLSL_TYPE_UAV into a separate class.
vkd3d-shader/hlsl: Rename register_opt and packoffset_opt to register_reservation and packoffset_reservation.
vkd3d-shader/hlsl: Parse register space reservations.
tests: Do not run the d3d11 backend with shader model 5.1.
tests: Add tests for profile syntax in register reservations.
tests: Add tests for register space reservation syntax.
vkd3d-shader/hlsl: Make HLSL_TYPE_EFFECT_GROUP into a separate class.
vkd3d-shader/hlsl: Make HLSL_TYPE_PASS into a separate class.
vkd3d-shader/hlsl: Make HLSL_TYPE_TECHNIQUE into a separate class.
vkd3d-shader/hlsl: Make HLSL_TYPE_DEPTHSTENCILVIEW into a separate class.
vkd3d-shader/hlsl: Make HLSL_TYPE_RENDERTARGETVIEW into a separate class.
vkd3d-shader/hlsl: Ensure that the type is numeric before calling expr_common_base_type().
vkd3d-shader/hlsl: Make HLSL_TYPE_VERTEXSHADER into a separate class.
vkd3d-shader/hlsl: Make HLSL_TYPE_PIXELSHADER into a separate class.
vkd3d-shader/hlsl: Use a switch in hlsl_types_are_equal().
vkd3d-shader/hlsl: Move the "base_type" member to the class-specific union.
vkd3d-utils: Fix bounds comparison against element counts.
vkd3d-shader/tpf: Write the field offset in bytes.
vkd3d-utils: Initialize the null type vtbl.
tests: Test bounds checking in ID3D12ShaderReflection.
vkd3d-utils: Implement ID3D12ShaderReflection::GetResourceBindingDesc().
vkd3d-shader/fx: Skip uniform copy logic for global variables.
authors: Change the full form of my name.
Evan Tang (2):
vkd3d-shader/spirv: Implement support for rasteriser-ordered views.
vkd3d: Enable VK_EXT_fragment_shader_interlock if available.
Francisco Casas (70):
vkd3d-shader/hlsl: Lower casts to int using REINTERPRET instead.
vkd3d-shader/hlsl: Lower non-float operators for SM1.
vkd3d-shader/d3dbc: Implement bool to float cast as MOV.
tests: Copy autotool's testsuite driver script.
tests: Get detailed information on failing tests.
tests/shader-runner: Pass uniforms to vertex shaders in d3d9 and d3d11.
vkd3d-shader/hlsl: Cast slt before multiplying on ternary operator.
tests: Test comparison and logic operators on SM1 vertex shaders.
tests: Check that -0.0f is not less than 0.0f.
tests: Avoid creating a file named "0" when calling "make check".
vkd3d-shader/d3dbc: Check profiles before writing SLT and CMP.
vkd3d-shader/hlsl: Implement SM1 comparison operators.
tests: Test equality between tiny and between large numbers on ps_2_0.
vkd3d-shader/hlsl: Lower SLT instructions for pixel shaders.
vkd3d-shader/hlsl: Use hlsl_fixme() on missing SM1 matrix writemask lowering.
vkd3d-shader/hlsl: Lower CMP instructions for vertex shaders.
tests: Add tests for LOGIC_NOT on uniforms.
vkd3d-shader/hlsl: Support LOGIC_NOT for SM1.
vkd3d-shader/hlsl: Cast to bool before applying LOGIC_NOT.
vkd3d-shader/d3dbc: Implement HLSL_OP2_LOGIC_OR for SM1.
vkd3d-shader/d3dbc: Implement HLSL_OP2_LOGIC_AND for SM1.
vkd3d-shader/spirv: Throw compiler error on unrecognized register.
tests/test-driver: Display [SIGABRT] and [SIGSEGV] tags.
tests/test-driver: Print line where vkd3d_unreachable() was hit.
vkd3d-shader/hlsl: Ensure that TERNARY condition is always bool.
vkd3d-shader/hlsl: Move lower of non-float expressions with the other SM1 passes.
vkd3d-shader/hlsl: Merge HLSL_OP3_MOVC into HLSL_OP3_TERNARY.
tests: Report missing signature element in openGL runner.
vkd3d-shader/tpf: Use the extra_bits field for _nz on discard.
tests: Add failing test for clip.shader_test in SM1.
vkd3d-shader/ir: Add missing src swizzle in vsir_program_lower_texkills().
vkd3d-shader/hlsl: Use LOGIC_OR instead of BIT_OR in any().
vkd3d-shader/hlsl: Use LOGIC_AND instead of MUL in all().
vkd3d-shader/hlsl: Properly release string buffer on write_atan_or_atan2().
vkd3d-shader/hlsl: Also call dce before lowering deref paths.
tests: Add more state block syntax tests.
tests: Test function call syntax for state blocks.
tests: Add tests for fxgroup syntax.
tests: Add tests for "compile" and CompileShader() syntax.
vkd3d-shader/hlsl: Parse and store state blocks on variables.
vkd3d-shader/hlsl: Introduce hlsl_ir_stateblock_constant.
vkd3d-shader/hlsl: Parse list of state blocks.
vkd3d-shader/hlsl: Store state block on pass variables.
vkd3d-shader/hlsl: Allow KW_PIXELSHADER and KW_VERTEXSHADER as stateblock lhs.
vkd3d-shader/hlsl: Cleanup parse_attribute_list structs (valgrind).
tests/shader-runner: Report whole-block errors on the block's starting line.
tests: Add additional conditional tests for shader model 3.0.
vkd3d-shader/d3dbc: Pass hlsl_block instead of function declaration.
vkd3d-shader/ir: Lower IFC instructions to IF instructions.
vkd3d-shader/d3dbc: Support SM1 if conditionals.
tests: Test x + 0 and x * 1 indentities.
vkd3d-shader/hlsl: Fold x + 0 identities.
vkd3d-shader/hlsl: Fold x * 1 identities.
vkd3d-shader/hlsl: Turn hlsl_state_block_entry arguments into hlsl_src.
tests: Test SM1 constant register allocation.
tests: Test SM1 constant register allocation with reservations.
tests: Test SM1 const register allocation with relative addressing.
vkd3d-shader/hlsl: Allocate unused variables with register reservations on SM1.
vkd3d-shader/hlsl: Improve tracking of used components running DCE before.
vkd3d-shader/hlsl: Track bind count according to usage for uniforms.
vkd3d-shader/hlsl: Only allocate numeric bind count for SM1 numeric uniforms.
vkd3d-shader/d3dbc: Write used bind count for numeric uniforms.
vkd3d-shader/hlsl: Allocate SM1 numeric uniforms in decreasing bind count.
vkd3d-shader: Return a valid pointer when count=0 in param allocator (ubsan).
tests: Test default values for uniform variables.
tests: Test default values for constant buffer variables.
vkd3d-shader/hlsl: Run constant passes in a separate function.
vkd3d-shader/hlsl: Run more constant passes on static expressions eval.
tests: Test complex array size expression.
vkd3d-shader/hlsl: Also lower matrix swizzles and index loads in const passes.
Giovanni Mascellani (124):
vkd3d-shader/d3d-asm: Do not make a copy of the buffer before returning it.
vkd3d-shader/d3d-asm: Describe the ASM dialect with a bunch of flags instead of a plain enum.
vkd3d-shader/d3d-asm: Refactor dumping a write mask to a dedicated function.
vkd3d-shader/d3d-asm: Support emitting the shader signature.
vkd3d-compiler: Add an option to emit the signature when disassembling.
tests: Test emitting the signature.
vkd3d-shader/ir: Properly handle function-local indexable temps when flattening control flow.
vkd3d-shader/ir: Add a debug buffer to struct vsir_cfg.
vkd3d-shader/ir: Introduce a helper to express block domination.
vkd3d-shader/ir: Compute the loops in the control flow graph.
vkd3d-shader/ir: Keep a reference to the message context inside struct vsir_cfg.
vkd3d-shader/ir: Keep track of loops by header block.
vkd3d-shader/ir: Dump the loops in the control flow graph.
vkd3d-shader/ir: Sort each loop by block label.
vkd3d-shader/ir: Allow adding to a block list without checking for duplicates.
vkd3d-shader/ir: Topologically sort the control flow graph.
vkd3d-shader/ir: Dump the topological order of the control flow graph.
vkd3d-shader/ir: Keep loops contiguous in the topological sort.
vkd3d-shader: Treat the HLSL case specially in vkd3d_shader_scan().
vkd3d-shader: Treat the HLSL case specially in vkd3d_shader_compile().
vkd3d-shader: Refactor common code for vkd3d_shader_scan().
vkd3d-shader: Refactor common code for vkd3d_shader_compile().
vkd3d-shader/d3d-asm: Print labels in red.
vkd3d-shader/d3d-asm: Only emit signatures for SM4-6.
vkd3d-shader/dxbc: Add flag to ignore the DXBC checksum.
vkd3d-dxbc: Add an option to ignore checksum.
vkd3d-dxbc: Add an option to re-emit the shader with the correct checksum.
vkd3d-dxbc: Add an option to choose the output filename.
vkd3d-shader/tpf: Remove a useless parameter to shader_sm4_init().
vkd3d-shader/dxbc: Decouple vkd3d_shader_desc from DXBC parsing.
vkd3d-shader: Move shader signatures to vsir_program.
vkd3d-shader/dxbc: Remove flag is_dxil.
vkd3d-shader: Remove the bytecode fields from vkd3d_shader_desc.
tests: Mark the HS punned array test as buggy on MoltenVK.
tests: Pop the test context when leaving its scope.
tests: Mark the coverage test as buggy on MoltenVK.
tests: Relax precision a bit for an interpolation test.
tests: Clear the UAV before testing.
vkd3d-shader/ir: Compute loop as intervals of the block order.
vkd3d-shader/ir: Generate synthetic intervals for forward edges.
vkd3d-shader/ir: Sort loop intervals.
vkd3d-shader/ir: Reconstruct a structured program.
vkd3d-shader/ir: Add jumps to the structured programs.
vkd3d-shader/ir: Dump the reconstructed structured program.
vkd3d-shader/ir: Emit the reconstructed structured program.
vkd3d-shader/ir: Emit multilevel jumps in the structured program.
vkd3d-shader/d3d-asm: Indent instructions inside a block.
vkd3d-shader/d3d-asm: Do not dump a register's type if it's unused.
vkd3d-shader/ir: Use type "unused" for labels.
Add a changelog for all the released versions of vkd3d.
include: Include stddef.h in vkd3d_shader.h.
tests: Include vkd3d_d3d12.h in utils.h.
vkd3d-compiler: Clean up the shader code in all failure paths (Valgrind).
vkd3d-shader/ir: Move vsir_program_normalise() to the end of the file.
vkd3d-shader/ir: Open a loop when visiting the loop header.
vkd3d-shader/ir: Drop a useless helper.
ci: Make llvmpipe from Mesa 24.0.3 available in the CI image.
ci: Run tests on llvmpipe from Mesa 24.0.3.
vkd3d-shader/ir: Move `continue's to the false branch when possible.
vkd3d-shader/ir: Remove trailing `continue's.
vkd3d-shader/ir: Synthesize selection constructs from conditional jumps.
ci: Build the macOS image each time the Linux image is built.
ci: Delimit building each commit with a collapsible section.
vkd3d-shader/d3d-asm: Reset indent level on HS phases.
tests: Mark some test failures as todo on llvmpipe.
tests: Skip some tests that crash on llvmpipe.
tests: Print the device name.
tests: Add llvmpipe among the Mesa drivers.
tests: Pop the test context when leaving its scope.
ci: Build Mesa for release.
vkd3d-shader/hlsl: Emit half results when operating on half arguments.
tests: Check that side effects do not happen after discard.
vkd3d-shader/ir: Move `break's out of selection constructs when possible.
vkd3d-shader/ir: Count how many jumps target each loop.
vkd3d-shader/ir: Remove loops that terminate with a `break'.
vkd3d-shader/ir: Prepare for changing the destination list in vsir_cfg_optimize_recurse().
vkd3d-shader/ir: Append code to the non-breaking branch if there is breaking one.
vkd3d-shader/ir: Move breaks out of selections again after having optimized loops.
vkd3d-shader/ir: Split program structurization.
vkd3d-shader/ir: Split undominated SSA materialization.
vkd3d-shader/ir: Refactor declaration emission outside of the CFG structure.
vkd3d-shader/ir: Split handling blocks when emitting a structured program.
vkd3d-shader/ir: Split handling loops when emitting a structured program.
vkd3d-shader/ir: Split handling selections when emitting a structured program.
vkd3d-shader/ir: Split handling jumps when emitting a structured program.
vkd3d-shader/ir: Introduce vsir_program_lower_instructions().
vkd3d-shader/ir: Move DCL_TEMPS removal to the generic instruction lowering pass.
vkd3d-shader/ir: Swap selection branches if the if branch is empty.
vkd3d-shader/ir: Only emit trampolines when needed.
vkd3d-shader/ir: Only emit launchers when needed.
vkd3d-utils: Make all extensions optional in D3D12CreateDeviceVKD3D().
tests: Avoid using a different UAV for SM<6 and SM>=6.
tests: Check that derivatives are still computed after discarding.
tests/shader-runner: Use OpDemoteToHelperInvocationEXT when available.
tests: Allow skipping DXC tests at runtime.
tests: Allow compiling shaders with DXC on crosstests.
ci: Run crosstests with DXC too.
include: Document struct vkd3d_instance_create_info.
include: Document struct vkd3d_structure_type.
include: Document struct vkd3d_optional_instance_extensions_info.
include: Document structure vkd3d_application_info.
include: Document structure vkd3d_host_time_domain_info.
vkd3d-shader/ir: Skip invalid blocks when materializing undominated SSAs.
vkd3d-shader/ir: Structurize each function of a hull shader.
vkd3d-shader/ir: Materialize SSAs in each function of a hull shader.
tests: Test wave reconvergence after selections and loops.
tests: Add missing test file.
vkd3d: Simplify control flow for swapchain images.
include: Document structure vkd3d_device_create_info.
include: Document structure vkd3d_optional_device_extensions_info.
include: Document structure vkd3d_image_resource_create_info.
vkd3d: Warn about missing extensions only when meaningful.
vkd3d: Move checking device extensions to a dedicated function.
vkd3d: Do not automatically succeed if no extensions are available.
vkd3d: Init physical device information after checking available extensions.
vkd3d: Only request properties and features when the corresponding extension is available.
vkd3d: Handle D3D12_FEATURE_D3D12_OPTIONS14 in CheckFeatureSupport().
vkd3d: Handle D3D12_FEATURE_D3D12_OPTIONS15 in CheckFeatureSupport().
vkd3d: Handle D3D12_FEATURE_D3D12_OPTIONS16 in CheckFeatureSupport().
vkd3d: Handle D3D12_FEATURE_D3D12_OPTIONS17 in CheckFeatureSupport().
vkd3d: Handle D3D12_FEATURE_D3D12_OPTIONS18 in CheckFeatureSupport().
vkd3d: Move the full stops before the newline.
tests: Check device support for all the 16 bit image formats.
tests: Skip a test that freezes the GPU on NVIDIA.
Henri Verbeet (85):
vkd3d-shader: Enable GLSL target support when VKD3D_SHADER_UNSUPPORTED_GLSL is defined.
vkd3d-shader/glsl: Use location information from the current instruction.
vkd3d-shader/d3d-asm: Get rid of the (now) redundant "shader_desc" parameter to vkd3d_dxbc_binary_to_text().
vkd3d-shader/glsl: Introduce glsl_compile().
vkd3d-shader/ir: Pass a struct vsir_program to instruction_array_lower_texkills().
vkd3d-shader/ir: Pass a struct vsir_program to materialize_ssas_to_temps_process_reg().
vkd3d-shader/ir: Pass a struct vsir_program to materialize_ssas_to_temps().
vkd3d-shader/ir: Pass a struct vsir_program to simple_structurizer_run().
vkd3d-shader/ir: Pass a struct vsir_program to remap_output_signature().
vkd3d-shader/glsl: Store a pointer to the vsir program in struct vkd3d_glsl_generator.
vkd3d-shader/glsl: Trace the generated shader.
vkd3d-shader/glsl: Generate comments for unhandled instructions.
vkd3d-shader/ir: Pass a struct vsir_program to shader_normalise_io_registers().
vkd3d-shader/ir: Pass a struct vsir_program to normalise_combined_samplers().
vkd3d-shader/ir: Pass a struct vsir_program to flatten_control_flow_constructs().
vkd3d-shader/ir: Pass a struct vsir_program to vsir_validate().
vkd3d-shader/glsl: Keep track of the current indentation level.
vkd3d-shader/d3d-asm: Pass a prefix and suffix to shader_dump_tessellator_domain().
vkd3d-shader/d3d-asm: Pass a prefix and suffix to shader_dump_tessellator_output_primitive().
vkd3d-shader/d3d-asm: Pass a prefix and suffix to shader_dump_tessellator_partitioning().
vkd3d-shader/d3d-asm: Pass a prefix and suffix to shader_dump_src_param().
vkd3d-shader/d3d-asm: Pass a prefix and suffix to shader_dump_dst_param().
tests/shader_runner: Add GLSL support to the GL runner.
vkd3d-shader/ir: Pass a struct vsir_program to vkd3d_shader_normalise().
vkd3d-common: Merge vkd3d_debug.h into vkd3d_common.h.
vkd3d: Move the vkd3d_mutex implementation to vkd3d-common.
tests: Initialise resource_desc1.Layout in test_get_copyable_footprints() (Valgrind).
tests/shader_runner: Cleanup on insufficient GLSL support in gl_runner_init() (Valgrind).
vkd3d-dxbc: Close output files after writing them.
vkd3d-dxbc: Introduce a helper function to handle ACTION_TYPE_EMIT.
vkd3d-dxbc: Introduce a helper function to apply actions.
vkd3d-dxbc: Free the blob if parsing it failed.
vkd3d-dxbc: Implement extracting section data.
vkd3d-dxbc: Allow the section to extract to be specified by tag.
tests: Free the shader blobs once we're done with them in test_create_pipeline_state(). (Valgrind).
tests/test-driver: Avoid "head" with negative line count.
configure: Use AC_CHECK_TOOL to check for widl.
vkd3d-shader/d3d-asm: Pass a prefix and suffix to shader_dump_register().
vkd3d-shader/d3d-asm: Pass a prefix and suffix to shader_dump_reg_type().
vkd3d-shader/d3d-asm: Pass a prefix and suffix to shader_dump_shader_input_sysval_semantic().
vkd3d-shader/d3d-asm: Pass a prefix and suffix to shader_dump_decl_usage().
vkd3d-shader/d3d-asm: Pass a prefix and suffix to shader_dump_primitive_type().
vkd3d-shader/d3d-asm: Pass a prefix and suffix to shader_dump_interpolation_mode().
tests: Test creating compute pipeline states from shaders with embedded root signatures.
vkd3d: Implement creating compute pipeline states from shaders with embedded root signatures.
vkd3d-shader/d3d-asm: Get rid of shader_addline().
vkd3d-shader/ir: Remove VKD3DSIH_DCL_CONSTANT_BUFFER instructions.
vkd3d: Avoid leaking "messages" when "error_blob" is NULL in vkd3d_serialize_root_signature(). (Valgrind).
vkd3d: Avoid leaking "messages" when "error_blob" is NULL in vkd3d_serialize_versioned_root_signature(). (Valgrind).
vkd3d-shader/glsl: Call vkd3d_shader_normalise().
vkd3d-shader/glsl: Add vkd3d-shader version information to the generated shader.
vkd3d-shader/hlsl: Support d3d-asm as target format.
vkd3d-shader/hlsl: Support spirv-binary and spirv-text as target formats.
tests/shader_runner: Pass only valid stages to vkCreateGraphicsPipelines().
vkd3d-shader/glsl: Implement VKD3DSIH_NOP.
vkd3d: Move the vkd3d_cond implementation to vkd3d-common.
vkd3d-common: Introduce VKD3D_BITMAP_SIZE.
vkd3d: Use WIDL_C_INLINE_WRAPPERS.
vkd3d-utils: Use WIDL_C_INLINE_WRAPPERS.
vkd3d-common: Use WIDL_C_INLINE_WRAPPERS.
tests/shader_runner: Use WIDL_C_INLINE_WRAPPERS.
vkd3d: Get rid of vkd3d_atomic_compare_exchange_pointer().
vkd3d-common: Introduce vkd3d_atomic_compare_exchange_u32().
vkd3d-common: Introduce vkd3d_atomic_exchange_u32().
vkd3d-common: Introduce vkd3d_atomic_exchange_ptr().
vkd3d-shader/hlsl: Use vkd3d_string_buffer_printf() in declare_predefined_types().
vkd3d-shader/spirv: Use location information from the current instruction.
vkd3d-shader: Get rid of struct vkd3d_shader_desc.
configure: Build with -flto=auto when available.
vkd3d-shader/spirv: Pass a struct vsir_program to spirv_compiler_generate_spirv().
vkd3d-shader/spirv: Pass a struct vsir_program to spirv_compile().
vkd3d-shader: Pass a struct vsir_program to scan_with_parser().
vkd3d-shader: Pass a struct vsir_program to vkd3d_shader_parser_compile().
tests/shader_runner: Get rid of some redundant "| glsl" conditions.
vkd3d-shader/ir: Use a separate allocation for the vsir program in struct vkd3d_shader_parser.
vkd3d-shader/ir: Pass an initialised vsir_program structure to vkd3d_shader_parser_init().
vkd3d-shader/ir: Do not store the vkd3d-shader configuration flags in struct vkd3d_shader_parser.
vkd3d-shader/d3dbc: Parse the shader into a vsir program in vkd3d_shader_sm1_parser_create().
vkd3d-shader/tpf: Parse the shader into a vsir program in vkd3d_shader_sm4_parser_create().
vkd3d-shader/dxil: Parse the shader into a vsir program in vkd3d_shader_sm6_parser_create().
vkd3d-shader: Use a separate allocation for the "semantic_name" field of shader signature elements.
include: Document the additional HLSL transformations supported by vkd3d_shader_compile().
include: Add a \since tag for VKD3D_FALSE.
build: Fix the order of a couple of shader runner tests.
tests: Rename VKD3D_TESTS_SKIP_DXC to VKD3D_TEST_SKIP_DXC.
Nikolay Sivov (49):
vkd3d-shader/hlsl: Implement ternary operator for older vertex profiles.
vkd3d-shader/hlsl: Add keyword tokens for fx_5_0 shader object types.
vkd3d-shader/hlsl: Allow technique10 {} blocks for fx_2_0.
vkd3d-shader/fx: Reject fx_2_0 output without techniques.
vkd3d-shader/fx: Make sure to set error message for unimplemented cases.
tests: Add some tests for shader object type names.
vkd3d-shader/hlsl: Improve VertexShader/PixelShader types handling.
vkd3d-shader/hlsl: Add determinant() function.
vkd3d-shader/hlsl: Allow modifiers on buffer declarations.
vkd3d-shader/d3dbc: Do not write semantic declarations for unused variables.
vkd3d-shader/fx: Add initial support for writing uninitialized vertex/pixel shader objects.
vkd3d-shader: Add an option to enable child effects compilation.
vkd3d-shader/fx: Add support for writing shared object descriptions for fx_4_x.
vkd3d-shader: Remove a token for 'precise' modifier.
vkd3d-shader: Parse a 'single' modifier.
vkd3d-shader/fx: Handle 'single' modifier for buffers.
vkd3d-shader/fx: Use type writing helper only for fx_4+.
vkd3d-shader/fx: Fix an instruction block leak.
vkd3d-shader/fx: Populate global variables list during context initialization.
vkd3d-shader/fx: Add initial support for writing fx_2_0 parameters.
vkd3d-shader/fx: Remove newlines from fixme messages.
vkd3d-shader/fx: Fail effect writing on unsupported annotations.
vkd3d-shader: Adjust "child-effect" option documentation.
vkd3d-shader/fx: Mark shared variables as such for fx_2_0 effects.
vkd3d-shader/fx: Zero-pad strings when aligning them for fx_2_0.
vkd3d-shader/fx: Set initial object count to 1 for fx_2_0.
tests: Rename effect test files to make them easier to find.
vkd3d-shader/fx: Handle "half" type for fx_2_0 parameters.
vkd3d-shader/fx: Handle "uint" type for fx_2_0 parameters.
vkd3d-shader/hlsl: Treat "texture" type name as case-insensitive.
vkd3d-shader/fx: Accept texture types when writing fx_2_0 effects.
vkd3d-shader/hlsl: Allow annotations on constant buffers.
vkd3d-shader/fx: Add an option to include empty buffers in the effect binary.
vkd3d-shader/hlsl: Allow 'export' modifier on functions.
vkd3d-shader/hlsl: Test refract() intrinsic.
vkd3d-shader/hlsl: Support refract() intrinsic.
tests: Add some tests for string variables.
vkd3d-shader/fx: Write depth stencil view object variables.
vkd3d-shader/fx: Set RTV counter in the header.
vkd3d-shader/fx: Set texture count in the header.
vkd3d-shader/fx: Fix shader counter in the header.
vkd3d-shader/fx: Filter out unsupported object types.
vkd3d-shader/fx: Set UAV count in the header.
vkd3d-shader/fx: Initial support for writing sample state objects.
tests: Test SM1 constant register allocation with a row_major matrix.
vkd3d-shader/fx: Implement writing shared buffers.
vkd3d-shader/fx: Use correct type name when reusing types.
vkd3d-shader: Remove explicit newlines from hlsl_fixme() messages.
vkd3d-shader/ir: Set texture register dimension as VEC4 when normalising combined samplers.
Petrichor Park (2):
vkd3d-shader/hlsl: Implement hyperbolic sin and cos.
vkd3d-shader/hlsl: Implement tanh.
Stefan Dösinger (12):
vkd3d: Add ID3D12Device9 interface stubs.
vkd3d: Add an ID3D12ShaderCacheSession stub.
vkd3d: Validate and store shader cache session descriptors.
tests: Add tests for creating D3D12ShaderCacheSession objects.
tests: Add CreateShaderCacheSession pointer clearing tests.
vkd3d: Implement opening and closing shader caches.
vkd3d: Implement reopening existing caches.
vkd3d: Implement vkd3d_shader_cache_put.
vkd3d: Implement vkd3d_shader_cache_get.
vkd3d: Implement cache locking.
tests/d3d12: Add tests for storing and retrieving cache values.
vkd3d: Add a win32 version of vkd3d_get_program_name.
Victor Chiletto (4):
vkd3d-shader/hlsl: Avoid a null pointer dereference in hlsl_block_cleanup (UBSan).
tests/hlsl: Add a test for the XOR assign operator.
vkd3d-shader/hlsl: Fix XOR assign operator lexing.
vkd3d-shader/preproc: Treat CR as whitespace.
```
The Wine development release 9.9 is now available.
What's new in this release:
- Support for new Wow64 mode in ODBC.
- Improved CPU detection on ARM platforms.
- Removal of a number of obsolete features in WineD3D.
- Various bug fixes.
The source is available at <https://dl.winehq.org/wine/source/9.x/wine-9.9.tar.xz>
Binary packages for various distributions will be available
from <https://www.winehq.org/download>
You will find documentation on <https://www.winehq.org/documentation>
Wine is available thanks to the work of many people.
See the file [AUTHORS][1] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/raw/wine-9.9/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 9.9 (total 38):
- #25009 Password Memory 2010 - Titlebar color rendering error
- #26407 Shadowgrounds Survivor crashes after viewing the map
- #26545 Crysis2: Red color on highlights of Bumpmap/Specular Highlights
- #27745 Racer is unplayable
- #28192 regedit: The usage message arrives too late in the wine console
- #29417 Mouse pointer laggy/slow in Dweebs and Dweebs 2 when virtual desktop mode is enabled
- #31665 Femap unexpected crash on rebuild database (or any command that involves it i.e. import)
- #32346 Window is too large with Batman and Head Over Heels remakes
- #39532 Assassin's Creed Unity doesn't run
- #40248 Some .NET applications throw unhandled exception: System.NotImplementedException: 'System.Management.ManagementObjectSearcher.Get' when using Wine-Mono
- #44009 Syberia Gog version: crash after cinematics
- #44625 Cybernoid 2 exits but x window drawing updates are frozen
- #44863 Performance regression in Prince of Persia 3D
- #45358 Assassin's Creed Syndicate (AC Unity; AC Odyssey) broken graphics
- #49674 Feature Request: Restoring previous resolution upon an app crashing
- #51200 High repaint label volume causes freezing
- #53197 Total War: Shogun 2 crashes on unimplemented function d3dx11_42.dll.D3DX11LoadTextureFromTexture
- #55513 Paint.NET 3.5.11 runs unstable on Wine 8.x (and later) because of a bug in Mono
- #55939 Moorhuhn Director's Cut crashes after going in-game
- #56000 Window title is not set with winewayland
- #56422 Exact Audio Copy installer crashes
- #56429 Applications crash with BadWindow X error
- #56483 ShellExecute changes in Wine 9.5 broke 64-bit Winelib loading in WoW64 builds
- #56485 Visual novel RE:D Cherish! displays white screen instead of logo video
- #56492 Opentrack/TrackIR head tracking broken
- #56498 Incorrect substring expansion for magic variables
- #56506 strmbase TRACEs occasionally fail to print floats
- #56527 Final Fantasy XI Online: Opening movie triggers a 'GStreamer-Video-CRITICAL'.
- #56579 Setupapi fails to read correct class GUID and name from INF file containing %strkey% tokens
- #56588 FlatOut 1 display resolution options limited to current desktop resolution using old wow64
- #56595 Fallout 3 is slow
- #56607 steam: no tray icon starting with wine 9.2
- #56615 Spelunky won't start (GLSL version 1.20 is too low; 1.20 is required)
- #56653 GetLogicalProcessorInformation can be missing Cache information
- #56655 X11 Driver fails to load
- #56661 Project Diablo 2 crashes
- #56671 Disney Ratatouille demo renders upside down on Intel graphics
- #56682 msvcrt:locale prevents the msvcrt:* tests from running on Windows 7
### Changes since 9.8:
```
Akihiro Sagawa (2):
quartz/tests: Test read position after MPEG splitter connection.
winegstreamer: Seek to the end after MPEG splitter connection.
Alex Henrie (1):
dinput: Don't include every version of DirectInputCreate in every DLL.
Alexandre Julliard (38):
nls: Update locale data to CLDR version 45.
winedump: Dump registry scripts resources as text.
winedump: Dump typelib resources in structured format.
atl: Remove empty clsid registration.
dhtmled.ocx: Remove empty clsid registration.
widl: Don't generate empty interface registrations.
ntdll: Use null-terminated strings instead of explicit lengths to build SMBIOS data.
ntdll: Cache the generated SMBIOS data.
ntdll: Build the SMBIOS table incrementally.
ntdll: Generate dummy SMBIOS data on non-supported platforms.
ntdll: Store the CPU vendor and id during detection.
ntdll: Add processor information to the SMBIOS data.
configure: Restore warning for missing PE compiler.
ntdll: Report the correct processor details on ARM platforms.
ntdll: Update PROCESSOR_ARCHITECTURE variable correctly for ARM platforms.
wineboot: Create CPU environment keys together with other hardware keys.
wineboot: Get the CPU model details with NtQuerySystemInformation(SystemCpuInformation).
wineboot: Report the correct model number on ARM platforms.
wineboot: Support multiple SMBIOS entries of the same type.
wineboot: Retrieve CPU details through the SMBIOS table.
winemac.drv: Remove some no longer used code.
wbemprox: Get the processor caption from the registry.
wbemprox: Support multiple SMBIOS entries of the same type.
wbemprox: Get the processor manufacturer from the SMBIOS table.
wbemprox: Get the processor name from the SMBIOS table.
wbemprox: Get the processor count from the SMBIOS table.
wbemprox: Get the processor id from the SMBIOS table.
wbemprox: Get a few more processor details from the SMBIOS table.
wbemprox: Get the processor type and model with SystemCpuInformation.
wbemprox: Use RtlGetNativeSystemInformation directly to get the correct info on ARM platforms.
msvcrt/tests: Don't link to _setmaxstdio.
msvcrt: Update some mangled names on ARM.
ntdll: Add default values for cache parameters.
msvcrt: Resync cxx.h with msvcp90.
msvcrt: Unify __CppXcptFilter implementations.
msvcrt: Unify __CxxQueryExceptionSize implementations.
msvcrt: Unify __CxxDetectRethrow implementations.
msvcrt: Unify checks for valid C++ exception.
Alexandros Frantzis (3):
win32u: Enable dibdrv wglDescribePixelFormat through p_get_pixel_formats.
user32/tests: Skip affected keyboard tests if a spurious layout change is detected.
user32/tests: Remove workaround for SendInput keyboard tests on zh_CN.
Alistair Leslie-Hughes (1):
include: Add some D3D12_FEATURE_DATA_D3D12_OPTIONS* types.
Anton Baskanov (2):
winegstreamer: Recognize MFAudioFormat_MPEG and MFAudioFormat_MP3.
winegstreamer: Add missing format fields to WMA support check.
Billy Laws (2):
ntdll: Allocate wow64 environment block within the 32-bit address space.
ntdll: Don't restore PC from LR after unwinding through frame switches.
Biswapriyo Nath (1):
include: Avoid a C++ keyword.
Brendan McGrath (3):
winex11.drv: Increment mode_idx in {xrandr10,xf86vm}_get_modes.
winegstreamer: Pass filename to wg_parser when available.
mplat/tests: Test Media Source is freed if immediately released.
Brendan Shanks (1):
winemac.drv: Fix warning in macdrv_get_pixel_formats.
Connor McAdams (4):
d3dx9/tests: Add a test for negative values in the source rectangle passed to D3DXLoadSurfaceFromMemory.
d3dx9/tests: Add a new compressed surface loading test.
d3dx9: Only do direct copies of full blocks for compressed formats.
d3dx9: Fix destination rectangles passed from D3DXLoadSurfaceFromMemory() to d3dx_load_image_from_memory().
Daniel Lehman (2):
msvcrt/tests: Add result for Turkish_Türkiye.1254.
msvcrt/tests: Add tests for _wcsicmp_l.
Dmitry Timoshkov (2):
kernelbase: Add support for FileDispositionInfoEx to SetFileInformationByHandle().
user32/tests: Offset child CS_PARENTDC window from parent to make more bugs visible.
Elizabeth Figura (38):
wined3d: Retrieve the VkCommandBuffer from wined3d_context_vk after executing RTV barriers.
wined3d: Submit command buffers after 512 draw or dispatch commands.
ddraw: Use system memory for version 4 vertex buffers.
ddraw: Upload only the used range of indices in d3d_device7_DrawIndexedPrimitive().
ddraw/tests: Test GetVertexBufferDesc().
wined3d: Fix GLSL version comparison.
maintainers: Change the full form of my name.
wined3d: Remove the offscreen_rendering_mode setting.
wined3d: Use wined3d_resource_is_offscreen() directly in ffp_blitter_clear_rendertargets().
wined3d: Remove no longer used support for drawing to an onscreen render target.
wined3d: Remove the no longer used render_offscreen field from struct ds_compile_args.
wined3d: Remove the no longer used Y correction variable.
d3d9/tests: Clarify and expand point size tests.
d3d9/tests: Expand test_color_vertex().
d3d9/tests: Add some tests for default diffuse values.
d3d9/tests: Test default attribute components.
wined3d: Remove the GL FFP vertex pipeline.
wined3d: Remove the GL FFP fragment pipeline.
wined3d: Remove the NV_register_combiners fragment pipeline.
wined3d: Remove the ATI_fragment_shader fragment pipeline.
wined3d: Remove the ARB_fragment_program blitter.
wined3d: Remove the ARB fragment pipeline.
wined3d: Remove the ARB shader backend.
amstream: Link to msvcrt instead of ucrtbase.
evr: Link to msvcrt instead of ucrtbase.
qasf: Link to msvcrt instead of ucrtbase.
qcap: Link to msvcrt instead of ucrtbase.
qdvd: Link to msvcrt instead of ucrtbase.
qedit: Link to msvcrt instead of ucrtbase.
quartz: Link to msvcrt instead of ucrtbase.
winegstreamer: Link to msvcrt instead of ucrtbase.
wined3d: Remove no longer used support for emulated non-power-of-two textures.
wined3d: Remove no longer used support for rectangle textures.
wined3d: Remove texture non-power-of-two fixup.
wined3d: Remove the last vestiges of ARB_texture_rectangle support.
wined3d: Collapse together NPOT d3d_info flags.
wined3d: Remove the redundant "pow2_width" and "pow2_height" fields.
wined3d: Fix inversion in shader_get_position_fixup().
Eric Pouech (19):
cmd/tests: Test using %%0-%%9 as loop variables.
cmd/tests: Test nested loop variables expansion.
cmd/tests: Test delayed expansion with spaces in IF and FOR.
cmd/tests: Test calling batch files named as builtin commands.
cmd/tests: Test success/failure of commands.
cmd: Consistenly use the same variable to identify current command.
cmd: No longer keep track of last element in command list.
cmd: Introduce xrealloc helper.
cmd: Use CRT's popen instead of rewriting it.
cmd: Remove malloc attribute from xrealloc.
cmd: Introduce CMD_NODE structure.
cmd: Add helpers to handle list in degenerated binary tree.
cmd: Move operator from CMD_COMMAND to CMD_NODE.
msvcrt: Demangle std::nullptr_t datatype.
winedump: Demangle std::nullptr_t datatype.
msvcrt: Don't consider end of list encoding as real data types.
winedump: Don't consider end of list encoding as real data types.
msvcrt: Correctly unmangle qualified pointer to function/method.
winedump: Correctly unmangle qualified pointer to function/method.
Esme Povirk (20):
gdiplus: Add a function to bracket HDC use.
gdiplus: Bracket HDC use in gdi_alpha_blend.
gdiplus: Bracket HDC use in alpha_blend_pixels_hrgn.
gdiplus: Bracket hdc use in brush_fill_path.
gdiplus: Bracket HDC use in draw_cap.
gdiplus: Bracket HDC use in draw_poly.
gdiplus: Bracket HDC use in trace_path.
gdiplus: Do not use hdc directly in get_graphics_bounds.
gdiplus: Accept an HDC in get_gdi_transform.
gdiplus: Fix background key.
gdiplus: Bitmap stride is ignored when Scan0 is non-NULL.
gdiplus: Support anchors on thin paths.
gdiplus: Remove unnecessary math in add_anchor.
gdiplus: Fix signs on custom line cap rotation in add_anchor.
gdiplus: Reorder filled arrow cap points to match native.
gdiplus: Add a test for GdipWidenPath with Custom linecaps.
gdiplus: Do not create gdi32 objects for Bitmap objects.
gdiplus: Bracket HDC use in GdipDrawImagePointsRect.
gdiplus: Bracket HDC use in GDI32_GdipFillPath.
gdiplus: Bracket HDC use in GDI32_GdipFillRegion.
Fabian Maurer (2):
win32u: Factor out scroll timer handling.
win32u: Only set scroll timer if it's not running.
Fotios Valasiadis (1):
ntdll/unix: Fix building on musl by explicitly including asm/ioctls.h.
Georg Lehmann (1):
winevulkan: Update to VK spec version 1.3.285.
Hans Leidekker (8):
odbc32: Forward SQLDataSourcesA() to SQLDataSources() and GetDiagRecA() to GetDiagRec().
odbc32: Make Unix call parameters Wow64 compatible.
odbc32: Load_odbc() returns NTSTATUS.
odbc32: Move replication of ODBC settings to the Unix lib.
odbc32: Add Wow64 thunks.
include: Add missing Unicode SQL function declarations.
odbc32: Don't load libodbc.so dynamically.
odbc32/tests: Add tests.
Hongxin Zhao (1):
po: Add a missing \t in the Simplified Chinese translation.
Huw D. M. Davies (3):
nsi/tests: Use NSI_IP_COMPARTMENT_TABLE instead of hard coding the integer.
mmdevapi: Remove unused ACImpl typedef.
maintainers: Remove Andrew Eikum.
Jacek Caban (25):
winecrt0: Support __os_arm64x_dispatch_call symbol on ARM64EC.
d3dx9/tests: Remove xfile dumping functionality.
mshtml: Introduce DISPEX_IDISPATCH_IMPL.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlnode.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlbody.c.
mshtml: Use DISPEX_IDISPATCH_IMPL in htmlanchor.c.
mshtml: Use DISPEX_IDISPATCH_IMPL in htmlarea.c.
mshtml: Use DISPEX_IDISPATCH_IMPL in htmlattribute.c.
mshtml: Use DISPEX_IDISPATCH_IMPL in htmlcomment.c.
mshtml: Use DISPEX_IDISPATCH_IMPL in htmlcurstyle.c.
mshtml: Use DISPEX_IDISPATCH_IMPL for DocumentType object implementation.
winebuild: Use .drectve section for exports on ARM64EC.
mshtml: Use DISPEX_IDISPATCH_IMPL for HTMLElement object implementation.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlelem.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlelemcol.c.
mshtml: Use DISPEX_IDISPATCH_IMPL for HTMLEventObj object implementation.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlevent.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlform.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlframe.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlgeneric.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlhead.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlimg.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmlinput.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmllink.c.
mshtml: Use DISPEX_IDISPATCH_IMPL macro in htmllocation.c.
Nikolay Sivov (7):
d2d1/tests: Add a test for effect output image interface query.
d2d1/effect: Fix GetImageLocalBounds() prototype.
d2d1/tests: Add some vertex buffer tests.
d2d1/effect: Use more generic naming for loaded shaders array.
d2d1/effect: Add a stub vertex buffer object.
d2d1/effect: Implement SetPassthroughGraph().
d2d1/effect: Implement ConnectNode().
Paul Gofman (7):
xaudio2: Use FAudioVoice_DestroyVoiceSafeEXT() in destroy_voice().
bcrypt: Support RSA/PKCS1 signatures with unspecified hash algorithm.
win32u: Update last message time in NtUserGetRawInputBuffer().
ntdll: Allocate crit section debug info by default for Windows versions before 8.
opengl32: Prefer formats with depth if unspecified in wglChoosePixelFormat().
xaudio2/tests: Fix test failures with xaudio2_8 in test_submix().
nsiproxy.sys: Return success and zero count from ipv6_forward_enumerate_all() if IPV6 is unsupported.
Piotr Caban (4):
ucrtbase: Handle empty list in variadic template.
winedump: Handle empty list in variadic template.
msvcrt/tests: Don't link to _wcsicmp_l and _create_locale.
ntdll: Don't use gmtime concurrently.
Rémi Bernon (37):
winex11: Only request display modes driver data when needed.
win32u: Read / write source modes as a single registry blob.
win32u: Remove now unnecessary reset_display_manager_ctx.
win32u: Use struct pci_id in struct gdi_gpu.
win32u: Remove driver-specific id from struct gdi_gpu.
win32u: Pass gdi_gpu structure members as add_gpu parameters.
win32u: Return STATUS_ALREADY_COMPLETE from UpdateDisplayDevices.
mfreadwrite/tests: Add some source reader D3D11 awareness tests.
mf/tests: Test video processor D3D11 awareness.
winegstreamer/video_processor: Implement D3D awareness.
mfreadwrite/reader: Pass the device manager to the stream transforms.
winegstreamer: Introduce a new wg_transform_create_mf helper.
winegstreamer: Introduce a new check_audio_transform_support helper.
winegstreamer: Introduce a new check_video_transform_support helper.
mfplat: Fix MFCreateMFVideoFormatFromMFMediaType videoInfo.VideoFlags masks.
mfplat: Use IMFMediaType_GetBlobSize instead of IMFMediaType_GetBlob.
mfplat: Introduce a new init_video_info_header helper.
mfplat: Use media_type_get_uint32 in more places.
mfplat: Factor AM_MEDIA_TYPE video format allocation.
mfplat: Set AM_MEDIA_TYPE bTemporalCompression and bFixedSizeSamples.
mfplat: Implement FORMAT_MPEGVideo for MFInitAMMediaTypeFromMFMediaType.
mfplat: Implement FORMAT_MPEG2Video for MFInitAMMediaTypeFromMFMediaType.
mfplat: Implement MFInitMediaTypeFromMPEG1VideoInfo.
mfplat: Implement MFInitMediaTypeFromMPEG2VideoInfo.
mfplat: Implement MFCreateVideoMediaType.
winebus: Don't advertise hidraw devices as XInput compatible.
winebus: Report whether devices are connected over bluetooth.
winebus: Move Sony controllers report fixups to PE side.
mfreadwrite/reader: Shutdown the queue when public ref is released.
mfplat: Add MFVideoFormat_ABGR32 format information.
mf/tests: Add video processor tests with MFVideoFormat_ABGR32 format.
mfreadwrite/tests: Add tests with MFVideoFormat_ABGR32 output format.
winegstreamer: Support MFVideoFormat_ABGR32 output in the video processor.
mfreadwrite/reader: Fixup MFVideoFormat_ABGR32 subtype to enumerate the video processor.
win32u: Set DEVMODEW dmSize field.
wineandroid: Set DEVMODEW dmSize field.
winemac: Set DEVMODEW dmSize field.
Tim Clem (7):
mountmgr.sys: Do not create drive letters or volumes for unbrowsable macOS volumes.
mountmgr.sys: Do not add drive letters or volumes for macOS volumes without mount paths.
winemac.drv: Document mode_is_preferred.
winemac.drv: Prefer display modes that are marked as usable for desktop.
winemac.drv: Do not consider the "valid" and "safe" flags as making a display mode unique.
Revert "winemac.drv: Hide app's dock icon when it wouldn't have a taskbar item on Windows.".
winemac.drv: Exclude dictation when looking for input methods.
Yuxuan Shui (3):
rtworkq: Avoid use-after-free.
mfplat/tests: Validate MFCancelWorkItem releases the callback.
rtworkq: Release cancelled work items.
Ziqing Hui (1):
winegstreamer/video_decoder: Make output_plane_align specific to h264.
```
The Wine development release 9.8 is now available.
What's new in this release:
- Mono engine updated to version 9.1.0.
- IDL-generated files use fully interpreted stubs.
- Improved RPC/COM support on ARM platforms.
- Various bug fixes.
The source is available at <https://dl.winehq.org/wine/source/9.x/wine-9.8.tar.xz>
Binary packages for various distributions will be available
from <https://www.winehq.org/download>
You will find documentation on <https://www.winehq.org/documentation>
Wine is available thanks to the work of many people.
See the file [AUTHORS][1] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/raw/wine-9.8/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 9.8 (total 22):
- #3689 Microsoft Office 97 installer depends on stdole32.tlb be in v1 (SLTG) format
- #33270 Cursor disappears during Installshield install
- #37885 Battle.net launcher fails to set permissions on WoW files
- #38142 Approach fields box only show 3/4 of one line
- #44388 gldriverquery.exe crash on wineboot and company of heroes says no 3d
- #45035 Buttons of the Radiosure program are missing
- #46455 Desktop syncing app for Remarkable devices crashes on startup
- #47741 Lotus Approach: Initial "Welcome" dialog not shown on startup
- #51361 SimSig with Wine 6.18 breaks after upgrading from libxml2 2.9.10 to 2.9.12
- #54997 msys2: gpg.exe fails because "NtSetInformationFile Unsupported class (65)" / FileRenameInformationEx
- #55736 Solid Edge crashes after a couple of minutes
- #55844 Paper tray options missing. Landscape orientation is ignored
- #56041 iZotope Product Portal crashes
- #56248 VTFEdit: Exception When Loading .VTF Files
- #56309 Across Lite doesn't show the letters properly when typing
- #56324 Falcon BMS launcher fails to start (native .Net 4.6.1 needed)
- #56407 SaveToGame hangs during DWM initialization
- #56472 Recettear opening movie blackscreen in Wine 9.5
- #56581 Corsair iCUE 4: needs unimplemented function SHELL32.dll.SHAssocEnumHandlersForProtocolByApplication
- #56598 Calling [vararg] method via ITypeLib without arguments via IDispatch fails
- #56599 HWMonitor 1.53 needs unimplemented function pdh.dll.PdhConnectMachineA
- #56609 vcrun2008 fails to install
### Changes since 9.7:
```
Aida Jonikienė (1):
msvcp140_atomic_wait: Implement __std_*_crt().
Akihiro Sagawa (3):
quartz/tests: Add tests to reject unsupported contents for MPEG splitter.
winegstreamer: Reject unexpected formats on init.
winegstreamer: Implement input media type enumeration in MPEG splitter.
Alex Henrie (3):
setupapi: Don't set RequiredSize when SetupDiGetClassDescription* fails.
shell32: Add SHAssocEnumHandlersForProtocolByApplication stub.
pdh: Add PdhConnectMachineA stub.
Alexandre Julliard (57):
include: Update a couple of RPC structures.
rpcrt4: Add a wrapper for client calls from stubless proxies.
rpcrt4: Move the FPU register conversion to the stubless proxy wrapper.
rpcrt4: Remap registers to the stack for stubless proxies on ARM platforms.
rpcrt4: Stop passing the actual FPU regs pointer to client call functions.
rpcrt4: Remove obsolete version comments from spec file.
rpcrt4: Fix stack alignment and by-value parameters for typelibs on ARM platforms.
rpcrt4: Generate the parameter extension data for typelibs on ARM platforms.
rpcrt4: Extend 8- and 16-bit parameters on ARM.
oleaut32: Extend 8- and 16-bit parameters on ARM.
rpcrt4: Use fully interpreted IDL stubs.
rpcrt4/tests: Use fully interpreted IDL stubs.
schedsvc: Use fully interpreted IDL stubs.
schedsvc/tests: Use fully interpreted IDL stubs.
sechost: Use fully interpreted IDL stubs.
taskschd: Use fully interpreted IDL stubs.
ntoskrnl.exe: Use fully interpreted IDL stubs.
plugplay: Use fully interpreted IDL stubs.
rpcss: Use fully interpreted IDL stubs.
services: Use fully interpreted IDL stubs.
ntdll/tests: Remove unnecessary shared header.
dbghelp: Ignore a couple of Dwarf-3 opcodes.
oleaut32: Fix IDispatch::Invoke for vararg functions with empty varargs.
systeminfo: Pass proper Unicode strings to fwprintf.
avifil32: Use fully interpreted IDL stubs.
combase: Use fully interpreted IDL stubs.
dispex: Use fully interpreted IDL stubs.
ia2comproxy: Use fully interpreted IDL stubs.
ieproxy: Use fully interpreted IDL stubs.
mscftp: Use fully interpreted IDL stubs.
makefiles: Support building files for x86-64 architecture on ARM64EC.
rpcrt4: Move the stubless client thunks to a separate file.
rpcrt4: Move the stubless delegating thunks to a separate file.
rpcrt4: Move call_server_func() to a separate file.
msdaps: Use fully interpreted IDL stubs.
msi: Use fully interpreted IDL stubs.
mstask: Use fully interpreted IDL stubs.
netapi32: Use fully interpreted IDL stubs.
oleacc: Use fully interpreted IDL stubs.
sti: Use fully interpreted IDL stubs.
urlmon: Use fully interpreted IDL stubs.
windowscodecs: Use fully interpreted IDL stubs.
actxprxy: Use fully interpreted IDL stubs.
ole32: Use fully interpreted IDL stubs.
oleaut32: Use fully interpreted IDL stubs.
qmgrprxy: Use fully interpreted IDL stubs.
quartz: Use fully interpreted IDL stubs.
widl: Fix correlation offset for unencapsulated unions in interpreted mode.
widl: Default to fully interpreted stubs mode.
oleaut32: Move the call_method thunk to a separate file.
vcomp: Move the fork wrapper to a separate file.
vcomp: Fix stack alignment in the fork wrapper on ARM.
ntdll: Build __chkstk as x86-64 code on ARM64EC.
ntdll: Generate stub entry points as x86-64 code on ARM64EC.
faudio: Import upstream release 24.05.
fluidsynth: Import upstream release 2.3.5.
png: Import upstream release 1.6.43.
Alexandros Frantzis (9):
winex11.drv: Rename wgl_pixel_format to glx_pixel_format.
opengl32: Implement wglDescribePixelFormat using new driver API get_pixel_formats.
opengl32: Cache driver pixel format information.
winewayland.drv: Enable wglDescribePixelFormat through p_get_pixel_formats.
winex11.drv: Enable wglDescribePixelFormat through p_get_pixel_formats.
winex11.drv: Remove unnecessary parameter from describe_pixel_format.
winemac.drv: Enable wglDescribePixelFormat through p_get_pixel_formats.
wineandroid.drv: Rename wgl_pixel_format to avoid name conflicts.
wineandroid.drv: Enable wglDescribePixelFormat through p_get_pixel_formats.
Alfred Agrell (1):
include: Use the correct GUID for DXFILEOBJ_PatchMesh.
Alistair Leslie-Hughes (2):
include: Add atldef.h.
windowscodecs: Avoid implicit cast changing value.
Anton Baskanov (3):
user32/tests: Test that display settings are restored on process exit.
winex11.drv: Process RRNotify events in xrandr14_get_id.
explorer: Restore display settings on process exit.
Billy Laws (1):
winevulkan: Allocate commited memory for placed mappings.
Brendan McGrath (4):
winegstreamer: Pass uri to wg_parser when available.
winegstreamer: Respond to the URI query.
winegstreamer: Fix wow64 support for wg_parser_connect.
winegstreamer: Log query after setting the URI.
Brendan Shanks (2):
widl: Use hardcoded build time in TLB custom data.
winemac.drv: Fix use-after-free in macdrv_copy_pasteboard_types.
Danyil Blyschak (1):
mfreadwrite: Store result of object activation in stream transform.
Dmitry Timoshkov (11):
widl: Make automatic dispid generation scheme better match what midl does.
widl: Create library block index right after the CompObj one.
widl: Set the lowest bit in the param name to indicate whether type description follows the name.
widl: Add support for function parameter flags to SLTG typelib generator.
widl: Fix calculation of the SLTG library block size.
stdole32.tlb: Generate typelib in SLTG format.
include: Add _Inout_cap_c_(count) macro.
include: Move InterlockedExchangeAdd64() definition before its first usage.
dssenh: Add CPSetKeyParam() stub implementation.
rsaenh: Validate pbData in CPSetKeyParam().
advapi32: CryptSetKeyParam() should accept NULL pbData.
Esme Povirk (4):
mscoree: Update Wine Mono to 9.1.0.
user32/tests: Add a flag for messages incorrectly sent by Wine.
user32/tests: Remove a no-longer needed optional flag.
windowscodecs: Check for overflow in jpeg_decoder_initialize.
Etaash Mathamsetty (2):
user32: Fake success from RegisterTouchWindow.
user32: Fake success from UnregisterTouchWindow.
Evan Tang (2):
user32/tests: Check RegisterRawInputDevices RIDDEV_DEVNOTIFY posted messages.
win32u: Post device arrival messages in NtUserRegisterRawInputDevices.
Gopal Prasad (2):
winewayland.drv: Set wayland app-id from the process name.
winewayland.drv: Implement SetWindowText.
Hans Leidekker (2):
wintrust: Add support for the PE image hash in CryptCATAdminCalcHashFromFileHandle().
msi: Install global assemblies after install custom actions and before commit custom actions.
Henri Verbeet (3):
wined3d: Pass a shader_glsl_priv structure to shader_glsl_generate_fragment_shader().
wined3d: Pass a shader_glsl_priv structure to shader_glsl_generate_compute_shader().
wined3d: Introduce the "glsl-vkd3d" shader backend.
Jacek Caban (1):
mshtml: Move iface_wrapper_t IUnknown implementation to htmlobject.c.
Kirill Zhumarin (1):
ntdll: Use termios2 for serial when possible.
Matteo Bruni (9):
wined3d: Rename WINED3DUSAGE_PRIVATE to WINED3DUSAGE_CS.
d3d9: Don't do instanced draws in DrawPrimitive() and DrawPrimitiveUP().
wined3d: Don't skip FFP projection transform update.
wined3d: Don't override texture parameters for COND_NP2 on multisample textures.
d3d9/tests: Skip test_sample_attached_rendertarget() without pixel shaders support.
wined3d: Conditionally support WINED3D_FRAGMENT_CAP_SRGB_WRITE on the ffp fragment pipe.
wined3d: Conditionally allow sRGB writes with the 'none' shader backend.
d3d9/tests: Don't create a vertex shader in test_desktop_window() when unsupported.
d3d9/tests: Test creating a texture on a NULL HWND device.
Michael Bond (1):
shell32/shellpath: Fix UserPinned and QuickLaunch KnownFolderPaths.
Nikolay Sivov (4):
d2d1: Update to ID2D1Factory7.
d2d1: Update to ID2D1DeviceContext6.
d2d1: Update to ID2D1Device6.
d2d1: Implement newer CreateDeviceContext() methods.
Paul Gofman (12):
ntdll: Remove entries from queue in RtlWakeAddressAll().
ntdll: Pre-check entry->addr before taking a spin lock in RtlWaitOnAddress().
crypt32: Mind constructor tag in CRYPT_AsnDecodeOCSPSignatureInfoCertEncoded().
cryptnet: Do not use InternetCombineUrlW() in build_request_url().
ntdll/tests: Add tests for CONTEXT_EXCEPTION_REQUEST.
ntdll: Set exception reporting flags in NtGetContextThread().
ntdll: Store exception reporting flags in server context.
ntdll: Store exception reporting flags on suspend.
ntdll: Store exception reporting flags for debug events.
winex11.drv: Support _SHIFT_ARB attributes in X11DRV_wglGetPixelFormatAttribivARB().
ntdll: Implement NtQuerySystemInformation(SystemProcessIdInformation).
msvcrt: Implement _mbsncpy_s[_l]().
Peter Johnson (1):
wined3d: Added missing GTX 3080 & 1070M.
Piotr Caban (4):
windowscodecs: Support 32-bit ABGR bitfields bitmaps.
winhttp: Fix parameters validation in WinHttpGetProxyForUrl.
msvcr80/tests: Fix errno access in tests.
winhttp: Use GlobalAlloc to allocate lpszProxy in WinHttpGetProxyForUrl.
Roland Häder (1):
wined3d: Added missing GTX 1650.
Rémi Bernon (45):
mfreadwrite/tests: Do not accept MFVideoFormat_RGB32 in the test transform.
mfreadwrite/tests: Avoid using MFCreateMediaBufferFromMediaType.
mfreadwrite/tests: Shutdown the test stream event queues on source shutdown.
mfreadwrite/reader: Avoid leaking the stream transform service MFT.
win32u: Introduce a distinct vulkan interface between win32u and the user drivers.
win32u: Introduce a new VkSurfaceKHR wrapping structure.
winevulkan: Pass win32u surface wrappers for each vkQueuePresent swapchain.
win32u: Rename vulkan surface creation/destroy driver callbacks.
win32u: Pass HWND directly to vulkan surface creation driver callback.
win32u: Move host surface destruction out of the drivers.
win32u: Destroy thread windows before calling driver ThreadDetach.
winegstreamer: Set other aperture attributes on video media types.
winegstreamer: Always set aperture attributes on video decoder output types.
winegstreamer: Introduce a new wg_transform_create_quartz helper.
winegstreamer: Use DMO_MEDIA_TYPE in the WMV decoder.
mf/tests: Use a separate field for buffer_desc image size and compare rect.
evr/tests: Sync compare_rgb32 / dump_rgb32 helpers with mf tests.
mfmediaengine/tests: Sync compare_rgb32 / dump_rgb32 helpers with mf tests.
winegstreamer/video_processor: Allow clearing input / output types.
mf/tests: Move the video processor input bitmap names to the test list.
mf/tests: Add more video processor tests with aperture changes.
mf/session: Introduce new (allocate|release)_output_samples helpers.
mf/session: Get session topo_node from their IMFTopologyNode directly.
mf/session: Introduce new session_get_topo_node_output helper.
mf/session: Introduce new session_get_topo_node_input helper.
mf/session: Wrap samples in IMFMediaEvent list instead of IMFSample list.
mf/session: Handle transform format changes and update downstream media types.
winex11: Report all sources as detached in virtual desktop mode.
win32u: Don't force refresh the display cache on thread desktop change.
winex11: Let win32u decide when to force update the display cache.
win32u: Introduce a new add_virtual_modes helper.
win32u: Return the host surface directly from vulkan_surface_create.
winewayland: Get rid of the now unnecessary surface wrapper.
win32u: Introduce a per-window vulkan surface list.
win32u: Move thread detach from winex11.
winex11: Remove now unnecessary surface wrapper struct.
win32u: Fix list corruption in vulkan_detach_surfaces.
win32u: Remove now unnecessary rawinput_device_get_usages.
win32u: Use find_device_from_handle in process_rawinput_message.
win32u: Move rawinput device cache ticks check to rawinput_update_device_list.
winex11: Don't call x11drv_xinput2_disable for foreign windows.
winex11: Remove duplicated foreign window class string constant.
winex11: Avoid leaking foreign window data if it was already created.
mfreawrite/tests: Allow MF_E_SHUTDOWN result in test stream RequestSample.
mf/tests: Add broken result for older Windows.
Tuomas Räsänen (2):
setupapi/tests: Add tests for reading INF class with %strkey% tokens.
setupapi: Use INF parser to read class GUID and class name.
Yuxuan Shui (3):
shell32: Fix a trace log message.
shell32: Use full path to current directory for finding executables.
shell32: Restore the ability of running native unix programs with ShellExecute.
Zebediah Figura (1):
kernelbase: Do not start the debugger if SEM_NOGPFAULTERRORBOX is set.
Zhiyi Zhang (1):
win32u: Set the virtual desktop display frequency to 60Hz.
Ziqing Hui (11):
winegstreamer: Merge video_cinepak into video field.
winegstreamer: Merge video_h264 into video field.
winegstreamer: Merge video_wmv into video field.
winegstreamer: Merge video_indeo into video field.
winegstreamer: Merge video_mpeg1 into video field.
winegstreamer: Implement mf_media_type_to_wg_format_video_wmv.
winegstreamer/video_decoder: Set input/output infos in h264_decoder_create.
winegstreamer/video_decoder: Change decoder attributes.
winegstreamer/video_decoder: Add wg_transform_attrs member.
winegstreamer/video_decoder: Support aggregation.
winegstreamer/video_decoder: Use video_decoder to implement wmv decoder.
```
The Wine development release 9.7 is now available.
What's new in this release:
- Build system support for ARM64X.
- Some restructuration of the Vulkan driver interface.
- WIDL improvements for ARM support as well as SLTG typelibs.
- Various bug fixes.
The source is available at <https://dl.winehq.org/wine/source/9.x/wine-9.7.tar.xz>
Binary packages for various distributions will be available
from <https://www.winehq.org/download>
You will find documentation on <https://www.winehq.org/documentation>
Wine is available thanks to the work of many people.
See the file [AUTHORS][1] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/raw/wine-9.7/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 9.7 (total 18):
- #37246 Old C&C titles freeze after the map is loaded.
- #44699 Clang 6.0 fails to run under wine
- #44812 Multiple applications need NtQueryInformationProcess 'ProcessQuotaLimits' class support (MSYS2, ProcessHacker 2.x)
- #48080 Oregon Trail II will not start in 32-bit mode
- #50111 osu! crashes since 20201110 version with wine-mono (needs native -> managed byref array marshalling)
- #54759 Notepad++: slider of vertical scrollbar is too small for long files
- #54901 Medieval II Total War some units partly invisible with d3dx9_30 as builtin
- #55765 The 32-bit d2d1:d2d1 frequently crashes on the GitLab CI
- #56133 explorer.exe: Font leak when painting
- #56361 Geovision Parashara's Light (PL9.exe) still crashes in wine
- #56369 Advanced IP Scanner crashes on unimplemented function netapi32.dll.NetRemoteTOD
- #56442 Totem Arts Launcher.exe garbled text
- #56491 Videos in BURIKO visual novel engine
- #56493 PresentationFontCache.exe crashes during .Net 3.51 SP1 installation
- #56536 UI: Applications using ModernWPF crash, Windows.Ui.ViewManagment.InputPane.TryShow not implemented
- #56538 Mspaint from Windows XP needs imm32.CtfImmIsCiceroEnabled
- #56551 HP System Diagnostics crashes when clicking the Devices tab
- #56554 ON1 photo raw installs but wont run the application
### Changes since 9.6:
```
Alex Henrie (2):
win32u: Also reset the unnamed values in prepare_devices.
explorer: Fix font handle leaks in virtual desktop.
Alexandre Julliard (16):
winhttp/tests: Fix some compiler warnings with non-PE build.
widl: Pass 16-byte structures by value on ARM64.
widl: Only pass power of 2 structures by value on x86-64.
widl: Correctly align stack parameters on ARM.
widl: Don't use a structure for NdrClientCall2 parameters on ARM.
widl: Output register parameter assignments on ARM platforms.
widl: Clear RobustEarly flag also for data structure conformance.
rpcrt4/tests: Add some more parameter passing tests.
rpcrt4: Export NdrpClientCall2.
rpcrt4: Implement NdrClientCall2 in assembly on all platforms.
rpcrt4: Implement NdrClientCall3 in assembly on all platforms.
rpcrt4: Implement NdrAsyncClientCall in assembly on all platforms.
rpcrt4: Implement Ndr64AsyncClientCall in assembly on all platforms.
rpcrt4: Support calling server functions with floating point arguments on ARM platforms.
widl: Use x64 calling convention for ARM64EC.
rpcrt4: Leave some space on the stack for varargs when called from ARM64EC code.
Alfred Agrell (8):
winegstreamer: Create decodebin instead of avidemux.
winegstreamer: Use decodebin instead of wavparse.
winegstreamer: Delete now-meaningless wg_parser_type enum.
winegstreamer: Reduce CLSID_decodebin_parser merit, so the MPEG splitter is chosen instead for MPEGs.
quartz/tests: Test that compressed formats are offered for MPEGs.
quartz: Fix error code on empty filename.
quartz/tests: Test the new error codes.
quartz: Fix memory leak on failure path.
Brendan Shanks (4):
winecoreaudio: Correctly handle devices whose UID contains non-ASCII characters.
dxgi: Add IDXGISwapChain2 stubs for D3D11.
dxgi: Add IDXGISwapChain3 stubs for D3D11.
dxgi: Add IDXGISwapChain4 stubs for D3D11.
Dmitry Timoshkov (4):
widl: In old style typelibs all types are public.
widl: Add support for recursive type references to SLTG typelib generator.
widl: Add support for interfaces to SLTG typelib generator.
widl: Add support for inherited interfaces to SLTG typelib generator.
Eric Pouech (10):
msvcrt/tests: Add tests for check buffering state of standard streams.
ucrtbase/tests: Add tests for checking buffering state of standard streams.
ucrtbase: Let stderr be always be unbuffered.
dbghelp: Test thread names in minidump.
dbghelp: Store thread names in minidump.
winedump: Add helpers to print DWORD64 integers.
winedump: Simplify unicode string printing (minidump).
winedump: Support a couple of 'section' options (minidump).
winedump: Tidy up dumping minidump.
winedump: Extend dumping of some minidump parts.
Fabian Maurer (1):
imm32: Add CtfImmIsCiceroEnabled stub.
Hans Leidekker (4):
msi/tests: Use the helpers from utils.h in more modules.
msi/tests: Try restarting tests elevated.
msi/tests: Get rid of workarounds for old Windows versions.
msi: Install global assemblies before running deferred custom actions.
Isaac Marovitz (1):
ntdll: Implement NtQueueApcThreadEx().
Jacek Caban (5):
winebuild: Add -marm64x option for generating hybrid ARM64X import libraries.
winegcc: Pass target and resources as arguments to build_spec_obj.
winegcc: Add -marm64x option for linking ARM64X images.
makedep: Use hybrid ARM64X images for ARM64EC.
ntdll: Use mangled function names in ARM64EC assembly.
Jinoh Kang (3):
kernel32/tests: Test module refcounting with forwarded exports.
kernel32/tests: Fix argument order in subtest_export_forwarder_dep_chain() calls.
kernel32/tests: Document which fields may be overwritten later in gen_forward_chain_testdll().
Liam Middlebrook (1):
krnl386.exe: Start DOSVM timer on GET_SYSTEM_TIME.
Mohamad Al-Jaf (1):
windows.ui: Return success in IInputPane2::TryShow().
Nikolay Sivov (6):
d2d1/effect: Zero value buffer on size or type mismatch.
d2d1/tests: Use distinct types for vector and matrix values.
d2d1/effect: Make it possible to set render info for draw-transform nodes.
d2d1: Implement GetEffectProperties().
d2d1/effect: Add 'Rect' property to the Crop effect description.
d2d1: Fix GetPropertyNameLength() return value.
Paul Gofman (9):
winhttp: Set actual default receive response timeout to 21sec.
winhttp/tests: Add some tests for actual connection caching.
winhttp: Do not cache connection if suggested by request headers.
wow64: Support generic xstate in call_user_exception_dispatcher().
ntdll: Preserve untouched parts of xstate in set_thread_wow64_context().
winegstreamer: Try to handle broken IStream_Stat implementation in WM reader OpenStream().
mmdevapi: Implement SAC_IsAudioObjectFormatSupported().
winegstreamer: Destroy wg_transform in video_decoder/transform_SetInputType().
ntdll: Return STATUS_NO_YIELD_PERFORMED from NtYieldExecution() on Linux if no yield was performed.
Piotr Caban (1):
gdiplus: Fix IWICBitmapFrameDecode reference leak in decode_frame_wic.
Rémi Bernon (27):
include: Add MFTOPOLOGY_DXVA_MODE enum definition.
mf/tests: Fix printf format warning.
mf/tests: Split topology loader tests to a new file.
mf/tests: Test D3D awareness handling in the topology loader.
mf/tests: Test device manager handling in the topology loader.
mfmediaengine/tests: Test that effects allow converters between them.
mfmediaengine: Allow decoder / converter to be resolved between topology nodes.
winevulkan: Add a manual vkQueuePresent wrapper.
winevulkan: Move vkQueuePresent FPS trace out of the drivers.
winevulkan: Return VK_SUBOPTIMAL_KHR from vkQueuePresentKHR after resize.
winevulkan: Return VK_SUBOPTIMAL_KHR from vkAcquireNextImage(2)KHR after resize.
winevulkan: Remove unnecessary vkGetSwapchainImagesKHR driver entry.
winevulkan: Pass surface info for each vkQueuePresent swapchain to win32u.
win32u: Introduce a new vulkan_surface_presented driver entry.
winewayland: Remove now unnecessary swapchain extents checks.
winewayland: Remove now unnecessary swapchain wrapper.
win32u: Move vkQueuePresent implementation out of the user drivers.
winevulkan: Remove now unnecessary vkDestroySwapchain driver entry.
winevulkan: Remove now unnecessary vkCreateSwapchainKHR driver entry.
win32u: Close device manager source key in write_source_to_registry.
win32u: Remove fake source creation when adding display mode.
win32u: Keep the primary current mode in the device manager context.
win32u: Add all display device source modes at once.
winegstreamer: Introduce a new set_sample_flags_from_buffer helper.
winegstreamer: Introduce a new sample_needs_buffer_copy helper.
winegstreamer: Split read_transform_output_data in two helpers.
winegstreamer: Pass optional GstVideoInfo to read_transform_output_video.
Sam Joan Roque-Worcel (1):
win32u: Make SCROLL_MIN_THUMB larger.
Tim Clem (1):
winemac.drv: Hide app's dock icon when it wouldn't have a taskbar item on Windows.
Vijay Kiran Kamuju (4):
mscms: Add stub for WcsGetDefaultColorProfile.
ntdll: Add NtQueryInformationProcess(ProcessQuotaLimits) stub.
ntdll/tests: Add NtQueryInformationProcess(ProcessQuotaLimits) tests.
netapi32: Add NetRemoteTOD stub.
Zebediah Figura (4):
wined3d: Enable EXT_extended_dynamic_state3.
wined3d: Use dynamic state for multisample state if possible.
wined3d: Use dynamic state for blend state if possible.
wined3d: Use dynamic state for rasterizer state if possible.
Zhiyi Zhang (4):
opengl32/tests: Add default framebuffer tests.
winemac.drv: Update OpenGL context immediately after the window content view is visible.
uxtheme/tests: Test that scrollbar parts should have very few #ffffff pixels.
light.msstyles: Use #fefefe instead of #ffffff for scrollbar parts.
Ziqing Hui (3):
winegstreamer: Merge audio_mpeg1 into audio field.
winegstreamer: Merge audio_mpeg4 into audio field.
winegstreamer: Merge audio_wma into audio field.
```
The Wine development release 9.6 is now available.
What's new in this release:
- Support for advanced AVX features in register contexts.
- More Direct2D effects work.
- Support for RSA OAEP padding in BCrypt.
- Interpreted mode fixes in WIDL.
- Various bug fixes.
The source is available at <https://dl.winehq.org/wine/source/9.x/wine-9.6.tar.xz>
Binary packages for various distributions will be available
from <https://www.winehq.org/download>
You will find documentation on <https://www.winehq.org/documentation>
Wine is available thanks to the work of many people.
See the file [AUTHORS][1] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/raw/wine-9.6/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 9.6 (total 18):
- #20694 Mozart 10/11: Cannot save gif jpg or tiff, png + bmp are empty, emf only partial.
- #26372 TI-83 Plus Flash Debugger buttons are not visible
- #28170 "Text Service and Input Languages" needs unimplemented function USER32.dll.LoadKeyboardLayoutEx called
- #41650 SolidWorks 2016 crashes on launch
- #43052 ChessBase 14 - crashes right after start
- #46030 Trackmania Unlimiter 1.3.x for TrackMania United Forever 2.11.26 crashes at account selection screen (heap manager differences, incorrect assumptions of mod on internal game engine data structures)
- #47170 nProtect GameGuard Personal/Anti-Virus/Spyware 3.x/4.x kernel drivers crash due to 'winedevice' PE module having no export table
- #49089 nProtect Anti-Virus/Spyware 4.0 'tkpl2k64.sys' crashes on unimplemented function 'fltmgr.sys.FltBuildDefaultSecurityDescriptor'
- #50296 Multiple 32-bit applications fail due to incorrect handling of 'HKLM\\Software\\Classes' key in 64-bit WINEPREFIX (shared key under Windows 7+ WOW64)(Autocad 2005)
- #53810 [Regression] Visual Novel Shin Koihime Eiyuutan crashes after opening movie plays
- #54378 VrtuleTree calls unimplemented function ntoskrnl.exe.ExGetPreviousMode
- #56188 d2d1:d2d1 frequently fails on the GitLab CI
- #56376 Nerf Arena Blast Demo only displays a black screen
- #56394 Final Fantasy XI Online: Mouse/pointer cursor activates at unintended times.
- #56438 Multiple games have texture glitches (Iron Harvest, The Hong Kong Massacre)
- #56469 configure incorrectly setting ac_cv_lib_soname_vulkan value on macOS
- #56487 wshom tests timeout on Wine
- #56503 CryptStringToBinary doesn't adds CR before pad bytes in some cases
### Changes since 9.5:
```
Aida Jonikienė (2):
wbemprox: Stub most of the Win32_VideoController properties.
sapi: Only print GetStatus() FIXME once.
Alexandre Julliard (21):
ntdll: Copy the context contents instead of the pointer on collided unwind.
ntdll: Use a common wrapper to call exception handlers on x86-64.
ntdll: Use a common wrapper to call unwind handlers on x86-64.
wshom.ocx: Don't show a message box on ShellExecute error.
widl: Don't skip a pointer level for pointers to pointers to strings.
include: Fix a parameter type in the IEnumTfUIElements interface.
idl: Use IPSFactoryBuffer instead of a non-existent IFactoryBuffer.
widl: Merge interpreted stubs header and parameters output into a single function.
widl: Don't output the explicit handle argument.
widl: Fix method number for call_as functions.
rpcrt4: Return the correct failure for a NULL binding handle.
rpcrt4: Make sure that the stack is set when catching an exception.
msi/tests: Delete the temp .msi file in all failure cases.
widl: Always use new-style format strings in interpreted mode.
widl: Add /robust flags in correlation descriptors.
widl: Output more correct /robust flags.
widl: Use the correct type for non-encapsulated union discriminants.
widl: Always pass the top-level attributes to detect interface pointers.
widl: Use padding instead of alignment in structure format strings.
widl: Clear /robust flags when no descriptor is present.
widl: Map VT_USERDEFINED to VT_I4 for default values in typelibs.
Alistair Leslie-Hughes (6):
fltmgr.sys: Implement FltBuildDefaultSecurityDescriptor.
fltmgr.sys: Create import library.
ntoskrnl/tests: Add FltBuildDefaultSecurityDescriptor test.
include: Add STORAGE_HOTPLUG_INFO structure.
include: Add some DWMWA_* enum values.
include: Add more DBCOLUMN_ defines.
Aurimas Fišeras (2):
po: Update Lithuanian translation.
po: Update Lithuanian translation.
Brendan Shanks (10):
mmdevapi: Make IMMDeviceCollection immutable after creation.
ntdll: Simplify creation of the server directory.
server: Simplify creation of the server directory.
server: Replace some malloc/sprintf/strcpy calls with asprintf.
server: Replace sprintf with snprintf to avoid deprecation warnings on macOS.
server: Clarify that registry files are always in the current directory, and simplify save_branch().
win32u: Enlarge buffer size in _CDS_flags.
win32u: Enlarge buffer size in format_date.
win32u: Use PATH_MAX for Unix paths instead of MAX_PATH (from Win32).
win32u: Replace sprintf with snprintf to avoid deprecation warnings on macOS.
Dmitry Timoshkov (6):
windowscodecs: Silence fixme for IID_CMetaBitmapRenderTarget.
widl: Use generic 'struct sltg_data' for collecting data.
widl: Add more traces.
widl: Add support for structures.
widl: Properly align name table entries.
widl: Add support for VT_USERDEFINED to SLTG typelib generator.
Eric Pouech (4):
evr: Remove useless code.
evr: Fix YUY2 image copy in evr_copy_sample_buffer().
cmd: Add test for substring handling in 'magic' variable expansion.
cmd: Fix substring expansion for 'magic' variables.
Esme Povirk (1):
user32/tests: Revert test updates for win11.
Hans Leidekker (6):
bcrypt: Add support for RSA OAEP padding.
wbemprox: Zero-initialize table data.
wmic: Make an error message more general.
wmic: Strip spaces once.
wmic: Handle failure from CommandLineToArgvW().
wmic: Handle multiple properties separated by whitespace.
Jacek Caban (2):
ntdll: Use __ASM_GLOBAL_IMPORT for RtlUnwind.
widl: Don't use old typelib format in do_everything mode.
Louis Lenders (2):
wmic: Support interactive mode and piped commands.
wbemprox: Add property 'Status' to Win32_BIOS.
Nikolay Sivov (22):
dwrite/shape: Fully initialize shaping context when getting glyph positions (Valgrind).
d2d1: Fix a double free on error path (Valgrind).
gdi32/emf: Zero-initialize handles array (Valgrind).
d3d10: Use older compiler for D3D10CompileEffectFromMemory().
d3d10/tests: Add a test for effect compilation containing empty buffers.
d2d1/tests: Get rid of test shader blobs.
d2d1/effect: Use effect property types identifier directly in initializers.
d2d1/effect: Use a helper internally instead of IsShaderLoaded().
d2d1/tests: Add a test for a custom effect using a pixel shader.
d2d1/tests: Add a basic test for ID2D1DrawInfo instance.
d2d1/tests: Add a test for transform graph input count.
d2d1/effect: Keep input count as a graph property when recreating it.
d2d1/effect: Implement offset transform object.
d2d1/effect: Implement blend transform object.
d2d1/effect: Implement node list for the transform graph.
d2d1/effect: Implement ConnectToEffectInput().
d2d1/effect: Implement SetOutputNode().
d2d1/effect: Implement SetSingleTransformNode().
d2d1/effect: Fix property value size for empty or missing string values.
d2d1/effect: Implement border transform object.
d2d1/effect: Implement bounds adjustment transform.
d2d1/tests: Add supported interface checks for transform objects.
Paul Gofman (23):
ntdll: Only save AVX xstate in wine_syscall_dispatcher.
ntdll: Preserve untouched parts of xstate in NtSetContextThread().
ntdll: Support generic xstate in Unix-side manipulation functions.
ntdll: Factor out xstate_from_server() function.
ntdll: Factor out context_to_server() function.
ntdll: Mind generic xstate masks in server context conversion.
ntdll: Support more xstate features.
ntdll/tests: Add more tests for xstate.
windows.perception.stub: Add stub IHolographicSpaceInterop interface.
wintypes: Report some API contracts as present in api_information_statics_IsApiContractPresentByMajor().
ddraw: Store material handles in the global table.
ddraw: Store surface handles in the global table.
ddraw: Store matrix handle in the global table.
ddraw: Don't apply state in ddraw_surface_blt().
wined3d: Factor out wined3d_texture_set_lod() function.
ddraw: Store wined3d state in d3d_device.
ddraw: Sync wined3d render target in d3d_device_sync_rendertarget().
ddraw: Support multiple devices per ddraw object.
ddraw/tests: Add tests for multiple devices.
win32u: Avoid writing past allocated memory in peek_message().
win32u: Avoid leaking previous buffer in get_buffer_space().
ddraw: Don't demand WINED3D_BIND_SHADER_RESOURCE for making surface in vidmem.
avifil32: Update lCurrentFrame in IGetFrame_fnGetFrame().
Piotr Caban (1):
gdi32: Implicitly call StartPage in ExtEscape on printer DC.
Rémi Bernon (35):
configure: Quote ac_cv_lib_soname_MoltenVK when setting SONAME_LIBVULKAN.
mf/tests: Check that pan scan and geometric apertures are set.
evr/tests: Split create_d3d_sample to a separate helper.
evr/tests: Split check_presenter_output to a separate helper.
evr/tests: Add more video mixer input media type aperture tests.
evr/mixer: Respect input media type MF_MT_GEOMETRIC_APERTURE.
win32u: Open adapters in NtGdiDdDDIEnumAdapters2 outside of the display devices lock.
winex11: Initialize D3DKMT vulkan instance only once.
winex11: Introduce a new get_vulkan_physical_device helper.
winex11: Introduce a new find_adapter_from_handle helper.
win32u: Move D3DKMT vulkan implementation out of winex11.
winegstreamer: Set GST_DEBUG if not set, based on WINEDEBUG channels.
win32u: Split writing adapter to registry to a separate helper.
win32u: Use a symlink for the logically indexed adapter config key.
win32u: Use named adapters instead of struct gdi_adapter.
win32u: Rename struct adapter to struct source.
winevulkan: Strip surface extensions in vkEnumerateInstanceExtensionProperties.
winevulkan: Remove now unnecessary vkEnumerateInstanceExtensionProperties driver entry.
winevulkan: Introduce a new get_host_surface_extension driver entry.
winevulkan: Remove now unnecessary vkCreateInstance driver entry.
winevulkan: Remove now unnecessary vkDestroyInstance driver entry.
winegstreamer: Create the transform parsed caps from wg_format.
winegstreamer: Fallback to input caps only when no parser was found.
mf/session: Avoid leaking samples in transform_node_deliver_samples.
mfreadwrite/reader: Use MFTEnumEx to enumerate stream transforms.
mfreadwrite/reader: Make the GetTransformForStream category parameter optional.
mfreadwrite/tests: Test the source reader stream change events.
mfreadwrite/tests: Test the D3D awareness of source reader transforms.
mfreadwrite/reader: Avoid accessing an invalid stream index.
mfreadwrite/reader: Keep the output subtypes when propagating media types.
winex11: Keep the client window colormap on the GL drawable.
winex11: Get rid of ref held from the HWND to its Vk surface.
winex11: Introduce a new detach_client_window helper.
winex11: Introduce a new destroy_client_window helper.
winex11: Introduce a new attach_client_window helper.
Santino Mazza (1):
crypt32: Fix CryptBinaryToString not adding a separator.
Tuomas Räsänen (1):
winebus: Ignore udev events of devices which do not have devnodes.
Zebediah Figura (11):
d3d11/tests: Test discarding a buffer in test_high_resource_count().
wined3d: Recreate buffer textures when renaming the existing buffer storage.
wined3d: Skip bindless samplers with no uniform location.
wined3d: Enable EXT_extended_dynamic_state2.
wined3d: Use dynamic state for primitive type if possible.
wined3d: Use dynamic state for patch vertex count if possible.
wined3d: Require EXT_framebuffer_object.
wined3d: Remove the OffscreenRenderingMode setting.
wined3d: Require GLSL 1.20 support.
wined3d: Remove the "arb" and "none" shader_backend options.
wined3d: Require ARB_texture_non_power_of_two.
Zhiyi Zhang (6):
mfmediaengine: Implement IMFMediaEngineEx::SetCurrentTime().
mfmediaengine: Implement IMFMediaEngineEx::SetCurrentTimeEx().
mfmediaengine/tests: Test IMFMediaEngineEx::SetCurrentTime/Ex().
gdiplus/tests: Add tests for GdipPrivateAddMemoryFont().
gdiplus: Search microsoft platform names first in load_ttf_name_id().
winemac.drv: Show the window after setting layered attributes.
```
The Wine development release 9.5 is now available.
What's new in this release:
- Initial SLTG-format typelib support in widl.
- Exception handling on ARM64EC.
- Improvements to Minidump support.
- Various bug fixes.
The source is available at <https://dl.winehq.org/wine/source/9.x/wine-9.5.tar.xz>
Binary packages for various distributions will be available
from <https://www.winehq.org/download>
You will find documentation on <https://www.winehq.org/documentation>
Wine is available thanks to the work of many people.
See the file [AUTHORS][1] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/raw/wine-9.5/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 9.5 (total 27):
- #25207 SHFileOperation does not create new directory on FO_MOVE
- #29523 CDBurnerXP hangs on right-clicking empty space in the file browser
- #40613 Multiple applications require UAC implementation to run installer/app as a normal user instead of administrator (WhatsApp Desktop, Smartflix, Squirrel Installers, OneDrive)
- #44514 Elder Scrolls Online (Dragon Bones update) requires more than 32 samplers in pixel shaders with D3D11 renderer
- #45862 Multiple applications need MFCreateSinkWriterFromURL() implementation (Overwatch highlights, RadiAnt DICOM Viewer, Grand Theft Auto V Rockstar Editor)
- #48085 Wine error trying to install Mono after a version update
- #51957 Program started via HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths should also be started if extension ".exe" is missing
- #52352 YI Home installer crashes on unimplemented urlmon.dll.414
- #52622 windows-rs 'lib' test crashes on unimplemented function d3dcompiler_47.dll.D3DCreateLinker
- #53613 Visual novel RE:D Cherish! logo video and opening movie does not play
- #53635 Alune Klient 14.03.2022 crashes on unimplemented function urlmon.dll.414
- #54155 WeCom (aka WeChat Work) 4.x failed to launch.
- #55421 Fallout Tactics launcher has graphics glitches
- #55876 Acrom Controller Updater broken due to oleaut32 install
- #56318 Totem Arts Launcher.exe does not open
- #56367 Tomb Raider 3 GOG crashes at start
- #56379 d2d1 unable to build
- #56380 Rocket League crashes with Wine 9.3 after BakkesMod (trainer app) injects into the game
- #56400 SSPI authentication does not work when connecting to sql server
- #56406 wineserver crashes in set_input_desktop()
- #56411 Failure to build wine 9.4 due to EGL 64-bit development files not found
- #56433 QQ8.9.6 Installer crashes at very beginning due to a change in server/process.c
- #56434 WScript.Network does not implement UserName, ComputerName, and UserDomain properties
- #56435 capture mouse dont work in virtual desktop (work on wine 9.3)
- #56445 d3d1-9 applications run out of memory after f6a1844dbe (ArmA: Cold War Assault, Final Fantasy XI Online, Far Cry 3)
- #56450 Non-input USB HID devices stopped working in 9.1
- #56458 ntdll tests skipped on win7 & win8: missing entry point kernel32.RtlPcToFileHeader
### Changes since 9.4:
```
Akihiro Sagawa (2):
dsound/tests: Add tests for implicit MTA creation in IDirectSound::Initialize().
dsound: Initialize MTA in IDirectSound::Initialize().
Alexandre Julliard (42):
configure: Check the correct variable for the Wayland EGL library.
ntdll: Implement RtlRestoreContext on ARM64EC.
ntdll: Implement RtlWalkFrameChain on x86-64.
ntdll: Implement RtlWalkFrameChain on i386.
ntdll: Implement RtlWalkFrameChain on ARM.
ntdll: Implement RtlWalkFrameChain on ARM64.
ntdll: Implement RtlWalkFrameChain on ARM64EC.
ntdll: Export RtlVirtualUnwind2 and RtlWalkFrameChain.
ntdll: Share RtlCaptureStackBackTrace implementation across platforms.
secur32/tests: Update count for new winehq.org certificate.
ws2_32/tests: Fix a couple of failures on Windows.
include: Define setjmpex prototype even when it's a builtin.
ntdll/tests: Directly link to setjmp().
ntdll/tests: Fix a backtrace test failure on Windows ARM64.
ntdll: Add test for non-volatile regs in consolidated unwinds.
ntdll: Port the RtlRestoreContext test to ARM64.
ntdll: Port the RtlRestoreContext test to ARM.
ntdll: Implement RtlUnwindEx on ARM64EC.
ntdll: Move __C_specific_handler implementation to unwind.c.
ntdll: Implement __C_specific_handler on ARM64EC.
ntdll: Always use SEH support on ARM64.
ntdll/tests: Skip segment register tests on ARM64EC.
ntdll/tests: Fix debug register tests on ARM64EC.
ntdll/tests: Fix a few more test failures on ARM64EC.
ntdll: Implement RtlGetCallersAddress.
kernelbase: Remove no longer needed DllMainCRTStartup function.
include: Add some new error codes.
include: Add some new status codes.
ntdll: Add mappings for more status codes.
jscript: Use the correct facility for JScript errors.
netprofm: Use the correct symbols for error codes.
msvcrt: Use floating point comparison builtins also in MSVC mode.
ntdll/tests: Fix exception address checks in child process on ARM64EC.
ntdll/tests: Update the KiUserExceptionDispatcher test for ARM64EC.
configure: Don't build wow64 support in non-PE builds.
wow64: Use a .seh handler in raise_exception().
wow64: Always use a .seh handler in cpu_simulate().
wow64: Access the BTCpuSimulate backend function pointer directly.
wow64: Use a .seh handler for system calls.
wow64cpu: Save non-volatile registers before switching to 32-bit code.
wow64: Use setjmp/longjmp from ntdll.
server: Add a helper to trace uint64 arrays.
Alexandros Frantzis (5):
winewayland.drv: Implement wglCreateContextAttribsARB.
winewayland.drv: Implement wglShareLists.
winewayland.drv: Implement wgl(Get)SwapIntervalEXT.
win32u: Cancel auto-repeat only if the repeat key is released.
win32u: Cancel previous key auto-repeat when starting a new one.
Andrew Nguyen (3):
ddraw: Reserve extra space in the reference device description buffer.
oleaut32: Bump version resource to Windows 10.
ddraw: Release only valid texture parents on ddraw_texture_init failure.
Andrew Wesie (1):
wined3d: Use bindless textures for GLSL shaders if possible.
Brendan McGrath (5):
comdlg32: Use values from DeviceCapabilities in combobox.
comdlg32: Add resolutions to PRINTDLG_ChangePrinterW.
comdlg32: Populate printer name on the print dialogs.
comdlg32: Use ANSI functions in ANSI WMCommandA.
comdlg32: Don't treat cmb1 as the printer list unless in PRINT_SETUP.
Brendan Shanks (6):
ntdll: Remove support for msg_accrights FD passing.
server: Remove support for msg_accrights FD passing.
mountmgr: Replace sprintf with snprintf to avoid deprecation warnings on macOS.
mountmgr: Replace some malloc/sprintf/strcpy calls with asprintf.
opengl32: Replace sprintf with snprintf/asprintf to avoid deprecation warnings on macOS.
secur32: Replace sprintf with snprintf to avoid deprecation warnings on macOS.
Daniel Lehman (2):
oleaut32/tests: Add tests for GetSizeMax after dirty flag cleared.
oleaut32: Return success from GetSizeMax if not dirty.
David Gow (1):
evr/dshow: Support NV12 in evr_render.
David Heidelberg (2):
d3d9/tests: Replace LPDWORD cast with float_to_int function.
mailmap: Add a mailmap entry for myself with the proper name.
Dmitry Timoshkov (6):
d2d1: Make some strings const.
wineps.drv: Return default resolution if PPD doesn't provide the list of supported resolutions.
kerberos: Allocate memory for the output token if requested.
comctl32/tests: Add more tests for IImageList2 interface.
comctl32: Implement IImageList2::Initialize().
widl: Add initial implementation of SLTG typelib generator.
Eric Pouech (18):
include: Update minidumpapiset.h.
dbghelp/tests: Add tests for minidumps.
dbghelp/tests: Add tests about generated memory chunks.
dbghelp/tests: Add tests about minidump's callback.
dbghelp/tests: Test exception information in minidump.
dbghelp/tests: Add tests for function table lookup.
dbghelp: Use an intermediate buffer in SymFunctionTableAccess (x86_64).
dbghelp: Don't write minidump from running thread.
dbghelp: Simplify thread info generation in minidump.
dbghelp: Add support for V2 unwind info (x86_64).
winedbg: Fallback to PE image when reading memory (minidump).
winedbg: Reload module without virtual flag.
dbghelp: No longer embed unwind information in minidump (x86_64).
winedbg: Add ability to set executable name.
winedbg: Extend 'attach' command to load minidump files.
winedbg: Flush expr buffer upon internal exception.
winedbg: Update the CPU information displayed when reloading a minidump.
winedbg: Don't reload a minidump for a different machine.
Esme Povirk (7):
user32/tests: Accept HCBT_ACTIVATE in TrackPopupMenu.
gdiplus: Check bounding box in GdipIsVisibleRegionPoint.
user32/tests: Add another missing message for TrackPopupMenu.
gdiplus/tests: Region bounds aren't rounded.
gdiplus: Calculate region bounding box without generating HRGN.
user32/tests: Accept WM_ACTIVATE in TrackPopupMenu.
user32/tests: Further updates for win11 TrackPopupMenu failures.
Gabriel Ivăncescu (1):
shell32: Construct the proper path target for UnixFolder.
Giovanni Mascellani (1):
d2d1: Compile the pixel shader with D3DCompile().
Hans Leidekker (3):
dnsapi/tests: Skip tests if no CNAME records are returned.
ntdll/tests: Fix a test failure.
ntdll/tests: Load NtMakeTemporaryObject() dynamically.
Henri Verbeet (1):
wined3d: Do not check the input signature element count for sm4+ shaders in shader_spirv_compile_arguments_init().
Jacek Caban (2):
configure: Don't explicitly enable -Wenum-conversion on Clang.
widl: Always close parsed input file.
Jinoh Kang (10):
tools/gitlab: Run make_specfiles before building.
ntdll/tests: Add tests for OBJ_PERMANENT object attribute.
ntdll/tests: Add tests for NtMakeTemporaryObject.
server: Generalize server request make_temporary to set_object_permanence.
ntdll: Implement NtMakePermanentObject.
ntdll/tests: Don't import kernel32.RtlPcToFileHeader.
Revert "ntdll/tests: Load NtMakeTemporaryObject() dynamically."
server: Check for DELETE access in NtMakeTemporaryObject().
kernelbase: Open object with DELETE access for NtMakeTemporaryObject().
gitlab: Output collapsible section markers in test stage script.
Kyrylo Babikov (1):
dbghelp: Fix PDB processing using the FPO stream instead of FPOEXT.
Louis Lenders (1):
shell32: Try appending .exe when looking up an App Paths key.
Marcus Meissner (1):
ntdll/tests: Fix size passed to GetModuleFileNameW.
Mark Jansen (1):
kernel32/tests: Add tests for job object accounting.
Nikolay Sivov (16):
include: Add ID2D1Factory7 definition.
include: Add ID2D1DeviceContext6 definition.
d3dcompiler: Set correct compilation target for effects profiles.
d3dcompiler: Wrap fx_4_x output in a dxbc container.
d3d10/tests: Add a small effect compilation test.
wshom/network: Use TRACE() for implemented method.
wshom/network: Implement GetTypeInfo().
wshom/network: Implement ComputerName() property.
wshom/network: Check pointer argument in get_UserName().
d3dx10/tests: Remove todo's from now passing tests.
d3d10_1/tests: Remove todo from now passing test.
wshom/network: Implement UserDomain property.
msxml6/tests: Add some tests for MXWriter60.
msxml/tests: Move some of the validation tests to their modules.
msxml/tests: Move version-specific schema tests to corresponding modules.
include: Remove XMLSchemaCache60 from msxml2.idl.
Noah Berner (1):
advapi32/tests: Add todo_wine to tests that are currently failing.
Paul Gofman (11):
imm32: Set lengths to 0 for NULL strings in ImmSetCompositionString().
cryptowinrt: Force debug info in critical sections.
diasymreader: Force debug info in critical sections.
dsdmo: Force debug info in critical sections.
qasf: Force debug info in critical sections.
services: Force debug info in critical sections.
explorer: Force debug info in critical sections.
ntdll: Only allocate debug info in critical sections with RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO.
server: Ignore some ICMP-originated socket errors for connectionless sockets.
strmbase: Fallback to InitializeCriticalSection() if RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO is unsupported.
ntdll: Don't use debug info presence to detect critical section global status.
Pavel Ondračka (1):
d3d9/tests: Define enums outside of struct.
Piotr Caban (6):
ntdll: Workaround sendmsg bug on macOS.
winedump: Fix REG_DWORD dumping with no data.
advapi32/tests: Merge RegLoadKey and RegUnLoadKey tests.
advapi32/tests: Remove all files created by RegLoadKey tests.
advapi32/tests: Test if modifications are saved in RegUnLoadKey.
advapi32/tests: Remove all files created by RegLoadAppKey tests.
Robin Kertels (1):
d3d9/tests: Skip desktop window tests if device creation fails.
Rémi Bernon (74):
win32u: Move D3DKMT functions to a new d3dkmt.c source.
win32u: Move D3DKMT VidPn* functions out of winex11.
win32u: Add an adapter struct to the device manager context.
win32u: Split writing monitor to registry to a separate helper.
win32u: Get rid of the monitor display_device.
win32u: Get rid of the monitor state_flags.
win32u: Get rid of the adapter display_device.
win32u: Get rid of the monitor flags.
win32u: Enumerate monitors from their device keys.
mfreadwrite/reader: Handle MF_E_TRANSFORM_STREAM_CHANGE results.
win32u: Fix incorrect ascii key name in get_config_key.
winevulkan: Use an rb_tree and allocate entries for handle mappings.
winevulkan: Use a single allocation for device and queues.
winevulkan: Pass VkDeviceQueueCreateInfo to wine_vk_device_init_queues.
winevulkan: Rename wine_vk_physical_device_alloc parameters and variables.
winevulkan: Use a single allocation for instance and physical devices.
winevulkan: Get rid of the wine_vk_device_free helper.
winevulkan: Simplify wine_vk_instance_free helper.
winevulkan: Add handle mappings on creation success only.
winevulkan: Get rid of the wine_vk_instance_free helper.
mfplat/tests: Test each VIDEOINFOHEADER field conversion separately.
mfplat/mediatype: Implement implicit MFInitMediaTypeFromVideoInfoHeader subtype.
mfplat/mediatype: Implement MFInitMediaTypeFromVideoInfoHeader2.
mfplat/tests: Add tests for MFInitMediaTypeFromVideoInfoHeader2.
mfplat/mediatype: Implement MFInitAMMediaTypeFromMFMediaType for FORMAT_VideoInfo2.
mfplat/tests: Test aperture to VIDEOINFOHEADER fields mapping.
mfplat/mediatype: Support FORMAT_VideoInfo2 in MFInitMediaTypeFromAMMediaType.
mfplat/mediatype: Set MF_MT_SAMPLE_SIZE from bmiHeader.biSizeImage.
mfplat/mediatype: Map rcSource to MF_MT_(PAN_SCAN|MINIMUM_DISPLAY)_APERTURE.
mfplat/mediatype: Set rcSource and rcTarget if stride differs from width.
mfplat/tests: Add more MFAverageTimePerFrameToFrameRate tests.
mfplat: Support flexible frame time in MFAverageTimePerFrameToFrameRate.
mfplat/mediatype: Implement MF_MT_FRAME_RATE from VIDEOINFOHEADER2.
mfplat/mediatype: Implement VIDEOINFOHEADER2 dwControlFlags conversion.
mfplat/mediatype: Implement some VIDEOINFOHEADER2 dwInterlaceFlags conversion.
mfplat/tests: Test that aperture is dropped with VIDEOINFOHEADER2.
mfplat/tests: Test that MFCreateMFVideoFormatFromMFMediaType appends user data.
mfplat/mediatype: Append user data in MFCreateMFVideoFormatFromMFMediaType.
mfplat/tests: Check the conditions for the MFVideoFlag_BottomUpLinearRep flags.
mfplat/mediatype: Stub MFInitMediaTypeFromMFVideoFormat.
mfplat/tests: Add tests for MFInitMediaTypeFromMFVideoFormat.
mfplat/mediatype: Implement MFInitMediaTypeFromMFVideoFormat.
winebus: Add HID usages in the device descriptor when possible.
winebus: Read hidraw device usages from their report descriptors.
winebus: Prefer hidraw for everything that is not a game controller.
winebus: Remove devices that are ignored wrt hidraw preferences.
winevulkan: Allow only one vulkan surface at a time for an HWND.
win32u: Avoid a crash when cleaning up a monitor without an adapter.
winegstreamer: Release sink caps in the error path.
winegstreamer: Append an optional parser before decoders.
mfplat/tests: Add some broken results for Win7.
mfplat/tests: Test initializing mediatype from AAC WAVEFORMATEXTENSIBLE.
mfplat/tests: Check how AAC attributes are copied from user data.
mfplat/mediatype: Check format pointers and sizes in MFInitMediaTypeFromAMMediaType.
mfplat/mediatype: Support audio major type in MFInitMediaTypeFromAMMediaType.
mfplat/mediatype: Force WAVEFORMATEXTENSIBLE in MFCreateWaveFormatExFromMFMediaType in some cases.
mfplat/mediatype: Implement MFCreateMediaTypeFromRepresentation.
mfplat/mediatype: Use MFCreateWaveFormatExFromMFMediaType in init_am_media_type_audio_format.
ntoskrnl.exe: Open symbolic link with DELETE before making them temporary.
server: Avoid removing thread twice from its desktop thread list.
winex11: Accept key and mouse events with QS_RAWINPUT.
server: Send WM_WINE_CLIPCURSOR message only when necessary.
server: Send WM_WINE_SETCURSOR message only when necessary.
win32u: Use a structure to pass peek_message arguments.
server: Check for internal hardware messages before others.
server: Process internal messages when checking queue status.
user32/tests: Add missing winetest_pop_context.
user32/tests: Add some LoadKeyboardLayoutEx tests.
winemac: Use SONAME_LIBVULKAN as an alias for MoltenVK.
win32u: Move vulkan loading and init guard out of the drivers.
win32u: Move vkGet(Instance|Device)ProcAddr out the drivers.
winevulkan: Stop generating the wine/vulkan_driver.h header.
win32u: Move vkGet(Device|Instance)ProcAddr helpers inline.
mfplat: Append MFVIDEOFORMAT user data after the structure padding.
Santino Mazza (2):
mf/test: Check the topologies id's in topo loader.
mf/topoloader: Preserve input topology id.
Vijay Kiran Kamuju (4):
include: Add Windows.UI.ViewManagement.UIViewSettings definitions.
urlmon: Add stub for ordinal 414.
d3dcompiler: Add D3DCreateLinker stub.
user32: Add LoadKeyboardLayoutEx stub.
Yuxuan Shui (8):
shell32/tests: Check FindExecutable is looking in the correct current directory.
shell32/tests: Check ShellExecute is looking in the correct current directory.
shell32: PathResolve(file, NULL, ...) should not look in the current directory.
shell32: Make sure PathResolve can find files in the current directory.
shell32: PathResolve should be able to find files that already have extensions.
shell32: PathResolve should remove trailing dot.
shell32: Fix FindExecutable search path.
shell32: Rely solely on SHELL_FindExecutable for ShellExecute.
Zebediah Figura (12):
ntdll: Assign a primary token in elevate_token().
d3d9/tests: Remove a no longer accurate comment.
d3d11/tests: Add a test for using a large number of SRV resources.
wined3d: Rename the shader_select_compute method to shader_apply_compute_state.
wined3d: Move checking shader_update_mask to shader_glsl_apply_compute_state().
shell32/tests: Remove obsolete workarounds from test_move().
quartz: Implement SetVideoClippingWindow() and PresentImage() in the VMR7 presenter.
quartz: Reimplement the VMR7 using the VMR7 presenter.
quartz: Implement IVMRSurfaceAllocatorNotify::AdviseSurfaceAllocator().
quartz: Return S_OK from IVMRSurfaceAllocator_PrepareSurface().
quartz/tests: Add some tests for VMR7 renderless mode.
wined3d: Avoid leaking string buffers in shader_glsl_load_bindless_samplers().
Zhenbo Li (1):
shell32: Create nonexistent destination directories in FO_MOVE.
Zhiyi Zhang (5):
mfreadwrite: Fix a memory leak (Coverity).
win32u: Support HiDPI for the non-client close button in WS_EX_TOOLWINDOW windows.
win32u: Fix a possible condition that makes EnumDisplayMonitors() not reporting any monitors.
win32u: Don't enumerate mirrored monitor clones for GetSystemMetrics(SM_CMONITORS).
win32u: Don't enumerate mirrored monitor clones when unnecessary.
```
The Wine development release 9.4 is now available.
What's new in this release:
- Bundled vkd3d upgraded to version 1.11.
- Initial OpenGL support in the Wayland driver.
- Support for elevating process privileges.
- More HID pointer improvements.
- Various bug fixes.
The source is available at <https://dl.winehq.org/wine/source/9.x/wine-9.4.tar.xz>
Binary packages for various distributions will be available
from <https://www.winehq.org/download>
You will find documentation on <https://www.winehq.org/documentation>
Wine is available thanks to the work of many people.
See the file [AUTHORS][1] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/raw/wine-9.4/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 9.4 (total 25):
- #11629 Add optional start menu and taskbar to explorer
- #24812 Explorer++ 1.2: right-click menu (in the main listview) degrades to nothing when opened multiple times
- #34319 Total Commander 8.x: Context menu does not contain 'paste' entry
- #34321 Total Commander 8.x: cut/copy/paste keyboard shortcuts don't work
- #34322 Total Commander 8.x: 'cut' works like 'copy'
- #44797 Visio 2003 does not read the complete list of fonts present in the system.
- #46773 Skype 4 MSI installer fails to create trigger for task using Task Scheduler (unimplemented type 7, TASK_TRIGGER_REGISTRATION)
- #48110 Multiple .NET 4.x applications need TaskService::ConnectedUser property (Toad for MySQL Freeware 7.x, Microsoft Toolkit from MS Office 2013)
- #48344 Luminance HDR / qtpfsgui 2.6.0: Empty file select dialog
- #49877 Minecraft Education Edition shows error during install: Fails to create scheduled task
- #52213 Thread crashes when pthread_exit is called in a SIGQUIT handler
- #55487 winpcap: pcap_dispatch doesn't capture anything with count argument -1
- #55619 VOCALOID AI Shared Editor v.6.1.0 crashes with System.Management.ManagementObject object construction
- #55724 mfmediaengine:mfmediaengine sometimes gets a threadpool assertion in Wine
- #55821 Desktop Window Manager crashes when launching a WPF app
- #56147 Real time Receiving data freezes for 1-5 seconds
- #56271 Free Download Manager no longer works after it updated (stuck at 100% CPU, no visible window)
- #56299 imm32.dll: CtfImmIsGuidMapEnable could not be located in the dynamic link library
- #56334 Page fault when querying dinput8_a_EnumDevices
- #56337 battle.net: tray icon is not displayed with wine-9.2
- #56345 EA app installer has no text
- #56357 Zero sized writes using WriteProcessMemory succeed on Windows, but fail on Wine.
- #56360 FoxVox window is rendered as a blank surface instead of expected user interface
- #56388 Regression: Fullscreen apps show on wrong monitor and don't respond to mouse events properly
- #56401 Some ARM unwinding testcases broken by "ntdll: Use the correct structure for non-volatile registers"
### Changes since 9.3:
```
Aida Jonikienė (3):
qwave: Add QOSCloseHandle() stub.
qwave: Add tests for QOSCloseHandle().
msvcrt: Handle wide specifiers option in __stdio_common_vfscanf().
Alexandre Julliard (59):
ntdll: Add a wrapper macro for ARM64EC syscalls.
win32u: Add a wrapper macro for ARM64EC syscalls.
include: Add SEH information to ARM64EC syscalls.
ntdll: Add SEH information to ARM64EC breakpoints.
winebuild: Remove some no longer used support for ELF ARM platforms.
wow64: Update Wow64RaiseException behavior to match i386 hardware exceptions.
wow64: Use a .seh handler for the simulation loop.
ntdll: Always use .seh handlers on ARM.
ntdll: Use a .seh handler in DbgUiRemoteBreakin on ARM64EC.
ntdll: Use a .seh handler in RtlUserThreadStart on ARM64EC.
ntdll: Implement RtlCaptureContext on ARM64EC.
ntdll: Use the exported structures for dll redirection data.
ntdll: Move RtlHashUnicodeString constants to a public header.
ntdll: Remove no longer needed definitions from the private header.
winedump: Print the correct register names for exception info on ARM64.
ntdll: Use the official definitions for exception flags.
kernelbase: Use the official definitions for exception flags.
krnl386.exe: Use the official definitions for exception flags.
msvcp90: Use the official definitions for exception flags.
msvcrt: Use the official definitions for exception flags.
win32u: Use the official definitions for exception flags.
winecrt0: Use the official definitions for exception flags.
wow64: Use the official definitions for exception flags.
winedbg: Use the official definitions for exception flags.
widl: Use the official definitions for exception flags.
include: Remove the private definitions of the exception flags.
include: Move unwinding functions definitions to rtlsupportapi.h.
ntdll: Implement RtlVirtualUnwind2.
ntdll/tests: Use a proper handler in the RtlRaiseException test on x86-64.
ntdll: Implement RtlRaiseException on ARM64EC.
kernelbase: Implement RaiseException on ARM64EC.
qwave/tests: Remove todo from a succeeding test.
ntdll: Port the RtlRaiseException test to ARM64.
ntdll: Port the RtlRaiseException test to ARM.
ntdll: Always use SEH support on ARM.
ntdll: Use the correct structure for non-volatile registers on ARM64.
ntdll: Use the correct structure for non-volatile registers on ARM.
ntdll: Also copy non-volatile regs on collided unwind.
ntdll: Use a common wrapper to call exception handlers on ARM64.
ntdll: Use a common wrapper to call exception handlers on ARM.
ntdll: Use a common wrapper to call unwind handlers on ARM64.
ntdll: Use a common wrapper to call unwind handlers on ARM.
ntdll: Allocate the data structure and stack for the ARM64EC emulator.
ntdll: Implement exception dispatching on ARM64EC.
ntdll: Implement KiUserExceptionDispatcher on ARM64EC.
vkd3d: Import upstream release 1.11.
ntdll: Use jump buffer definitions from setjmp.h.
ntdll: Export _setjmpex.
ntdll: Export longjmp.
ntdll: Implement _setjmpex on ARM64EC.
d3d10_1/tests: Mark a failing test as todo.
d3dx9/tests: Mark failing tests as todo.
ntdll: Don't copy a missing context in get_thread_context().
ntdll: Remove a misleading WARN.
ntdll: Support the __os_arm64x_helper functions in the loader.
winedump: Dump the __os_arm64x_helper functions.
include: Always use _setjmpex on non-i386 platforms.
msvcrt: Import setjmp/setjmpex from ntdll.
msvcrt: Import longjmp from ntdll for PE builds.
Alexandros Frantzis (11):
winex11.drv: Remove unused refresh_drawables field.
winewayland.drv: Add skeleton OpenGL driver.
winewayland.drv: Initialize core GL functions.
winewayland.drv: Implement wglGetExtensionsString{ARB,EXT}.
winewayland.drv: Implement wglGetProcAddress.
winewayland.drv: Implement wglDescribePixelFormat.
winewayland.drv: Implement wglSetPixelFormat(WINE).
winewayland.drv: Implement OpenGL context creation.
winewayland.drv: Implement wglMakeCurrent and wglMakeContextCurrentARB.
winewayland.drv: Implement wglSwapBuffers.
winewayland.drv: Handle resizing of OpenGL content.
Aurimas Fišeras (1):
po: Update Lithuanian translation.
Brendan McGrath (5):
mshtml: Pass DOMEvent instead of nsIDOMEvent during handle_event.
mshtml: Use generic event dispatcher for DOMContentLoaded.
mshtml/tests: Add test for document mode after InitNew and Load.
mshtml: Always use the event target dispex.
mshtml: Don't handle special case when doc != node->doc.
Brendan Shanks (2):
ntdll: Add native thread renaming for FreeBSD.
quartz: Set the name of internal threads.
Connor McAdams (6):
webservices/tests: Fix -Warray-bounds warning on gcc 13.2.0.
d3dx9/tests: Add more tests for misaligned compressed surface loading.
d3dx9: Use base image pointer when decompressing source image.
d3dx9: Split D3DXLoadSurfaceFromMemory functionality into a separate function.
d3dx9: Split off image decompression into a helper function.
d3dx9: Preserve the contents of unaligned compressed destination surfaces.
Daniel Lehman (5):
oleaut32/tests: Add tests for IPersistStream::GetSizeMax.
oleaut32: Implement GetSizeMax for empty picture.
oleaut32: Implement GetSizeMax for BMPs.
ole32: Do not lock storage in read-only deny-write mode.
ole32/tests: Remove todo from lock tests.
David McFarland (5):
mmdevapi/tests: Add test for AudioClient3_InitializeSharedAudioStream.
mmdevapi: Implement IAudioClient3_InitializeSharedAudioStream.
mmdevapi: Implement IAudioClient3_GetSharedModeEnginePeriod.
mmdevapi/tests: Add test for IDeviceTopology.
mmdevapi: Add stub for IDeviceTopology.
Eric Pouech (20):
server: Allow 0-write length in WriteProcessMemory().
dbghelp/tests: Add tests for image files lookup.
dbghelp/tests: Add tests for SymFindFileInPath for pdb files.
dbghelp/tests: Add tests about SymLoadModule and finding pdb files.
dbghelp: Don't fail on loading 64bit modules on 32bit applications.
dbghelp: Don't search the passed path in SymFindFileInPath.
dbghelp/tests: Add more tests for SymLoadModule*.
dbghelp: Always use SymGetSrvIndexFileInfo() for files lookup.
dbghelp: Rework loading of PDB string table.
dbghelp: Get rid of struct pdb_lookup.
dbghelp: Return matched information for path_find_symbol_file.
dbghelp: Search subdirectories in element path.
dbghelp: Relax failure conditions.
dbghelp: Change order when trying to load modules.
dbghelp: Mimic native behavior for module name.
dbghelp: Fix some corner case of virtual module loading.
dbghelp/tests: Extend the tests for SymLoadModule().
dbghelp: Support SLMFLAG_NO_SYMBOLS in SymLoadModuleEx*().
dbghelp: Don't fail in SymAddSymbol for modules without debug information.
dbghelp: Fixed module information when unmatched pdb file is loaded.
Esme Povirk (7):
gdiplus: Switch to a struct for gdip_format_string callback args.
gdiplus: Pass gdip_format_string_info to font link functions.
gdiplus: Restore hdc argument to gdip_format_string.
gdiplus: Fix crash in GdipAddPathString.
gdiplus: Fix use after free in GdipAddPathString.
gdiplus: Implement font linking in GdipAddPathString.
mscoree: Implement CLRRuntimeHost_Start.
Fabian Maurer (7):
win32u: Move get_awareness_from_dpi_awareness_context.
win32u: Refactor get_thread_dpi_awareness to use get_awareness_from_dpi_awareness_context.
user32/tests: Add exhaustive tests for Get/SetThreadDpiAwarenessContext.
user32: Fix Set/GetThreadDpiAwarenessContext for DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2.
user32/tests: Add tests for AreDpiAwarenessContextsEqual.
user32: Fix AreDpiAwarenessContextsEqual behavior for DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2.
win32u: Sync dpi awareness changes from user32.
Florian Will (3):
include: Add TCP_KEEPCNT and TCP_KEEPINTVL definitions.
ws2_32/tests: Test TCP_KEEP{ALIVE,CNT,INTVL} options.
ws2_32: Implement TCP_KEEP{ALIVE,CNT,INTVL} options.
Gabriel Ivăncescu (1):
winex11: Set the correct visual even if alpha matches.
Hans Leidekker (5):
netprofm: Support NLM_ENUM_NETWORK flags.
netprofm: Set return pointer to NULL in networks_enum_Next().
wbemprox: Handle implicit property in object path.
netprofm/tests: Mark a test result as broken on Windows 11.
wbemprox: Use separate critical sections for tables and table list.
Henri Verbeet (2):
wined3d: Pass "shader->function" as source to vkd3d_shader_scan() in shader_spirv_scan_shader().
wined3d: Slightly adjust an ERR in shader_spirv_compile_shader().
Jacek Caban (9):
configure: Disable -Wmisleading-indentation warnings on GCC.
vcomp/tests: Use limits.h macros in for_static_i8_cb.
winebuild: Output load config on PE targets.
winevulkan: Update to VK spec version 1.3.278.
winevulkan: Remove no longer needed spec workarounds.
winevulkan: Rename wine_device_memory mapping to vm_map.
winevulkan: Use handle map for memory objects.
winevulkan: Refactor extra extensions handling in wine_vk_device_convert_create_info.
winevulkan: Use VK_EXT_map_memory_placed for memory mapping on wow64.
Martin Storsjö (1):
arm64: Expose information about more modern CPU extensions.
Michael Müller (1):
wine.inf: Register the New menu as a directory background context menu handler.
Nikolay Sivov (3):
d3dcompiler: Enable semantic names mapping in compatibility mode.
d3d10_1/tests: Add a basic test for returned preferred profiles.
d3d10_1/tests: Add an effect compilation test using 10.1 features.
Noah Berner (1):
comctl32/tests: Fix test that fails on Feb 29th.
Paul Gofman (34):
nsiproxy.sys: Fix ipv6 route table parsing on Linux.
iphlpapi: Partially fill Ipv4 / Ipv6 metric in GetAdaptersAddresses().
wbemprox: Force debug info in critical sections.
wmwcore: Force debug info in critical sections.
browseui: Force debug info in critical sections.
itss: Force debug info in critical sections.
mmdevapi: Force debug info in critical sections.
ntdll: Mind context compaction mask in context_from_server().
ntdll: Don't copy xstate from / to syscall frame in usr1_handler().
ntdll: Support generic xstate config in context manipulation functions.
msvcp: Force debug info in critical sections.
msvcrt: Force debug info in critical sections.
netapi32: Force debug info in critical sections.
rsaenh: Force debug info in critical sections.
wined3d: Force debug info in critical sections.
kernelbase: Use KEY_WOW64_64KEY flag when 64 bit registry access is assumed.
mciavi32: Force debug info in critical sections.
winmm: Force debug info in critical sections.
winebus.sys: Force debug info in critical sections.
windows.security.credentials.ui.userconsentverifier: Force debug info in critical sections.
amstream: Avoid leaking critical section debug info in filter_Release().
amstream: Force debug info in critical sections.
winexinput.sys: Force debug info in critical sections.
comctl32: Force debug info in critical sections.
mcicda: Force debug info in critical sections.
ole32: Force debug info in critical sections.
qcap: Force debug info in critical sections.
ntdll: Respect red zone in usr1_handler() on x64.
quartz: Force debug info in critical sections.
urlmon: Force debug info in critical sections.
winegstreamer: Force debug info in critical sections.
wmiutil: Force debug info in critical sections.
windows.gaming.input: Force debug info in critical sections.
windows.media.speech: Force debug info in critical sections.
Philip Rebohle (1):
winevulkan: Update to VK spec version 1.3.279.
Piotr Caban (1):
wininet: Fix memory leak when loading proxy information.
Rémi Bernon (49):
win32u: Introduce new NtUserSwitchDesktop syscall stub.
server: Keep track of the winstation input desktop.
server: Send hardware input to the visible input desktop.
server: Keep a list of threads connected to each desktop.
server: Keep a list of processes that can receive rawinput messages.
server: Dispatch rawinput messages using the rawinput process list.
winevulkan: Remove unnecessary WINEVULKAN_QUIRK_ADJUST_MAX_IMAGE_COUNT quirk.
winevulkan: Succeed VK_KHR_win32_surface procs queries when enabled.
winex11: Remove now unnecessary vulkan function name mapping.
winemac: Remove now unnecessary vulkan function name mapping.
winewayland: Remove now unnecessary vulkan function name mapping.
winex11: Remove unnecessary X11DRV_get_vk_* helpers.
winemac: Remove unnecessary macdrv_get_vk_* helper.
winex11: Remove unnecessary vkDestroySurfaceKHR NULL checks.
winemac: Remove unnecessary vkDestroySurfaceKHR NULL checks.
winewayland: Remove unnecessary vkDestroySurfaceKHR NULL checks.
mfreadwrite/reader: Split source_reader_create_decoder_for_stream helper.
mf/topology_loader: Only propagate some media type attributes.
mfreadwrite/reader: Call SetOutputType directly on the decoder transform.
mfreadwrite/reader: Keep the stream transforms in a list.
mfreadwrite/reader: Create and append a converter transform.
mfreadwrite/reader: Implement IMFSourceReaderEx_GetTransformForStream.
mfreadwrite/reader: Adjust min_buffer_size to be 1s of audio data.
win32u: Use NtUserCallHwndParam interface for __wine_send_input.
win32u: Use a custom struct hid_input for NtUserSendHardwareInput.
dinput/tests: Test the WM_POINTER* message parameter values.
mouhid.sys: Send WM_POINTER* messages on contact updates.
server: Add support for sending and receiving WM_POINTER* messages.
win32u: Add support for sending and receiving WM_POINTER* messages.
win32u: Use char array for the device manager context gpuid.
win32u: Simplify adapter key path creation from gpu_guid.
win32u: Remove unused wine_devpropkey_monitor_adapternameW property.
win32u: Use REG_SZ instead of REG_BINARY for some adapter keys.
win32u: Remove unnecessary class_guidW double check.
win32u: Use set_reg_ascii_value whenever possible.
win32u: Introduce and use new reg_(open|create)_ascii_key helpers.
winex11: Support XInput2 events on individual windows.
winex11: Select XI_Touch* input and translate it to WM_POINTER*.
server: Stop waiting on LL-hooks for non-injected input.
server: Generate WM_POINTERENTER / WM_POINTERLEAVE messages.
server: Continuously send pointer update messages while it's down.
server: Send emulated mouse messages on primary pointer updates.
win32u: Keep a reference on the adapters gpu.
win32u: Load gpus from registry before adapters.
win32u: Lookup adapter gpus from their device paths.
win32u: Enumerate devices with a dedicated helper.
win32u: Split read / write of gpu to registry to separate helpers.
win32u: Keep the vulkan GUID on the gpu structure.
server: Remove desktop from their winstation list before looking for another input desktop.
Shaun Ren (2):
sapi: Implement ISpeechVoice::{get/put}_Volume.
sapi: Implement ISpeechVoice::{get/putref}_Voice.
Sven Baars (1):
oleaut32: Use scientific notation if it prevents a loss of accuracy.
Tim Clem (3):
winemac.drv: Exclude the emoji Touch Bar when looking for input methods.
win32u: Don't mask keyboard scan codes when processing them for IME.
winebus.sys: Only attempt to open joysticks and gamepads in the IOHID backend.
Vijay Kiran Kamuju (7):
taskschd: Implement ITaskService_get_ConnectedUser.
taskschd: Return success from Principal_put_RunLevel.
include: Add IRegistrationTrigger definition.
taskschd: Add IRegistrationTrigger stub implementation.
taskschd: Implement IRegistrationTrigger_putEnabled.
taskschd: Implement IRegistrationTrigger_getEnabled.
taskschd: Implement TaskService_get_ConnectedDomain.
Yuxuan Shui (10):
dmband: Move band.c to dmusic.
dmime: Better MIDI parsing interface.
dmime: Parse MIDI program change events and generate a bandtrack.
dmime: Add a stub chordtrack for MIDI segments.
dmime: Use linked list for tempotrack.
dmime: Implement setting TempoParam for tempotracks.
dmime: Parse MIDI Set Tempo meta events and generate a tempotrack.
dmime/tests: Call the correct QueryInterface function for DirectMusic track.
dmime: Parse note on/off events and generate a seqtrack.
dmime: Handle MIDI control events in MIDI files.
Zebediah Figura (47):
shell32: Also zero-initialize the background menu.
wined3d/atifs: Move TEXTUREFACTOR constant loading to arbfp_apply_draw_state().
wined3d/atifs: Move texture constant loading to arbfp_apply_draw_state().
wined3d/atifs: Move FFP bumpenv constant loading to atifs_apply_draw_state().
wined3d/atifs: Move fragment program compilation from set_tex_op_atifs() to atifs_apply_draw_state().
shell32: Stub CLSID_NewMenu.
shell32: Stub IContextMenu3 on the New menu.
shell32: Stub IObjectWithSite on the New menu.
shell32: Return an initial "New" menu.
wine.inf: Add ShellNew registry entries for Folder.
shell32: Enumerate the ShellNew key for Folder.
shell32: Implement InvokeCommand() for the new menu.
shell32/tests: Add a few more tests for the New menu.
msi/tests: Expand costing tests.
msi: Round costs up to 4096 bytes instead of clamping.
msi: Store component cost in 512-byte units.
msi: Multiply by 512 in dialog_vcl_add_drives().
shell32: Elevate the child process for the "runas" verb.
wine.inf: Set the EnableLUA value to 1.
msi: Create the custom action server as an elevated process.
shell32/tests: Add tests for context menu copy/paste.
shell32: Remove useless and commented out code.
shell32: Move DoPaste() up.
shell32: Add a get_data_format() helper.
shell32: Reimplement pasting from CF_DROP directly.
shell32: Respect the parent PIDL when pasting from CFSTR_SHELLIDLIST.
shell32: Implement Paste in the item menu.
wined3d/nvrc: Move TEXTUREFACTOR constant loading to nvrc_apply_draw_state().
wined3d/nvrc: Move FFP bumpenv constant loading to nvrc_apply_draw_state().
wined3d/nvrc: Move color ops from nvrc_colorop() to nvrc_apply_draw_state().
wined3d/nvrc: Remove now redundant STATE_SAMPLER handlers.
wined3d/nvrc: Move alpha op application to nvrc_apply_draw_state().
wined3d/nvrc: Remove now redundant WINED3D_TSS_RESULT_ARG handlers.
mciwave: Abort the playback thread regardless of state when stopping.
shell32/tests: Add more tests for IDataObject.
shell32: Do not interpret the direction in IDataObject::EnumFormatEtc().
shell32: Reimplement the data object to store a generic array of HGLOBALs.
shell32: Implement IDataObject::SetData().
shell32: Reimplement pasting from a CIDA without ISFHelper.
shell32: Remove the no longer used ISFHelper::CopyItems() helper.
shell32: Set the drop effect from the context menu.
shell32: Respect the drop effect in do_paste().
shell32: Fix a test failure in test_DataObject().
winetest: Elevate test processes on Wine.
ntdll: Implement NtSetInformationProcess(ProcessAccessToken).
ntdll: Elevate processes if requested in the manifest.
server: Create processes using a limited administrator token by default.
Zhiyi Zhang (7):
Revert "winex11.drv: Handle X error from vkGetRandROutputDisplayEXT()."
rtworkq: Avoid closing a thread pool object while its callbacks are running.
rtworkq: Avoid possible scenarios that an async callback could be called twice.
advapi32: Check NULL return key pointers when creating registry keys.
advapi32/tests: Test creating registry keys with a NULL return key pointer.
user32/tests: Add some ReleaseCapture() tests.
win32u: Only send mouse input in ReleaseCapture() when a window is captured.
Ziqing Hui (2):
mf/tests: Test AvgTimePerFrame for WMV decoder DMO.
winegstreamer: Set AvgTimePerFrame in GetOutputType() for WMV decoder.
```
The vkd3d team is proud to announce that release 1.11 of vkd3d, the Direct3D
to Vulkan translation library, is now available.
This release contains improvements that are listed in the release notes below.
The main highlights are:
- Initial support for compiling legacy Direct3D bytecode to SPIR-V.
- Initial HLSL compiler support for compiling effect profiles.
- Miscellaneous bug fixes and performance improvements.
The source is available from the following location:
<https://dl.winehq.org/vkd3d/source/vkd3d-1.11.tar.xz>
The current source can also be pulled directly from the git repository:
<https://gitlab.winehq.org/wine/vkd3d.git>
Vkd3d is available thanks to the work of multiple people. See the file AUTHORS
for the complete list.
# What's new in vkd3d 1.11
### libvkd3d
- Descriptor updates happen asynchronously on an internal worker thread, for
a minor performance improvement in applications that update many
descriptors per frame.
- When the VK_EXT_mutable_descriptor_type extension is available, libvkd3d
will make more efficient use of descriptor pools and sets.
- When the VK_EXT_shader_viewport_index_layer extension is available,
libvkd3d supports indexing viewport and render target arrays from vertex
and tessellation evaluation shaders.
- Support for standard (i.e., black and white) border colours is
implemented.
- The GetResourceAllocationInfo1() method of the ID3D12Device4 interface is
implemented.
- The ID3D12Device7 interface is supported.
- The ID3D12Resource2 interface is supported.
- Several new feature queries are supported:
- D3D12_FEATURE_D3D12_OPTIONS6
- D3D12_FEATURE_D3D12_OPTIONS7
- D3D12_FEATURE_D3D12_OPTIONS8
- D3D12_FEATURE_D3D12_OPTIONS9
- D3D12_FEATURE_D3D12_OPTIONS10
- D3D12_FEATURE_D3D12_OPTIONS11
- D3D12_FEATURE_D3D12_OPTIONS12
- D3D12_FEATURE_D3D12_OPTIONS13
### libvkd3d-shader
- Initial support for compiling legacy Direct3D bytecode to SPIR-V.
- Experimental support for compiling DirectX Intermediate Language (DXIL) to
SPIR-V and Direct3D shader assembly. Being an experimental feature, this
requires building vkd3d with the ‘-DVKD3D_SHADER_UNSUPPORTED_DXIL’
preprocessor option. Note that enabling this feature will affect the
capabilities reported by libvkd3d as well, and may cause previously
working applications to break due to attempting to use incomplete DXIL
support. No API or ABI stability guarantees are provided for experimental
features.
- New features for the HLSL source type:
- Initial support for the ‘fx_2_0’, ‘fx_4_0’, ‘fx_4_1’, and ‘fx_5_0’
profiles, using the new ‘VKD3D_SHADER_TARGET_FX’ target type.
- Support for ‘Buffer’ resources.
- The acos(), asin(), atan(), and atan2() intrinsic functions are
supported.
- Explicit register assignment using the ‘register()’ keyword in shader
model 1-3 profiles. This was previously only supported in shader model
4+ profiles.
- Casts from integer to floating-point types in shader model 1-3 profiles.
- Support for various input/output semantics:
- SV_InstanceID in shader model 4+ fragment shaders.
- SV_PrimitiveID in shader model 4+ fragment shaders. In previous
versions this was only supported in shader model 4+ geometry shaders.
- SV_RenderTargetArrayIndex in shader model 4+ vertex and fragment shaders.
- SV_ViewportArrayIndex in shader model 4+ vertex and fragment shaders.
- Support for various rasteriser-ordered view types. Specifically:
- RasterizerOrderedBuffer
- RasterizerOrderedStructuredBuffer
- RasterizerOrderedTexture1D
- RasterizerOrderedTexture1DArray
- RasterizerOrderedTexture2D
- RasterizerOrderedTexture2DArray
- RasterizerOrderedTexture3D
- New features for the SPIR-V target type:
- Support for globally coherent unordered access views. These have the
‘globallycoherent’ storage class in HLSL, and the ‘_glc’ suffix in
Direct3D assembly.
- Support for thread group unordered access view barriers. This
corresponds to ‘sync_ugroup’ instructions in Direct3D assembly.
- When the SPV_EXT_viewport_index_layer extension is supported, vertex and
tessellation evaluation shaders can write render target and viewport
array indices. This corresponds to the ‘SV_RenderTargetArrayIndex’ and
‘SV_ViewportArrayIndex’ HLSL output semantics.
- New interfaces:
- The VKD3D_SHADER_COMPILE_OPTION_FEATURE compile option can be used to
specify features available in the target environment. The
VKD3D_SHADER_COMPILE_OPTION_FEATURE_INT64 flag indicates support for
64-bit integer types in the SPIR-V target environment. The
VKD3D_SHADER_COMPILE_OPTION_FEATURE_FLOAT64 flag indicates support for
64-bit floating-point types in the SPIR-V target environment. For
backward compatibility, VKD3D_SHADER_API_VERSION_1_10 and earlier also
imply support for 64-bit floating-point types.
- The VKD3D_SHADER_SPIRV_EXTENSION_EXT_VIEWPORT_INDEX_LAYER enumeration
value indicates support for the SPV_EXT_viewport_index_layer extension
in the SPIR-V target environment.
### libvkd3d-utils
- When available, the following Vulkan extensions are enabled by
D3D12CreateDeviceVKD3D() and D3D12CreateDevice():
- VK_KHR_android_surface
- VK_KHR_wayland_surface
- VK_KHR_win32_surface
- VK_KHR_xlib_surface
- VK_EXT_metal_surface
- VK_MVK_ios_surface
Previous versions of vkd3d-utils enabled VK_KHR_xcb_surface and
VK_MVK_macos_surface. In practice this means that
D3D12CreateDevice()/D3D12CreateDeviceVKD3D() can be used on the
corresponding additional window systems.
- New interfaces:
- D3DReflect() is used to retrieve information about shaders. It currently
supports retrieving information about input, output, and patch constant
parameters using the ID3D12ShaderReflection interface.
- D3DDisassemble() is used to disassemble legacy Direct3D bytecode (shader
model 1-3) and ‘Tokenized Program Format’ (shader model 4 and 5)
shaders.
### vkd3d-compiler
- The new ‘fx’ target is used for outputting Direct3D effects when compiling
HLSL ‘fx_2_0’, ‘fx_4_0’, ‘fx_4_1’, and ‘fx_5_0’ profiles.
### build
- The minimum required version of Vulkan-Headers for this release is version
1.3.228.
### Changes since vkd3d 1.10:
```
Conor McCarthy (164):
vkd3d-shader/spirv: Support declared component type and count in indexable temps.
vkd3d-shader/dxil: Support null constant arrays.
vkd3d-shader/spirv: Support constant initialisers in indexable temps.
vkd3d-shader/spirv: Support declared component type and count in immediate constant buffers.
vkd3d-shader: Add a register index to struct vkd3d_shader_immediate_constant_buffer.
vkd3d-shader/dxil: Emit constant global arrays as immediate constant buffers.
vkd3d-shader/dxil: Implement DX intrinsic Unary.
vkd3d-shader/dxil: Apply metadata attachments to instructions.
vkd3d-shader/dxil: Set the result register data type for nop casts.
vkd3d-shader/ir: Pass a local copy of location to control_point_normaliser_emit_hs_input().
tests/shader-runner: Test an uninitialised indexable temp.
vkd3d-shader/dxil: Implement the DXIL ALLOCA instruction.
vkd3d-shader/dxil: Implement the DXIL STORE instruction.
vkd3d-shader/spirv: Bitcast if necessary in the spirv_compiler_emit_mov() general implementation.
tests/shader-runner: Add a non-const-indexing test for asfloat() result storage.
vkd3d-shader: Introduce an instruction flag to suppress masking of bitwise shift counts.
vkd3d-shader/spirv: Emit an error if 64-bit integers are used.
tests/shader-runner: Introduce an 'int64' requirement directive.
tests/shader-runner: Introduce a 'float64' requirement directive.
tests/shader-runner: Add 64-bit arithmetic tests.
tests/shader-runner: Add 64-bit bitwise tests.
vkd3d-shader/spirv: Introduce a compiler feature flag for int64 capability.
tests/shader-runner: Fix the arithmetic-int-uniform int64 abs expected results.
vkd3d: Update the descriptor `next` index before getting a reference for writing.
vkd3d: Write Vulkan descriptors in a worker thread.
vkd3d: Rename the device mutex to pipeline_cache_mutex.
vkd3d: Co-locate all descriptor-related members.
tests/shader-runner: Check for float64 support in the d3d11 runner.
tests/shader-runner: Check for float64 support in the Vulkan runner.
tests/shader-runner: Check for int64 support in the Vulkan runner.
vkd3d: Pass int64 capability info to vkd3d-shader.
vkd3d-shader/spirv: Use data_type_is_integer() in spirv_compiler_emit_neg().
vkd3d-shader/spirv: Introduce a data_type_is_64_bit() helper function.
vkd3d-shader/spirv: Introduce a UINT64 component type.
vkd3d-shader/spirv: Support 64-bit sources in spirv_compiler_emit_int_div().
vkd3d-shader/spirv: Support UINT64 source in spirv_compiler_emit_bool_cast().
vkd3d-shader/spirv: Handle ITOI and UTOU in spirv_compiler_map_alu_instruction().
vkd3d-shader/spirv: Decorate non-float32 non-built-in pixel shader inputs as Flat.
vkd3d-shader/dxil: Count global variables in dxil_block_compute_module_decl_count().
vkd3d-shader/dxil: Pre-allocate instruction space for globals in sm6_parser_globals_init().
vkd3d: Use mutable descriptors if available.
vkd3d-shader/dxil: Avoid null dereference on failure to find function pointer type.
vkd3d-shader/spirv: Support vector source param for FIRSTBIT_HI and FIRSTBIT_SHI instructions.
tests/d3d12: Test vector parameter for countbits() and firstbithigh() in test_shader_instructions().
vkd3d-shader/spirv: Emit descriptor offset loads in the function entry block.
vkd3d-shader/spirv: Handle DISCARD and TEXKILL in spirv_compiler_handle_instruction().
vkd3d-shader/spirv: Handle RETP in spirv_compiler_handle_instruction().
vkd3d-shader/ir: Flatten IF/ELSE/ENDIF control flow instructions.
vkd3d-shader/ir: Flatten LOOP/BREAK/CONTINUE/ENDLOOP control flow instructions.
vkd3d-shader/ir: Flatten SWITCH/CASE/DEFAULT/ENDSWITCH control flow instructions.
vkd3d-shader/ir: Store code block names in struct vkd3d_shader_desc.
vkd3d-shader/spirv: Declare indexable temps as Private unless function scope is specified.
vkd3d-shader/spirv: Do not emit function code before the main prolog.
vkd3d-shader/ir: Include an initial label instruction in the first control flow block.
vkd3d-shader/ir: Expand index range write masks to cover all element masks.
tests: Test punned array access in patch constant functions.
vkd3d-shader: Make the control point count the outer dimension of I/O arrays.
vkd3d-shader/tpf: Validate sysvals in index range declarations.
vkd3d-shader/dxil: Introduce a code block terminator struct.
vkd3d-shader/dxil: Handle the DXIL BR instruction unconditional variant.
vkd3d-shader/dxil: Handle the DXIL BR instruction conditional variant.
vkd3d-shader/dxil: Handle the DXIL PHI instruction.
vkd3d-shader/dxil: Handle the DXIL SWITCH instruction.
vkd3d-shader/ir: Revert "Do not merge signature elements which have different interpolation modes.".
tests: Test an interpolated PS input where component x is unused.
vkd3d-shader/ir: Set merged signature element interpolation mode only from used elements.
vkd3d-shader/dxil: Pass the code block and instruction in a struct to intrinsic handlers.
vkd3d-shader/spirv: Do not assert VKD3D_DATA_UINT in spirv_compiler_emit_ld_raw_structured_srv_uav().
vkd3d-shader/dxil: Load typed SRV descriptors.
vkd3d-shader/dxil: Load typed UAV descriptors.
vkd3d-shader/dxil: Implement DX intrinsic BufferLoad for typed buffers.
tests/d3d12: Add a raw firstbit test to test_shader_instructions().
vkd3d-shader/spirv: Handle UINT32_MAX result from FIRSTBIT_HI and FIRSTBIT_SHI instructions.
vkd3d-shader/dxil: Handle semantic kind VERTEXID.
vkd3d-shader/dxil: Handle semantic kind ISFRONTFACE.
vkd3d-shader/dxil: Add an operand type code for the return type.
vkd3d-shader/dxil: Implement DX intrinsic Binary.
vkd3d-shader/ir: Refactor return code checking in vkd3d_shader_normalise().
vkd3d-shader/dxil: Use strcmp() to check the entry point name.
vkd3d-shader/dxil: Use strcmp() to find function names.
vkd3d-shader/dxil: Use strcmp() to find the handle type.
vkd3d-shader/spirv: Emit DISCARD as a function call.
vkd3d-shader/dxil: Handle floating point special value comparisons in sm6_parser_emit_dx_unary().
tests/shader-runner: Add tests for floating point special values.
vkd3d-shader/spirv: Implement the ISFINITE instruction.
vkd3d-shader/spirv: Handle the ISINF and ISNAN instructions in spirv_compiler_emit_alu_instruction().
vkd3d-shader: Introduce VKD3D_SHADER_COMPILE_OPTION_FEATURE_FLOAT64.
vkd3d-shader/spirv: Check for FEATURE_FLOAT64 when double precision use is flagged.
vkd3d-shader/spirv: Handle globally coherent UAVs.
vkd3d-shader/spirv: Include Uniform in the memory semantics for UAV barriers.
vkd3d-shader/spirv: Handle thread group UAV barriers.
vkd3d-shader/dxil: Implement DX intrinsics Cos and Sin.
vkd3d-shader/dxil: Handle DX intrinsic Tan in sm6_parser_emit_dx_unary().
vkd3d-shader/spirv: Handle the TAN instruction in spirv_compiler_emit_ext_glsl_instruction().
vkd3d-shader/dxil: Load raw/structured buffer SRV/UAV descriptors.
vkd3d-shader/dxil: Implement DX intrinsic RawBufferLoad.
vkd3d-shader/dxil: Implement DX intrinsic Tertiary.
vkd3d-shader/spirv: Support 64-bit source value for bitfield instructions.
tests/shader-runner: Add an asuint() test to the 64-bit cast tests.
vkd3d-shader/dxil: Implement DX intrinsic SplitDouble.
vkd3d-shader/dxil: Implement DX intrinsic TextureLoad.
vkd3d-shader/spirv: Emit a vector bitcast if necessary in spirv_compiler_emit_load_ssa_reg().
vkd3d: Add ID3D12Device6 interface stub.
vkd3d: Add ID3D12Device7 interface stubs.
tests/d3d12: Test multiple descriptions in test_resource_allocation_info().
vkd3d: Support multiple descriptions in GetResourceAllocationInfo().
tests/d3d12: Add tests for GetResourceAllocationInfo1().
vkd3d: Implement GetResourceAllocationInfo1().
vkd3d-shader/dxil: Handle inverse trigonometric functions in sm6_parser_emit_dx_unary().
vkd3d-shader/spirv: Handle the ACOS, ASIN and ATAN instructions in spirv_compiler_emit_ext_glsl_instruction().
vkd3d-shader/dxil: Support forward-referenced value ids.
tests/shader-runner: Emit descriptor ranges for consecutive resources.
tests/shader-runner: Add shader model 6 texture UAV tests.
vkd3d-shader/dxil: Implement DX intrinsic TextureStore.
tests/shader-runner: Add hyperbolic trigonometry tests.
vkd3d-shader/dxil: Handle hyperbolic trigonometric functions in sm6_parser_emit_dx_unary().
vkd3d: Handle D3D12_FEATURE_D3D12_OPTIONS6 in CheckFeatureSupport().
vkd3d: Handle D3D12_FEATURE_D3D12_OPTIONS7 in CheckFeatureSupport().
vkd3d: Handle D3D12_FEATURE_D3D12_OPTIONS8 in CheckFeatureSupport().
vkd3d: Handle D3D12_FEATURE_D3D12_OPTIONS9 in CheckFeatureSupport().
vkd3d: Handle D3D12_FEATURE_D3D12_OPTIONS10 in CheckFeatureSupport().
vkd3d: Handle D3D12_FEATURE_D3D12_OPTIONS11 in CheckFeatureSupport().
vkd3d: Handle D3D12_FEATURE_D3D12_OPTIONS12 in CheckFeatureSupport().
vkd3d: Handle D3D12_FEATURE_D3D12_OPTIONS13 in CheckFeatureSupport().
vkd3d-shader/dxil: Load sampler descriptors.
vkd3d-shader/dxil: Implement DX intrinsic Sample.
vkd3d-shader/dxil: Implement DX intrinsic SampleGrad.
vkd3d-shader/dxil: Check for src param allocation failure in sm6_parser_emit_binop().
vkd3d-shader/dxil: Check for src param allocation failure in sm6_parser_emit_dx_unary().
vkd3d-shader/dxil: Check for src param allocation failure in sm6_parser_emit_dx_binary().
vkd3d-shader/dxil: Check for src param allocation failure in sm6_parser_emit_dx_cbuffer_load().
vkd3d-shader/dxil: Check for src param allocation failure in sm6_parser_emit_dx_tertiary().
vkd3d-shader/dxil: Check for src param allocation failure in sm6_parser_emit_dx_load_input().
vkd3d-shader/dxil: Check for src param allocation failure in sm6_parser_emit_dx_buffer_load().
vkd3d-shader/dxil: Check for src param allocation failure in sm6_parser_emit_dx_sincos().
vkd3d-shader/dxil: Check for src param allocation failure in sm6_parser_emit_dx_split_double().
vkd3d-shader/dxil: Check for src param allocation failure in sm6_parser_emit_dx_texture_load().
vkd3d-shader/dxil: Check for src param allocation failure in sm6_parser_emit_cast().
vkd3d-shader/dxil: Check for src param allocation failure in sm6_parser_emit_cmp2().
vkd3d-shader/dxil: Check for src param allocation failure in sm6_parser_emit_extractval().
vkd3d-shader/dxil: Check for src param allocation failure in sm6_parser_emit_load().
vkd3d-shader/dxil: Check for src param allocation failure in sm6_parser_emit_store().
vkd3d-shader/dxil: Check for src param allocation failure in sm6_parser_emit_vselect().
vkd3d-shader: Raise the instruction parameter allocation size if necessary.
tests/shader-runner: Add a 64-bit switch test.
tests/d3d12: Add tests for GetProtectedResourceSession().
vkd3d: Return DXGI_ERROR_NOT_FOUND from GetProtectedResourceSession().
tests/d3d12: Add a test for zero description count in test_resource_allocation_info().
vkd3d: Implement ID3D12Resource2.
tests/shader-runner: Support scalar signed int probe values.
tests/shader-runner: Add tests for UAV atomic ops.
vkd3d-shader/dxil: Implement DX intrinsic AtomicBinOp.
vkd3d-shader/dxil: Implement DX intrinsic AtomicCompareExchange.
vkd3d-shader/dxil: Handle resource descriptor additional tag/value pairs.
tests/shader-runner: Support structured buffer UAVs.
tests/shader-runner: Add a test for a signed int typed buffer UAV.
tests/shader-runner: Add a test for a signed int structured buffer UAV.
vkd3d-shader/dxil: Implement DX intrinsic BufferStore.
vkd3d-shader/dxil: Handle raw and structured buffers in sm6_parser_emit_dx_buffer_store().
vkd3d-shader/dxil: Implement DX intrinsic RawBufferStore.
vkd3d-shader/dxil: Implement DX intrinsics SampleBias and SampleLevel.
vkd3d-shader/dxil: Implement DX intrinsics SampleCmp and SampleCmpLevelZero.
vkd3d-shader/dxil: Move the resource kind helper functions up.
vkd3d-shader/dxil: Implement DX intrinsic GetDimensions.
Evan Tang (4):
tests/shader-runner: Support testing for integer pixel data.
tests: Add some tests for rasteriser-ordered views.
vkd3d-shader/hlsl: Parse rasteriser-ordered view types.
vkd3d-shader/hlsl: Support SV_PrimitiveID in pixel shaders.
Fabian Maurer (2):
vkd3d-shader/dxil: Check null pointer before it is dereferenced (Coverity).
vkd3d: Unlock mutex in error case in d3d12_command_queue_CopyTileMappings.
Florian Weimer (1):
configure: Use AC_CHECK_FUNCS to define HAVE_GETTID.
Francisco Casas (31):
vkd3d-shader/hlsl: Emit fixmes on non-constant vector addressing.
tests/shader-runner: Support reading multiple model range args for qualifiers.
tests/shader-runner: Call each runner only once.
vkd3d-shader/d3dbc: Emit fixme for HLSL_RESOURCE_SAMPLE_LOD.
vkd3d-shader/ir: Lower texkill instructions to discard_nz.
tests: Use the vulkan runner to run SM1 compilation tests.
vkd3d-shader/ir: Update flatten_control_flow_constructs() comment.
tests/shader_runner: Pass a pointer to the data when creating uav buffers in d3d12.
tests/shader_runner: Free params.data on test directives (valgrind).
tests/shader_runner: Free runner->uniforms (valgrind).
tests/shader_runner: Free extensions pointer on vulkan runner (valgrind).
tests/shader_runner: Free runner->input_elements in parse_test_directive() (valgrind).
tests/shader_runner: Free runner->cs_source and runner->fx_source (valgrind).
tests: Rename register-reservations.shader_test to register-reservations-resources.shader_test.
tests: Test register(cX) reservations.
vkd3d-shader/hlsl: Make register(cX) reservations work for SM1.
vkd3d-shader/hlsl: Turn register(cX) reservations into buffer offset for SM4.
tests/vkd3d-shader: Set uninitialized uniforms to a value.
tests: Don't ignore SM1 on a non-const-indexing.shader_test test.
tests/shader-runner: Introduce "if" qualifier.
tests: Remove [require] directives for tests that use int and bool uniforms.
vkd3d-shader/d3dbc: Implement casts from ints to floats as a MOV.
tests: Add simple test for implicit cast to int.
vkd3d-shader/hlsl: Lower casts to int for SM1.
vkd3d-shader/hlsl: Record valid methods in object_methods[].
tests/shader-runner: Separate resource_type into type and dimension.
tests/shader-runner: Support SRV buffers.
tests/shader-runner: Change resource declaration syntax on shader_test files.
tests/shader-runner: Change probe directive syntax on shader_test files.
vkd3d-shader/hlsl: Parse Buffer types.
vkd3d-shader/hlsl: Emit fixme on non-direct resource stores.
Giovanni Mascellani (100):
vkd3d-shader/d3d-asm: Indent on IFC.
vkd3d-shader/d3d-asm: Write a single type in shader_dump_data_type().
vkd3d-shader/d3d-asm: Dump recently added types.
vkd3d-shader/d3d-asm: Dump unknown types as "<unknown>".
vkd3d-shader/d3d-asm: Add an "internal" mode for the ASM dumper.
vkd3d: Pad push constant ranges to 16 bytes.
vkd3d-shader/spirv: Honor force_validation after emitting SPIR-V code.
ci: Build vkd3d with SPIRV-Tools.
tests: Test assigning multisampled textures with different sample counts.
vkd3d-shader/dxil: Do not use the parser before it is initialized.
vkd3d-shader/dxil: Use vkd3d_shader_parser_error() for error reporting when available.
vkd3d-shader/d3dbc: Override the write mask when the destination is not vec4.
vkd3d-shader/dxil: Create constant buffer registers with dimension vec4.
vkd3d-shader/ir: Validate SSA registers.
vkd3d-shader/ir: Validate source swizzles depending on the dimension.
vkd3d-shader/ir: Validate destination write masks depending on the dimension.
ci: Dump the d3d12 summary line in the CI log.
vkd3d: Specify the aspect when creating NULL UAVs.
tests: Use a uint target for rendering uint data.
vkd3d-shader/spirv: Specify behavior for bit field instructions.
tests: Mark some sampling tests as buggy on MoltenVK.
tests: Mark streaming output as buggy on MoltenVK.
tests: Mark predicated rendering as buggy on MoltenVK.
tests: Mark resource arrays as buggy on MoltenVK.
configure: Detect pthread support using -pthread instead of -lpthread.
vkd3d-utils: Support many different surface types when creating a device.
vkd3d-shader/d3d-asm: Guess a sensible data type for literals.
vkd3d-shader: Make *src and *dst mutable in vkd3d_shader_instruction.
vkd3d-shader/ir: Simplify control flow in vsir_validate_register().
vkd3d-shader/ir: Use vkd3d_free() instead of free().
vkd3d-shader/ir: Check that TEMP registers have consistent dimensions.
vkd3d-shader/ir: Check that SSA registers have consistent dimensions.
vkd3d-shader/ir: Check that SSA registers are used validly.
ci: Rename CI target build-image to image-linux.
ci: Prepare the macOS build environment in a dedicated CI job.
tests: Add a test with non-trivial control flow.
tests: Test a couple of degenerate switch instances.
vkd3d-shader: Make relative address sources mutable too.
vkd3d-shader/spirv: Normalise the shader before allocating registers.
vkd3d-shader/ir: Validate that structured CF does not appear in block-based shaders.
vkd3d-shader/ir: Validate LABEL registers.
vkd3d-shader/ir: Validate LABEL instructions.
vkd3d-shader/ir: Validate BRANCH instructions.
vkd3d-shader/ir: Validate SWITCH_MONOLITHIC instructions.
vkd3d-shader/ir: Validate RET instructions.
vkd3d-shader/spirv: Use capability ShaderViewportIndexLayerEXT for decoration Layer.
vkd3d-shader/spirv: Use capability ShaderViewportIndexLayerEXT for decoration ViewportIndex.
vkd3d-shader/tpf: Support SV_RenderTargetArrayIndex in pixel and vertex shaders.
vkd3d-shader/tpf: Support SV_InstanceID in vertex shaders.
vkd3d-shader/tpf: Support SV_ViewportArrayIndex in pixel and vertex shaders.
tests: Compile HLSL shaders at runtime in test_ps_layer().
tests: Test using SV_RenderTargetArrayIndex in the vertex shader.
tests: Use test utils to create the pipeline state in test_ps_layer().
tests: Add a test for SV_ViewportArrayIndex.
vkd3d-shader/ir: Check that all instructions appear in a block.
vkd3d-shader/ir: Refactor register-type-specific code in parameter validation.
vkd3d-shader/ir: Do not allow IMMCONST and IMMCONST64 as destination registers.
vkd3d-shader/ir: Validate PHI instructions.
vkd3d-shader/ir: Run tracing and validation for DXIL code too.
vkd3d-shader/ir: Remove DCL_TEMPS instructions.
tests: Mark loading from stencil as buggy on MoltenVK.
tests: Skip unbounded descriptor ranges tests when they're unsupported.
tests: Mark cull distance as buggy on MoltenVK.
tests: Mark clip distance as unsupported on MoltenVK.
tests: Mark a timestamp query test as buggy on MoltenVK.
tests: Mark count buffers as buggy on MoltenVK.
tests: Mark a test related to instanced draws as buggy on MoltenVK.
tests: Mark ReadFromSubresource() and WriteToSubresource() as todo on MoltenVK.
tests: Mark geometry shaders as buggy on MoltenVK.
tests: Mark the tessellation pipeline as buggy on MoltenVK.
tests: Mark a depth sampling test as buggy on MoltenVK.
tests: Mark a strip cut test as buggy in MoltenVK.
vkd3d-shader/spirv: Emit an error if merge information is missing.
vkd3d-shader/ir: Lower monolithic switches to selection ladders.
vkd3d-shader/ir: Fixup PHI nodes when lowering switches to selection ladders.
vkd3d-shader: Convert write masks between 32 and 64 bit by cases.
include/vkd3d-shader: Generate swizzles without a function call.
vkd3d-shader: Use 64 bit swizzles for 64 bit data types in VSIR.
vkd3d-shader/ir: Check that SSA registers are used with compatible data types.
vkd3d-compiler: Exit the main function through a common code path.
vkd3d-compiler: Free compilation options (Valgrind).
vkd3d-shader/spirv: Free binary SPIR-V code (Valgrind).
vkd3d-shader/dxil: Set the register before calling src_param_init_scalar().
vkd3d-shader/spirv: Convert the swizzle according to the source bit width.
vkd3d-shader/spirv: Move bool casting helpers above register loading helpers.
vkd3d-shader/spirv: Support bool TEMP registers.
vkd3d-shader/ir: Materialize SSA registers to temporaries.
vkd3d-shader/ir: Handle PHI nodes when materializing SSA registers.
vkd3d-shader/ir: Introduce a simple control flow graph structurizer.
tests: Work around a Metal bug.
vkd3d-shader/hlsl: Free variable identifiers in primary_expr (Valgrind).
vkd3d-shader/hlsl: Free the parse initializer in attribute (Valgrind).
vkd3d-shader/hlsl: Free the individual attributes in func_prototype (Valgrind).
vkd3d-shader/hlsl: Free the selector in postfix_expr (Valgrind).
tests: Release the code blob in test_thread_id() (Valgrind).
vkd3d-shader/ir: Build a representation of the control flow graph.
vkd3d-shader/ir: Dump the control flow graph in the GraphViz format.
vkd3d-shader/ir: Compute the domination relationship.
vkd3d-shader/ir: Dump the domination relationship.
tests: Test how constant folding works on SM1.
Henri Verbeet (151):
vkd3d-shader/ir: Pass a uint32_t write mask to vkd3d_write_mask_get_component_idx().
vkd3d-shader/ir: Pass a uint32_t write mask to vkd3d_write_mask_component_count().
vkd3d-shader/ir: Pass a uint32_t write mask to vkd3d_write_mask_64_from_32().
vkd3d-shader/ir: Pass a uint32_t write mask to vkd3d_write_mask_32_from_64().
vkd3d-shader/ir: Pass a uint32_t swizzle to vkd3d_swizzle_get_component().
vkd3d-shader/ir: Pass a uint32_t swizzle to vkd3d_swizzle_get_component64().
tests: Print the failing line numbers when a test fails.
vkd3d-shader/ir: Rename the "immconst_uint" field of struct vkd3d_shader_register to "immconst_u32".
vkd3d-shader/ir: Rename the "immconst_float" field of struct vkd3d_shader_register to "immconst_f32".
vkd3d-shader/ir: Rename the "immconst_uint64" field of struct vkd3d_shader_register to "immconst_u64".
vkd3d-shader/ir: Rename the "immconst_double" field of struct vkd3d_shader_register to "immconst_f64".
vkd3d: Add D3D_FEATURE_LEVEL_12_2 as a valid feature level.
vkd3d: Add D3D_FEATURE_LEVEL_1_0_CORE as a valid feature level.
vkd3d-shader/ir: Store instruction flags as a uint32_t.
vkd3d-shader/ir: Store source parameter swizzles as a uint32_t.
vkd3d-shader/ir: Store destination parameter modifier flags as a uint32_t.
vkd3d-shader/ir: Store destination parameter shifts as an unsigned int.
vkd3d: Recognise VK_QUEUE_PROTECTED_BIT in debug_vk_queue_flags().
vkd3d: Recognise VK_QUEUE_VIDEO_DECODE_BIT_KHR in debug_vk_queue_flags().
vkd3d: Slightly simplify debug_vk_memory_property_flags().
vkd3d-shader/hlsl: Store swizzles as a uint32_t.
vkd3d-shader/hlsl: Store modifier flags as a uint32_t.
vkd3d: Implement support for static border colours.
vkd3d: Attempt to translate border colours to static border colours in d3d12_desc_create_sampler().
vkd3d-shader: Recognise DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS in shader_validate_descriptor_range1().
vkd3d-shader/spirv: Pass a uint32_t write mask to vkd3d_symbol_set_register_info().
vkd3d-shader/spirv: Pass a uin32_t write mask to spirv_compiler_emit_load_src().
vkd3d-shader/spirv: Pass a uint32_t write mask to spirv_compiler_emit_abs().
vkd3d-shader/spirv: Pass a uint32_t write mask to spirv_compiler_emit_neg().
vkd3d: Trace GetLastError() results with %lu.
vkd3d-shader/dxbc: Pass a size_t offset to shader_get_string().
vkd3d-shader/dxbc: Pass an unsigned int count to shader_parse_root_parameters1().
vkd3d-shader/dxbc: Use sizeof(uint32_t) instead of sizeof(DWORD) in calls to require_space().
vkd3d-common: Get rid of InterlockedAdd().
vkd3d-shader/tpf: Pass a uint32_t modifier token to shader_sm4_read_instruction_modifier().
vkd3d-shader/tpf: Store the "components" token as a uint32_t in shader_sm4_read_dcl_resource().
vkd3d-shader/tpf: Store the "addressing" token as a uint32_t in shader_sm4_read_param().
vkd3d-shader/tpf: Store the current token as a uint32_t in shader_sm4_read_src_param().
vkd3d-shader/tpf: Store the current token as a uint32_t in shader_sm4_read_dst_param().
vkd3d-shader/tpf: Store the "recognized_bits" mask as a uint32_t in shader_sm4_read_instruction_modifier().
vkd3d-shader/tpf: Store the "precise" mask as a uint32_t in shader_sm4_read_instruction().
vkd3d-common: Introduce vkd3d_atomic_increment_u64().
include: Introduce a debug helper for HRESULTs.
vkd3d-utils: Use debugstr_hresult() in D3DCreateBlob().
vkd3d-utils: Use debugstr_hresult() in get_blob_part().
vkd3d-utils: Use debugstr_hresult() in D3DStripShader().
vkd3d-shader/d3dbc: Store the "offset" field as an unsigned int in hlsl_sm1_register_from_semantic().
vkd3d-common: Introduce vkd3d_atomic_increment_u32().
vkd3d-common: Use vkd3d_atomic_increment_u32() in get_buffer().
vkd3d-common: Use vkd3d_atomic_increment_u32() in vkd3d_blob_AddRef().
vkd3d-common: Introduce vkd3d_atomic_decrement_u32().
vkd3d-common: Use vkd3d_atomic_decrement_u32() in vkd3d_blob_Release().
vkd3d-shader/ir: Introduce struct vsir_program.
vkd3d-shader/ir: Store the shader version in struct vsir_program.
vkd3d-shader/ir: Store the "use_vocp" field in struct vsir_program.
vkd3d-shader/ir: Store the SSA register count in struct vsir_program.
vkd3d-shader/ir: Store the temporary register count in struct vsir_program.
vkd3d: Use debugstr_hresult() in vkd3d_wait_for_gpu_fence().
vkd3d: Use debugstr_hresult() in d3d12_command_list_copy_incompatible_texture_region().
vkd3d: Use debugstr_hresult() in d3d12_command_queue_submit_locked().
vkd3d: Use debugstr_hresult() in vkd3d_instance_init().
vkd3d: Use debugstr_hresult() in vkd3d_create_vk_device().
vkd3d: Use debugstr_hresult() in d3d12_device_init().
vkd3d: Use debugstr_hresult() in vkd3d_join_thread().
vkd3d: Use debugstr_hresult() in vkd3d_init_null_resources().
vkd3d-shader/ir: Store control point counts in struct vsir_program.
vkd3d-shader/ir: Store the block count in struct vsir_program.
vkd3d-shader/ir: Store block names in struct vsir_program.
vkd3d-shader/ir: Get rid of shader_instruction_is_dcl().
vkd3d-shader/ir: Use vsir_instruction_is_dcl() in vsir_validate_instruction().
vkd3d: Use debugstr_hresult() in vkd3d_create_compute_pipeline().
vkd3d: Use debugstr_hresult() in d3d12_pipeline_state_find_and_init_uav_counters().
vkd3d: Use debugstr_hresult() in d3d12_pipeline_state_init_compute().
vkd3d: Use debugstr_hresult() in vkd3d_uav_clear_state_init().
vkd3d: Use debugstr_hresult() in vkd3d_create_device().
vkd3d: Use debugstr_hresult() in vkd3d_serialize_root_signature().
vkd3d: Use debugstr_hresult() in vkd3d_serialize_versioned_root_signature().
vkd3d-shader: Start an if-block on VKD3DSIH_IFC in vkd3d_shader_scan_instruction().
vkd3d: Use vkd3d_atomic_increment_u32() in d3d12_fence_AddRef().
vkd3d: Use vkd3d_atomic_decrement_u32() in d3d12_fence_Release().
vkd3d: Use vkd3d_atomic_increment_u32() in d3d12_fence_incref().
vkd3d: Use vkd3d_atomic_decrement_u32() in d3d12_fence_decref().
vkd3d: Use vkd3d_atomic_increment_u32() in d3d12_command_allocator_AddRef().
vkd3d: Use vkd3d_atomic_decrement_u32() in d3d12_command_allocator_Release().
vkd3d: Use vkd3d_atomic_increment_u32() in d3d12_command_list_AddRef().
vkd3d: Use vkd3d_atomic_decrement_u32() in d3d12_command_list_Release().
vkd3d: Use vkd3d_atomic_increment_u32() in d3d12_command_queue_AddRef().
vkd3d: Use vkd3d_atomic_decrement_u32() in d3d12_command_queue_Release().
vkd3d: Use vkd3d_atomic_increment_u32() in d3d12_command_signature_AddRef().
vkd3d: Use vkd3d_atomic_decrement_u32() in d3d12_command_signature_Release().
vkd3d: Use vkd3d_atomic_increment_u32() in vkd3d_instance_incref().
vkd3d: Use vkd3d_atomic_decrement_u32() in vkd3d_instance_decref().
vkd3d: Use vkd3d_atomic_increment_u32() in d3d12_device_AddRef().
vkd3d: Use vkd3d_atomic_decrement_u32() in d3d12_device_Release().
vkd3d-utils: Implement D3DDisassemble().
vkd3d-shader/d3dbc: Do not fail parsing the shader when undeclared inputs are encountered.
vkd3d-shader: Use vkd3d_atomic_increment_u32() in vkd3d_shader_dump_blob().
vkd3d-shader/ir: Pass a struct vsir_program to shader_parser_get_dst_params().
vkd3d-shader/ir: Pass a struct vsir_program to shader_parser_get_src_params().
vkd3d: Use vkd3d_atomic_increment_u32() in d3d12_heap_AddRef().
vkd3d: Use vkd3d_atomic_decrement_u32() in d3d12_heap_Release().
vkd3d: Use vkd3d_atomic_increment_u32() in vkd3d_bind_heap_memory().
vkd3d: Use vkd3d_atomic_decrement_u32() in d3d12_heap_resource_destroyed().
vkd3d: Use vkd3d_atomic_increment_u32() in d3d12_resource_incref().
vkd3d: Use vkd3d_atomic_decrement_u32() in d3d12_resource_decref().
vkd3d: Use vkd3d_atomic_increment_u32() in d3d12_resource_AddRef().
vkd3d: Use vkd3d_atomic_decrement_u32() in d3d12_resource_Release().
vkd3d: Use vkd3d_atomic_increment_u32() in d3d12_descriptor_heap_AddRef().
vkd3d: Use vkd3d_atomic_decrement_u32() in d3d12_descriptor_heap_Release().
vkd3d: Use vkd3d_atomic_increment_u32() in d3d12_query_heap_AddRef().
vkd3d: Use vkd3d_atomic_decrement_u32() in d3d12_query_heap_Release().
vkd3d: Use debugstr_hresult() in d3d12_device_mark_as_removed().
vkd3d: Use vkd3d_atomic_increment_u32() in d3d12_root_signature_AddRef().
vkd3d: Use vkd3d_atomic_decrement_u32() in d3d12_root_signature_Release().
vkd3d: Use vkd3d_atomic_increment_u32() in d3d12_pipeline_state_AddRef().
vkd3d: Use vkd3d_atomic_decrement_u32() in d3d12_pipeline_state_Release().
vkd3d: Use vkd3d_atomic_increment_u32() in d3d12_root_signature_deserializer_AddRef().
vkd3d: Use vkd3d_atomic_decrement_u32() in d3d12_root_signature_deserializer_Release().
vkd3d: Use vkd3d_atomic_increment_u32() in d3d12_versioned_root_signature_deserializer_AddRef().
vkd3d: Use vkd3d_atomic_decrement_u32() in d3d12_versioned_root_signature_deserializer_Release().
vkd3d: Introduce a debug helper for CPU descriptor handles.
vkd3d-common: Get rid of InterlockedIncrement().
vkd3d-common: Get rid of InterlockedDecrement().
vkd3d: Introduce a debug helper for GPU descriptor handles.
vkd3d-utils: Use PRIuPTR for SIZE_T variables in debug traces.
vkd3d: Get rid of vkd3d_atomic_increment().
vkd3d: Get rid of vkd3d_atomic_decrement().
vkd3d: Use PRIuPTR for SIZE_T variables in debug traces.
vkd3d: Cast DWORD flags to uint32_t in debug traces.
tests: Implement check_requirements() for the OpenGL shader runner.
tests/shader_runner: Allow UAV resources to be created without initial data.
tests: Disable buffering of stdout.
tests/shader_runner: Pass the runner capabilities to run_shader_tests().
tests/shader_runner: Print a summary of the runner capabilities in run_shader_tests().
tests/shader_runner: Print information about the run configuration in run_shader_tests().
vkd3d-shader/hlsl: Introduce hlsl_type.e.resource.
vkd3d-shader/hlsl: Replace HLSL_MODIFIER_RASTERIZER_ORDERED with a hlsl_type.e.resource flag.
ci: Enable colour output for the tests.
vkd3d: Disable "robustBufferAccess2" as well when we disable "robustBufferAccess".
configure: Build with -Wempty-body.
configure: Build with -Wshift-overflow=2.
configure: Build with -Wtype-limits.
configure: Build with -Wwrite-strings.
vkd3d: Store a D3D12_RESOURCE_DESC structure in struct vkd3d_image_resource_create_info.
vkd3d-shader: Add documentation for the INT64 and FLOAT64 feature flags.
vkd3d-compiler: Compile SPIR-V shaders with the int64 and float64 features.
tests/shader_runner: Set the vkd3d-shader API version in the Vulkan runner.
tests/shader_runner: Set the SPIR-V feature flags based on the runner caps.
vkd3d-utils: Restore the \since 1.11 command on D3DReflect().
vkd3d-shader: Document the newly supported transformations for d3dbc and HLSL sources.
vkd3d-shader: Update the chained structure list for vkd3d_shader_compile().
Jacek Caban (1):
vkd3d: Use uint64_t for the size in vkd3d_gpu_va_allocator_allocate.
Nikolay Sivov (30):
tests: Add some tests for effects groups syntax.
vkd3d-shader/hlsl: Add 'fxgroup' token.
vkd3d-shader/hlsl: Rename rule for top-level techniques.
vkd3d-shader/hlsl: Add variables for techniques.
vkd3d-shader/hlsl: Handle effect group statement.
vkd3d-shader: Add separate binary target type for effects.
vkd3d-shader/tpf: Add initial support for writing fx_4_0/fx_4_1 binaries.
vkd3d-shader/hlsl: Rename the rule for an optional name.
vkd3d-shader/hlsl: Add a scope for technique variables.
vkd3d-shader/fx: Write empty passes blocks.
vkd3d-shader/fx: Initial support for fx_5_0 output.
vkd3d-shader/fx: Do not write the same string twice.
tests/hlsl: Add some tests for annotations.
vkd3d-shader/hlsl: Add initial support for parsing annotations.
vkd3d-shader/hlsl: Add passes variables to the techniques.
vkd3d-shader/hlsl: Allow annotations on passes.
vkd3d-shader/hlsl: Allow annotations on techniques.
vkd3d-shader/fx: Check technique type in global scope as well.
vkd3d-shader/fx: Add initial support for writing fx_2_0 binaries.
vkd3d-shader/fx: Add initial support for writing passes for fx_2_0.
vkd3d-shader/fx: Use variable pointer in write_group().
vkd3d-shader/fx: Do not align strings for fx_4/fx_5 profiles.
vkd3d-shader/fx: Add initial support for writing buffers descriptions.
vkd3d-shader/fx: Do not align structured data section.
vkd3d-shader/hlsl: Add RenderTargetView object type.
vkd3d-shader/fx: Add initial support for writing object variables.
vkd3d-shader/fx: Handle fx_4+ texture types.
vkd3d-shader/fx: Handle fx_4+ UAV types.
vkd3d-shader/hlsl: Add DepthStencilView object type.
vkd3d-shader/fx: Write DepthStencilView types.
Petrichor Park (4):
tests/shader-runner: Add tests for acos and asin trig intrinsics.
tests/shader-runner: Add tests for atan and atan2 trig intrinsics.
vkd3d-shader/hlsl: Implement acos and asin trig intrinsics.
vkd3d-shader/hlsl: Implement atan and atan2.
Stefan Dösinger (4):
tests: Show that creating identical root signatures returns the same pointer.
tests: Show that graphics pipeline state objects are not reused.
tests: Show that compute pipeline state objects are not reused.
tests: Show that CreatePipelineState also doesn't reuse duplicate objects.
Victor Chiletto (1):
vkd3d-shader/hlsl: Fix hlsl_ir_resource_store::resource cleanup.
Zebediah Figura (41):
vkd3d-shader/hlsl: Avoid shadowing "load" in lower_index_loads().
tests: Avoid shadowing "l" in test_get_copyable_footprints().
vkd3d-shader/d3dbc: Avoid shadowing "instr" in write_sm1_jump().
vkd3d-shader/hlsl: Avoid shadowing "block" in resolve_loop_continue().
vkd3d-shader/hlsl: Avoid shadowing "load" in intrinsic_tex().
vkd3d-shader/hlsl: Avoid shadowing "jump" in normalize_switch_cases().
vkd3d-shader: Add a helper to search the scan descriptor info.
configure: Enable -Wshadow.
vkd3d-shader/spirv: Do not use the output_info array for patch constants.
vkd3d-shader/tpf: Do not uninvert used masks for domain shader patch constants.
vkd3d-shader/dxil: Map SEMANTIC_KIND_TARGET to VKD3D_SHADER_SV_TARGET.
vkd3d-shader/spirv: Declare I/O registers from the signature.
vkd3d-shader/dxil: No longer synthesize DCL instructions.
vkd3d-shader: Do not scan the shader in vkd3d_shader_parser_compile() for assembly targets.
vkd3d-shader: Do not scan DCL instructions which do not declare resources.
tests: Use struct vkd3d_shader_scan_signature_info to retrieve the VS input signature.
tests: Avoid using "SV_Position" as a name for the vertex shader input.
vkd3d-shader: Allow compiling d3d bytecode to SPIR-V.
vkd3d-shader: Lower shader model 1/2 inter-stage I/O to a flat array.
vkd3d-shader/d3dbc: Assign unique register indices for VKD3DSPR_RASTOUT.
vkd3d-shader/hlsl: Remove a redundant definition of the "float" type.
vkd3d-shader/hlsl: Do not try to lower ternaries of types other than scalar or vector.
tests: Add many more tests for ternary expressions.
vkd3d-shader/hlsl: Separate an add_ternary() helper.
vkd3d-shader/hlsl: Allow non-numeric types in the ternary operator.
vkd3d-shader/hlsl: Forbid objects in ternary conditions.
vkd3d-shader/hlsl: Handle scalar conditions in ternaries.
vkd3d-shader/hlsl: Handle scalar values in ternaries.
vkd3d-shader/hlsl: Forbid mismatched argument types in ternaries.
vkd3d-shader/hlsl: Copy some missing fields in hlsl_type_clone().
vkd3d-shader/hlsl: Validate the condition data type for loops as well.
vkd3d-shader/hlsl: Validate that condition expressions are numeric.
vkd3d-shader/hlsl: Always cast to bool in if() statements.
tests: Add tests for valid conditional types.
include: Add vkd3d_d3d12shader.idl.
vkd3d-utils: Add D3DReflect().
vkd3d-utils: Implement input and output signature reflection.
tests: Test VKD3D_SHADER_COMPILE_OPTION_BACKCOMPAT_MAP_SEMANTIC_NAMES.
tests: Test signature reflection via D3DReflect().
vkd3d-shader/hlsl: Check the resource format for UAVs also in hlsl_types_are_equal().
vkd3d-shader/hlsl: Write the SFI0 section and "REQUIRES_ROVS" flag when ROVs are used.
```
The Wine development release 9.3 is now available.
What's new in this release:
- Improvements to Internet Proxy support.
- New HID pointer device driver.
- Timezone database update.
- More exception fixes on ARM platforms.
- Various bug fixes.
The source is available at <https://dl.winehq.org/wine/source/9.x/wine-9.3.tar.xz>
Binary packages for various distributions will be available
from <https://www.winehq.org/download>
You will find documentation on <https://www.winehq.org/documentation>
Wine is available thanks to the work of many people.
See the file [AUTHORS][1] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/raw/wine-9.3/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 9.3 (total 23):
- #33050 FDM (Free Download Manager) crashes with page fault when any remote FTP directory opened
- #46070 Basemark Web 3.0 Desktop Launcher crashes
- #46263 Final Fantasy XI crashes after accepting EULA when using Ashita; World of Warships hangs at login screen
- #46839 Happy Foto Designer Font not found "Fehler (Code 1) [Font is not supported: Roboto]"
- #50643 IK Product Manager: Unable to download plugins
- #51458 Western Digital SSD Dashboard displays black screen
- #51599 cmd.exe incorrectly parses an all-whitespace line followed by a closing parenthesis
- #51813 python fatal error redirecting stdout to file
- #52064 Solidworks 2008 crashes on startup
- #52642 Virtual Life 2 freezes
- #54794 Autodesk Fusion360: New SSO login will not open web browser
- #55282 Flutter SDK can't find "aapt" program (where.exe is a stub)
- #55584 Possibly incorrect handling of end_c in ARM64 process_unwind_codes
- #55630 DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2 is not handled in GetAwarenessFromDpiAwarenessContext
- #55810 Finding Nemo (Steam): window borders gone missing (virtual desktop)
- #55897 cpython 3.12.0 crashes due to unimplemented CopyFile2
- #56065 Missing GetAnycastIpAddressTable() implementation
- #56139 scrrun: Dictionary does not allow storing at key Undefined
- #56222 Microsoft Flight Simulator 2020 (steam) needs unimplemented function GDI32.dll.D3DKMTEnumAdapters2
- #56244 SplashTop RMM client for Atera crashes on unimplemented function shcore.dll.RegisterScaleChangeNotifications
- #56273 [Sway] winewayland.drv: cursor does not work in Dead Island 2
- #56328 LMMS 1.2.2 SF2 soundfonts no longer work in Wine 9.1
- #56343 Multiple applications fail to start after de492f9a34
### Changes since 9.2:
```
Alex Henrie (8):
ntdll: Include alloc_type argument in NtMapViewOfSection(Ex) traces.
rpcrt4/tests: Use CRT allocation functions.
where: Implement search with default options.
include: Annotate NdrGetBuffer with __WINE_(ALLOC_SIZE|MALLOC).
wined3d: Use CRT allocation functions.
include: Add debugstr_time to wine/strmbase.h.
msxml3: Use CRT allocation functions.
advapi32/tests: Use CRT allocation functions.
Alexandre Julliard (51):
ntdll: Implement RtlLookupFunctionTable.
ntdll/tests: Don't use x86-64 assembly on ARM64EC.
include: Add some public exception handling structures.
ntdll: Move RtlLookupFunctionEntry() to the CPU backends.
ntdll: Move find_function_info() to the CPU backends.
ntdll: Move RtlAddFunctionTable() to the CPU backends.
ntdll: Support ARM64EC code in RtlLookupFunctionEntry.
ntdll: Make APCs alertable by default on ARM platforms.
ntdll: Move exception unwinding code to a separate file.
ntdll: Move the dynamic unwind tables to unwind.c.
ntdll: Move RtlUnwind to unwind.c.
ntdll: Implement RtlVirtualUnwind for ARM64EC.
winedump: Add dumping of the save_any_reg ARM64 unwind code.
ntdll: Add support for the save_any_reg ARM64 unwind code.
ntdll: Ignore end_c when processing ARM64 unwind codes.
ntdll: Don't count custom stack frames as part of the prolog on ARM64.
rpcrt4/tests: Fix some malloc/HeapAlloc mismatches.
ntdll/tests: Simplify testing of unwind register values on ARM64.
ntdll: Ignore home parameters saving when unwinding epilog on ARM64.
ntdll: Move ARM64 context conversion functions to a new header.
ntdll: Implement EC_CONTEXT unwinding operation on ARM64.
ntdll: Implement CLEAR_UNWOUND_TO_CALL unwinding operation on ARM64.
ntdll: Always set non-volatile pointers for ARM64 unwinding.
kernelbase: Update timezone data to version 2024a.
faudio: Import upstream release 24.02.
mpg123: Import upstream release 1.32.5.
png: Import upstream release 1.6.42.
jpeg: Import upstream release 9f.
zlib: Import upstream release 1.3.1.
lcms2: Import upstream release 2.16.
ldap: Import upstream release 2.5.17.
xslt: Import upstream release 1.1.39.
xml2: Import upstream release 2.11.7.
zydis: Import upstream release 4.1.0.
fluidsynth: Import upstream release 2.3.4.
ntdll/tests: Move unwinding tests to a separate file.
ntdll/tests: Run dynamic unwind tests on ARM platforms.
ntdll/tests: Run RtlVirtualUnwind tests on ARM64EC.
ntdll: Default to the SEH channel on x86-64.
ntdll: Add a helper macro to dump a register context.
ntdll: Share exception dispatch implementation across platforms.
include: Add new idl files to the makefile.
ntdll: Handle leaf functions in RtlVirtualUnwind on ARM64.
ntdll: Handle leaf functions in RtlVirtualUnwind on ARM.
ntdll: Handle leaf functions in RtlVirtualUnwind on x86-64.
ntdll: Remove support for unwinding ELF dlls on ARM.
configure: Stop passing ARM code generation options to winebuild.
configure: Require floating point support on ARM targets.
winegcc: Stop passing ARM code generation options to winebuild.
winebuild: Remove ARM code generation option.
ntdll/tests: Fix a test failure when exception information is missing.
Aurimas Fišeras (2):
po: Update Lithuanian translation.
po: Update Lithuanian translation.
Bernhard Übelacker (4):
cmd: Handle lines with just spaces in bracket blocks.
cmd: Avoid execution if block misses closing brackets.
wininet: Add missing assignment of return value.
wininet: Avoid crash in InternetCreateUrl with scheme unknown.
Biswapriyo Nath (5):
include: Add IDirect3DSurface in windows.graphics.directx.direct3d11.idl.
include: Add BitmapBuffer runtimeclass in windows.graphics.imaging.idl.
include: Add SoftwareBitmap runtimeclass in windows.graphics.imaging.idl.
include: Add DetectedFace runtimeclass in windows.media.faceanalysis.idl.
include: Add FaceDetector runtimeclass in windows.media.faceanalysis.idl.
Brendan McGrath (1):
d2d1/tests: Increase timeout from 1 sec to 5 secs.
Brendan Shanks (2):
ntdll: Assume process-private futexes are always present on Linux.
ntdll: On x86_64, don't access %gs in signal_start_thread().
Daniel Lehman (8):
oleaut32: Handle exponent in VarBstrFromR[48] in non-English locales.
oleaut32/tests: Add tests for number of digits.
oleaut32: Use scientific notation only for larger numbers in VarBstrFromR[48].
include: Add some msvcrt declarations.
msvcrt: Use string sort for strncoll/wcsncoll.
msvcrt/tests: Include locale in ok message.
msvcrt/tests: Add tests for strcoll/wcscoll.
msvcrt: Use string sort for strcoll/wcscoll.
David Kahurani (1):
msi: Avoid leaking stream on DB update.
Eric Pouech (11):
kernel32/tests: Add tests for CreateProcess with invalid handles.
kernelbase: Don't use INVALID_HANDLE_VALUE as std handle in CreateProcess.
msvcrt/tests: Extend test for invalid std handle on msvcrt init.
msvcrt: Don't reset invalid std handle in init.
kernel32/tests: Remove todo scaffolding for CreateProcess() tests.
winedump: Don't crash on non-effective runtime function entries.
kernel32/tests: Check if thread is suspended in debugger attachment tests.
winedbg: Use share attributes for opening command file.
dbghelp: Implement SymFromIndex().
winedump: Don't expect a fixed number of substreams in DBI header (PDB).
dbghelp: Don't expected a fixed number of substreams in DBI header (PDB).
Fabian Maurer (5):
user32/sysparams: Only allow dpi awareness tests to return invalid on windows.
user32/sysparams: Handle more contexts in GetAwarenessFromDpiAwarenessContext.
wineoss: Remove superflous check.
winealsa: Remove superflous check.
mmdevapi/tests: Add test for invalid format with exclusive mode.
Floris Renaud (1):
po: Update Dutch translation.
Gabriel Ivăncescu (7):
jscript: Add initial implementation of ArrayBuffer.
jscript: Add initial implementation of DataView.
jscript: Implement DataView setters.
jscript: Implement DataView getters.
jscript: Implement ArrayBuffer.prototype.slice.
kernelbase: Copy the read-only attribute from the source.
explorer: Set layered style on systray icons before calling into the driver.
Geoffrey McRae (1):
include: Add interfaces for ID3D11On12Device1 and ID3D11On12Device2.
Hans Leidekker (1):
wbemprox: Protect tables with a critical section.
Ivo Ivanov (2):
hidclass.sys: Use the correct string for container_id.
hidclass.sys: Use HID_DEVICE in the mfg_section to match the recent changes.
Jacek Caban (7):
winebuild: Introduce exports struct.
winebuild: Use exports struct for imports handling.
winebuild: Use exports struct for 16-bit modules handlign.
winebuild: Use exports struct for exports handling.
winebuild: Use exports struct in assign_ordinals.
winebuild: Use exports struct in assign_names.
winebuild: Move target filtering to assign_exports.
Jinoh Kang (6):
ntdll: Remove stale comment from set_async_direct_result() documentation.
include: Add definition for FILE_STAT_INFORMATION.
ntdll/tests: Add tests for NtQueryInformationFile FileStatInformation.
ntdll: Implement NtQueryInformationFile FileStatInformation.
kernelbase: Replace FileAllInformation with FileStatInformation in GetFileInformationByHandle().
kernel32/tests: Fix console test with odd-sized consoles.
Kartavya Vashishtha (1):
kernelbase: Implement CopyFile2().
Krzysztof Bogacki (4):
gdi32/tests: Add D3DKMTEnumAdapters2 tests.
gdi32: Add D3DKMTEnumAdapters2() stub.
win32u: Maintain a list of GPUs in cache.
win32u: Implement NtGdiDdDDIEnumAdapters2.
Louis Lenders (1):
imm32: Update spec file.
Marc-Aurel Zent (4):
iphlpapi: Implement GetRTTAndHopCount().
server: Use __pthread_kill() syscall wrapper.
server: Use bootstrap_register2() instead of bootstrap_register().
server: Improve formatting in mach init_tracing_mechanism().
Mohamad Al-Jaf (5):
include: Add windows.security.authentication.onlineid.idl file.
windows.security.authentication.onlineid: Add stub DLL.
windows.security.authentication.onlineid: Add IOnlineIdSystemAuthenticatorStatics stub interface.
windows.security.authentication.onlineid: Add IOnlineIdServiceTicketRequestFactory stub interface.
windows.security.authentication.onlineid: Implement IOnlineIdSystemAuthenticatorStatics::get_Default().
Nikola Kuburović (1):
kernelbase: Reduce FIXME to TRACE if params is null.
Paul Gofman (29):
kernel32/tests: Add tests for critical section debug info presence.
strmbase: Force debug info in critical sections.
dmime: Force debug info in critical sections.
dmsynth: Force debug info in critical sections.
mapi32: Force debug info in critical sections.
propsys: Force debug info in critical sections.
rpcrt4: Force debug info in critical sections.
vcomp: Force debug info in critical sections.
webservices: Force debug info in critical sections.
ntdll: Don't hardcode xstate feature mask.
ntdll: Don't hardcode xstate size in syscall frame.
ntdll: Don't hardcode xstate size in exception stack layout.
powershell: Read input command from stdin.
winhttp: Force debug info in critical sections.
xaudio2: Force debug info in critical sections.
kernelbase: Force debug info in critical sections.
combase: Force debug info in critical sections.
crypt32: Force debug info in critical sections.
winhttp: Mind read size when skipping async read in WinHttpReadData().
dinput: Force debug info in critical sections.
dplayx: Force debug info in critical sections.
dsound: Force debug info in critical sections.
dwrite: Force debug info in critical sections.
inetcomm: Force debug info in critical sections.
mscoree: Force debug info in critical sections.
ntdll: Force debug info in critical sections.
qmgr: Force debug info in critical sections.
windowscodecs: Force debug info in critical sections.
wininet: Force debug info in critical sections.
Piotr Caban (20):
wininet: Store proxy type in proxyinfo_t.
wininet: Don't allocate global_proxy structure dynamically.
wininet: Move reading proxy settings from registry to separate function.
wininet: Return process-wide proxy settings from INTERNET_GetProxySettings.
wininet: Add support for reading AutoConfigURL from registry.
wininet: Store whole ProxyServer string so it's not lost while saving settings to registry.
wininet: Set ProxyOverride registry key when saving proxy information.
wininet: Set AutoConfigURL registry key when saving proxy information.
wininet: Test INTERNET_OPTION_PER_CONNECTION_OPTION on process settings.
wininet: Fix buffer size calculation in InternetQueryOption(INTERNET_OPTION_PER_CONNECTION_OPTION).
wininet: Use GlobalAlloc in InternetQueryOption(INTERNET_OPTION_PER_CONNECTION_OPTION).
wininet/tests: Cleanup INTERNET_OPTION_PER_CONNECTION_OPTION tests.
wininet: Add support for writing connection settings binary blobs from registry.
wininet: Add support for reading connection settings binary blobs from registry.
wininet: Add support for INTERNET_PER_CONN_AUTOCONFIG_URL in InternetSetOption.
wininet: Fix INTERNET_PER_CONN_AUTOCONFIG_URL option when quering global proxy settings.
wininet: Add support for INTERNET_OPTION_PER_CONNECTION_OPTION option on session handles.
wininet/tests: Add more INTERNET_OPTION_PER_CONNECTION_OPTION tests.
inetcpl.cpl: Use wininet functions to set proxy settings.
wininet/tests: Add initial PAC script tests.
Rastislav Stanik (1):
iphlpapi: Add stub for GetAnycastIpAddressTable().
Rémi Bernon (45):
winex11: Process XInput2 events with QS_INPUT filter.
winex11: Advertise XInput2 version 2.2 support.
winex11: Initialize XInput2 extension on every thread.
winex11: Always listen to XInput2 device changes events.
winex11: Simplify XInput2 device valuator lookup.
hidclass: Make HID hardware ids more similar to windows.
hidclass: Only access Tail.Overlay.OriginalFileObject when needed.
mouhid.sys: Introduce a new HID pointer device driver.
mouhid.sys: Request preparsed data and inspect device caps.
mouhid.sys: Read reports from the underlying HID device.
mouhid.sys: Parse HID reports to track contact points.
mfreadwrite/reader: Introduce source_reader_queue_sample helper.
mfreadwrite/reader: Pass the transform to source_reader_pull_stream_samples.
mfreadwrite/reader: Introduce a new source_reader_allocate_stream_sample helper.
mfreadwrite/reader: Introduce new source_reader_(drain|flush)_transform_samples helpers.
mfreadwrite/reader: Repeat pushing / pulling samples while it succeeds.
winevulkan: Wrap host swapchain handles.
winevulkan: Adjust VkSurfaceCapabilitiesKHR image extents with client rect.
winewayland: Remove now unnecessary VkSurfaceCapabilitiesKHR fixups.
winevulkan: Implement vkGetPhysicalDeviceSurfaceCapabilities2KHR fallback.
winevulkan: Remove now unnecessary vkGetPhysicalDeviceSurfaceCapabilities2KHR driver entry.
winevulkan: Remove now unnecessary vkGetPhysicalDeviceSurfaceCapabilitiesKHR driver entry.
winegstreamer: Use MFCreateVideoMediaTypeFromSubtype in GetInputAvailableType.
winegstreamer: Use MFCreateVideoMediaTypeFromSubtype in GetOutputAvailableType.
winegstreamer: Remove unnecessary create_output_media_type checks.
winegstreamer: Use GUID arrays for H264 decoder media types.
winegstreamer: Complete H264 current output type reported attributes.
win32u: Deduce monitor device flags from their adapter.
win32u: Only consider active monitors for clone detection.
win32u: Only consider active monitors for virtual screen rect.
win32u: Only consider active monitors in monitor_from_rect.
win32u: Don't assume that the primary adapter is always first.
winegstreamer: Use MFCalculateImageSize to compute output info size.
ir50_32: Use the proper hr value for stream format change.
winegstreamer: Use the H264 decoder to implement the IV50 decoder.
winegstreamer: Rename struct h264_decoder to struct video_decoder.
winevulkan: Handle creation of surfaces with no HWND directly.
winex11: Remove now unnecessary create_info HWND checks.
winevulkan: Handle invalid window in vkCreateSwapchainKHR.
winevulkan: Handle invalid window in vkGetPhysicalDevicePresentRectanglesKHR.
winevulkan: Remove now unnecessary vkGetPhysicalDevicePresentRectanglesKHR driver entry.
winevulkan: Implement vkGetPhysicalDeviceSurfaceFormats2KHR fallback.
winevulkan: Remove now unnecessary vkGetPhysicalDeviceSurfaceFormats2KHR driver entry.
winevulkan: Remove now unnecessary vkGetPhysicalDeviceSurfaceFormatsKHR driver entry.
server: Use the startup info to connect the process winstation.
Santino Mazza (7):
mlang/tests: Test for GetGlobalFontLinkObject.
mlang: Implement GetGlobalFontLinkObject.
mlang/tests: Test codepages priority bug in GetStrCodepages.
mlang: Fix bug with codepage priority in GetStrCodePages.
gdiplus: Replace HDC with GpGraphics in parameters.
gdiplus/tests: Add interactive test for font linking.
gdiplus: Implement font linking for gdiplus.
Shaun Ren (15):
sapi: Implement ISpeechObjectToken::GetDescription.
sapi: Implement ISpeechObjectToken::Invoke.
sapi: Implement ISpeechObjectToken::GetIDsOfNames.
sapi: Implement ISpeechObjectTokens::get_Count.
sapi: Implement IEnumVARIANT::Next for ISpeechObjectTokens.
sapi: Implement ISpeechObjectTokens::Invoke.
sapi: Free typelib on DLL detach.
sapi: Implement ISpeechVoice::Speak.
sapi: Handle zero-length attributes correctly in ISpObjectTokenCategory::EnumTokens.
sapi: Introduce create_token_category helper in tts.
sapi: Implement ISpeechVoice::GetVoices.
sapi: Implement ISpeechVoice::GetTypeInfoCount.
sapi: Implement ISpeechVoice::GetTypeInfo.
sapi: Implement ISpeechVoice::GetIDsOfNames.
sapi: Implement ISpeechVoice::Invoke.
Vijay Kiran Kamuju (1):
include: Add msdelta header file.
Yuxuan Shui (6):
dmband: Implement getting/setting GUID_BandParam on band tracks.
dmime/tests: Add MIDI loading test.
dmime: Parse MIDI headers.
dmime: Don't skip chunk for MIDI files.
dmime: Read through a MIDI file.
dmime/tests: Improve error reporting from expect_track.
Zebediah Figura (32):
urlmon/tests: Add basic tests for CoInternetParseUrl(PARSE_CANONICALIZE).
shlwapi/tests: Move the UrlCanonicalize() tests into test_UrlCanonicalizeA().
shlwapi/tests: Remove the unused "wszExpectUrl" variable from check_url_canonicalize().
shlwapi/tests: Use winetest_push_context() in test_UrlCanonicalizeA().
shlwapi/tests: Move UrlCombine() error tests out of the loop.
kernelbase: Do not use isalnum() with Unicode characters.
kernelbase: Do not canonicalize the relative part in UrlCombine().
kernelbase: Reimplement UrlCanonicalize().
kernelbase: Use scheme_is_opaque() in UrlIs().
shlwapi/tests: Add many more tests for UrlCanonicalize().
dinput/tests: Return void from test_winmm_joystick().
wined3d: Merge shader_load_constants() into shader_select().
wined3d: Introduce a separate vp_disable() method.
wined3d: Introduce a separate fp_disable() method.
wined3d: Pass a wined3d_state pointer to the vp_enable() and fp_enable() methods.
wined3d: Pass a non-const wined3d_context pointer to the FFP *_apply_draw_state() methods.
wined3d/arb: Move fragment program compilation from fragment_prog_arbfp() to arbfp_apply_draw_state().
wined3d: Set the pipeline key viewport and scissor count at initialization.
wined3d: Make the viewport state dynamic.
wined3d: Make the scissor state dynamic.
wined3d: Enable EXT_extended_dynamic_state.
wined3d: Use dynamic state for depth/stencil state if possible.
shell32: Remove two unused strings.
shell32: Always use IContextMenu::InvokeCommand() when selecting an item from the context menu.
shell32: Do not set the default menu item from ShellView_DoContextMenu().
shell32: Separate a get_filetype() helper.
shell32: Properly implement context menu verbs.
wined3d/arb: Move SPECULARENABLE constant loading to arbfp_apply_draw_state().
wined3d/arb: Move TEXTUREFACTOR constant loading to arbfp_apply_draw_state().
wined3d/arb: Move color key constant loading to arbfp_apply_draw_state().
wined3d/arb: Move texture constant loading to arbfp_apply_draw_state().
wined3d/arb: Move FFP bumpenv constant loading to arbfp_apply_draw_state().
Zhiyi Zhang (4):
include: Rename DF_WINE_CREATE_DESKTOP to DF_WINE_VIRTUAL_DESKTOP.
server: Inherit internal desktop flags when creating desktops.
dsound/tests: Test that formats with more than two channels require WAVEFORMATEXTENSIBLE.
dsound: Reject WAVEFORMATEX formats with more than two channels.
```