The Wine development release 10.2 is now available.
What's new in this release:
- Bundled vkd3d upgraded to version 1.15.
- Support for setting thread priorities.
- New Wow64 mode can be enabled dynamically.
- More progress on the Bluetooth driver.
- Various bug fixes.
The source is available at <https://dl.winehq.org/wine/source/10.x/wine-10.2.tar.xz>
Binary packages for various distributions will be available
from the respective [download sites][1].
You will find documentation [here][2].
Wine is available thanks to the work of many people.
See the file [AUTHORS][3] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/wikis/Download
[2]: https://gitlab.winehq.org/wine/wine/-/wikis/Documentation
[3]: https://gitlab.winehq.org/wine/wine/-/raw/wine-10.2/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 10.2 (total 20):
- #25872 Guild Wars 'test system' doesn't show test results
- #39474 MSWT Kart 2004 does not work
- #50152 YOU and ME and HER: Game crashes after launching from game launcher
- #56260 16-bit Myst deadlocks when entering Book
- #56464 vbscript: Join() builtin is not implemented
- #56951 psql 16: unrecognized win32 error code: 127 invalid binary: Invalid argument / could not find a "psql.exe" to execute
- #57310 wineboot failed to initialize a wine prefix
- #57625 Regression: some fullscreen games are displayed incorrectly upon switching from and back to game window
- #57787 Final Fantasy XI Online crashes with unhandled page fault on launch
- #57793 Wine Wordpad started with blank screen
- #57795 cmd lacks support for right-to-left handle redirection (2<&1)
- #57803 Sekiro: Shadows Die Twice crashes at launch with Xbox One controller connected
- #57804 cmd: '@echo off' gets propagated to parent on CALL instruction (CALL seems to freezes)
- #57809 cmd: Incorrect substring expansion of last character (e.g. `!MY_STR:~1!`)
- #57810 ITextStream::WriteBlankLines() needs to be implemented for libxml2's configure.js to work
- #57817 mvscp90 ::std::ifstream::seekg(0) crashes
- #57819 Wine unable to start when built with binutils 2.44
- #57824 SetThreadPriority unexpectedly fails on terminated threads instead of no-op
- #57834 Cyberpunk 2077 doesn't load with CyberEngine Tweaks
- #57847 Cross-compiled Wine no longer installs a 'wine' loader binary
### Changes since 10.1:
```
Adam Markowski (1):
po: Update Polish translation.
Aida Jonikienė (1):
wined3d: Add DXT format mappings in the Vulkan renderer.
Alex Henrie (6):
urlmon/tests: Use wide character string literals.
advapi32/tests: Use wide character string literals.
setupapi: Use wide character string literals.
msxml3: Use wide character string literals.
krnl386: Add a WOWCallback16Ex flag to simulate a hardware interrupt.
mmsystem: Simulate a hardware interrupt in MMSYSTDRV_Callback3216.
Alexandre Julliard (31):
user32: Set last error on failed window enumeration.
server: Fix desktop access check for window enumeration.
ntdll: Add a helper function to retrieve the .so directory.
ntdll: Add a helper function to get the alternate 32/64-bit machine.
ntdll: Set the WINELOADER variable on the PE side, using a Windows path.
loader: Install the Wine loader in the Unix lib directory.
tools: Add a simpler Wine launcher in the bin directory.
tools: Move the loader man pages to the new Wine loader directory.
dbghelp: Always use the WINELOADER variable for the loader name.
ntdll: Disable file system redirection until the initial exe is loaded.
ntdll: Look for a builtin exe corresponding to the loader basename.
makefiles: Install binaries as symlinks to wine.
ntdll: Allow forcing new wow64 mode by setting WINEARCH=wow64.
ntdll: Move setting DYLD_LIBRARY_PATH on macOS to the loader.
makefiles: Create wine as a symlink to tools/wine/wine.
makefiles: Link to the wine loader in the tools directory if it was built.
makefiles: Generate the wow64 symlinks from makedep.
makefiles: Generate more of the re-configure rules from makedep.
make_unicode: Update timezone data source to version 2025a.
makefiles: Don't clean files in other directories.
png: Import upstream release 1.6.45.
lcms2: Import upstream release 2.17.
faudio: Import upstream release 25.02.
rsaenh: Use RtlGenRandom() directly.
rsaenh: Don't use printf.
vkd3d: Import upstream release 1.15.
lcms2: Allow creating a transform without specifying input/output formats.
server: Support an arbitrary number of PE sections.
ntdll: Support an arbitrary number of PE sections.
vkd3d: Update version number.
makefiles: Fix the distclean target to clean everything.
Alexandros Frantzis (1):
winewayland: Don't crash on text input done events without focus.
Anton Baskanov (1):
winedbg: Make crash dialog topmost.
Attila Fidan (4):
winewayland: Enable/disable the zwp_text_input_v3 object.
winewayland: Post IME update for committed text.
winewayland: Implement SetIMECompositionRect.
winewayland: Post IME update for preedit text.
Austin English (1):
mshtml: Add registry association for .log files.
Bernhard Übelacker (3):
wbemprox: Increase buffer size one iteration earlier (ASan).
ntdll/tests: Skip leap secondInformation test with older Windows versions.
msvcrt/tests: Add missing parameter pmode to _open call (ASan).
Biswapriyo Nath (3):
include: Add UI Automation Style ID definitions.
include: Add IWiaDevMgr2 definition in wia_lh.idl.
include: Add missing structures for wiadef.h in wia_lh.idl.
Brendan McGrath (3):
winedmo: Explicitly set 'Data1' value for VP9 GUID.
mf/tests: Add tests using a new WMV decoder MFT.
winegstreamer: Store and use previous WMV stride value.
Brendan Shanks (2):
configure: MacOS is always darwin*.
winecoreaudio: Avoid duplicate Program Change or Channel Aftertouch MIDI messages.
Connor McAdams (2):
quartz/tests: Add a test for resetting stream position after receiving EC_COMPLETE.
quartz/filtergraph: Allow changing stream position after receiving EC_COMPLETE.
Conor McCarthy (16):
mfplat/tests: Test putting work on an undefined queue id.
rtworkq/tests: Test putting work on an undefined queue id.
rtworkq: Support putting work on RTWQ_CALLBACK_QUEUE_UNDEFINED.
rtworkq: Support putting work on any id in RTWQ_CALLBACK_QUEUE_PRIVATE_MASK.
mfplat/tests: Introduce a helper to check the platform lock count.
mfplat/tests: Test mixing of MF platform functions with their Rtwq equivalents.
mfplat/tests: Test platform startup and lock counts.
rtworkq/tests: Test work queue.
rtworkq: Introduce a platform startup count.
rtworkq: Introduce an async result object cache.
mfplat: Free the inner cookie passed to resolver_create_cancel_object().
mfplat/tests: Release callback2 in test_event_queue().
mfplat/tests: Check for async result release after canceling work and shutting down.
rtworkq/tests: Test scheduled items.
rtworkq/tests: Test queue shutdown with pending items.
rtworkq: Do not cancel pending callbacks when closing a thread pool.
Damjan Jovanovic (2):
scrrun: Implement ITextStream::WriteBlankLines().
cmd: Add support for right-to-left handle redirection (2<&1).
Dmitry Timoshkov (17):
windowscodecs/tests: Add some tests for IWICBitmapFlipRotator.
windowscodecs: Implement IWICBitmapFlipRotator(WICBitmapTransformFlipHorizontal) for bitmaps with bpp >= 8.
windowscodecs: Implement IWICBitmapFlipRotator(WICBitmapTransformRotate90) for bitmaps with bpp >= 8.
windowscodecs: Simplify a bit FlipRotator_CopyPixels() implementation.
wldap32: Enable libldap tracing with +wldap32 channel.
wldap32: Don't use win32 constant when calling into libldap.
oleaut32: Fix logic for deciding whether type description follows the name.
oleaut32: 'typekind' is the last field of SLTG_OtherTypeInfo structure.
oleaut32: Implement decoding of SLTG help strings.
oleaut32: Add support for decoding SLTG function help strings.
oleaut32: Add support for decoding SLTG variable help strings.
oleaut32: Make OleLoadPicture load DIBs using WIC decoder.
server: Add support for merging WM_MOUSEWHEEL messages.
oleaut32: Add missing fixup for SLTG typename offset.
oleaut32: Avoid double initialization of TypeInfoCount when reading SLTG typelib.
gdiplus: Add support for more image color formats.
gdiplus/tests: Add some tests for loading TIFF images in various color formats.
Elizabeth Figura (9):
shdocvw: Remove ParseURLFromOutsideSource() implementation.
shdocvw: Remove URLSubRegQueryA() implementation.
wined3d: Propagate a CLEARED location when blitting.
wined3d: Explicitly check for BUFFER/SYSMEM before calling wined3d_texture_download_from_texture().
wined3d: Introduce initial support for Direct3D 10+ 2-plane formats.
wined3d: Forbid creating unaligned planar textures.
wined3d: Forbid unaligned blits for planar textures.
wined3d: Implement creating views of planar resources.
d3d11: Implement D3D11_FEATURE_D3D9_SIMPLE_INSTANCING_SUPPORT.
Eric Pouech (4):
cmd/tests: Add tests about echo mode persistence across batch calls.
cmd: Preserve echo mode across interactive batch invocation.
cmd/tests: Add tests wrt. variable expansion with substring modifition.
cmd: Fix substring substitution in variable expansion.
Esme Povirk (4):
comctl32: Test for an IAccessible interface on SysLink controls.
comctl32: Further testing of SysLink IAccessible.
comctl32: Stub IAccessible interface for SysLink controls.
comctl32: Implement accRole for SysLink controls.
Francis De Brabandere (1):
vbscript: Add Join implementation.
Gabriel Ivăncescu (2):
mshtml: Clear the documents list when detaching inner window.
jscript: Use as_jsdisp where object is known to be a jsdisp.
Gijs Vermeulen (1):
winegstreamer: Implement IWMSyncReader2::GetMaxOutputSampleSize.
Hans Leidekker (1):
sort: Support /+n option.
Jacek Caban (11):
ntdll: Pass WINE_MODREF to import_dll.
ntdll: Pass importer pointer to find_ordinal_export.
ntdll: Pass importer pointer to find_named_export.
ntdll: Pass importer pointer to find_forwarded_export.
ntdll: Pass importer pointer to build_import_name.
ntdll: Use NULL importer in LdrGetProcedureAddress.
ntdll: Remove no longer needed current_modref.
msvcp: Avoid explicitly aligning structs passed by value.
msvcp60: Avoid explicitly aligning structs passed by value.
ntdll: Use signed type for IAT offset in LdrResolveDelayLoadedAPI.
winebuild: Avoid using .idata section for delay-load import libraries.
Jinoh Kang (11):
server: Don't fail SetThreadPriority() on terminated threads.
kernel32/tests: Add a basic FlushProcessWriteBuffers stress test.
kernel32/tests: Add a store buffering litmus test involving FlushProcessWriteBuffers.
include: Fix ReadNoFence64 on i386.
server: Fix incorrect usage of __WINE_ATOMIC_STORE_RELEASE in SHARED_WRITE_BEGIN/SHARED_WRITE_END.
include: Prevent misuse of __WINE_ATOMIC_* helper macros for non-atomic large accesses.
kernel32/tests: Add basic tests for internal flags of modules loaded with DONT_RESOLVE_DLL_REFERENCES.
kernel32/tests: Test for unexpected LDR_PROCESS_ATTACHED flag in import dependency loaded with DONT_RESOLVE_DLL_REFERENCES.
kernel32/tests: Test for unexpected loader notification for import dependency loaded with DONT_RESOLVE_DLL_REFERENCES.
ntdll: Skip DLL initialization and ldr notification entirely if DONT_RESOLVE_DLL_REFERENCES is set.
ntdll: Remove redundant LDR_DONT_RESOLVE_REFS checks before calling process_attach().
Joe Souza (3):
cmd/tests: Add tests for command DIR /O.
cmd: Cleanup DIR /O logic.
cmd: Implement ability to abort lengthy directory operations via Ctrl-C.
Marc-Aurel Zent (5):
server: Also set thread priorities upon process priority change.
kernel32/tests: Setting process priority on a terminated process should succeed.
server: Implement apply_thread_priority on macOS for application priorities.
server: Implement apply_thread_priority on macOS for realtime priorities.
server: Apply Mach thread priorities after process tracing is initialized.
Martin Storsjö (2):
ntdll: Allow running arm/aarch64 in (old) wow64 mode.
server: Include ARMNT as one of the supported architectures on aarch64.
Michele Dionisio (2):
timeout: Add a timeout command.
timeout/tests: Add minimal test suite.
Mohamad Al-Jaf (14):
windows.web/tests: Remove superfluous cast.
windows.web/tests: Add IJsonValue::get_ValueType() tests.
windows.web: Implement IJsonValue::get_ValueType().
windows.web: Partially implement IJsonValueStatics::Parse().
windows.web: Add error handling in IJsonValue::GetArray().
windows.web: Add error handling in IJsonValue::GetObject().
windows.web: Implement IJsonValue::GetString().
windows.web: Implement IJsonValue::GetNumber().
windows.web: Implement IJsonValue::GetBoolean().
windows.web/tests: Add IJsonValueStatics::Parse() tests.
include: Reorder windows.storage.stream classes.
windows.storage: Add stub dll.
windows.storage: Move RandomAccessStreamReference class from wintypes.
windows.storage: Add error handling in IRandomAccessStreamReferenceStatics::CreateFromStream().
Nikolay Sivov (41):
windowscodecs: Implement CreateMetadataWriter().
windowscodecs/metadata: Create nested writer instances when loading IFD data.
windowscodecs/metadata: Add a stub for WICApp1MetadataWriter.
windowscodecs: Filter options in CreateMetadataWriter().
windowscodecs/metadata: Add initial implementation of CreateMetadataWriterFromReader().
windowscodecs/tests: Add an item enumeration test for the App1 reader.
windowscodecs/metadata: Implement SetValue().
maintainers: Add myself to the scrrun.dll section.
wbemprox: Fix a memory leak while filling Win32_PnPEntity fields.
windowscodecs/metadata: Recursively create nested writers in CreateMetadataWriterFromReader().
windowscodecs/tests: Use generic block writer for testing.
windowscodecs/tests: Add some tests for querying nested readers in App1 format.
windowscodecs/tests: Add some tests for the query writer used on App1 data.
windowscodecs/metadata: Handle nested metadata handlers lookup by CLSID.
windowscodecs/tests: Add a top level block enumerator for the test block writer.
windowscodecs/tests: Add some tests for handler objects enumerator.
windowscodecs: Add missing traces to the IWICEnumMetadataItem implementation.
msi: Avoid invalid access when handling format strings.
windowscodecs/tests: Add some query tests with the Unknown reader.
windowscodecs/metadata: Share implementation between query reader and writer objects.
windowscodecs/tests: Add some tests for CreateQueryWriter().
windowscodecs/tests: Add query reader tests for live block reader updates.
windowscodecs/tests: Add some tests for CreateQueryWriterFromReader().
windowscodecs/tests: Add some tests for the query reader container format.
windowscodecs/metadata: Use VT_LPWSTR type instead of BSTRs when parsing queries.
windowscodecs/metadata: Collect query components before assigning values.
windowscodecs/metadata: Add a helper to parse query index syntax.
windowscodecs/metadata: Use separate helpers to parse query items.
windowscodecs/metadata: Handle empty items in queries.
windowscodecs/metadata: Return query writer object from GetMetadataByName() when block writer is used.
windowscodecs/metadata: Base returned query handlers on metadata handlers.
windowscodecs: Implement CreateQueryWriter().
windowscodecs/tests: Add some tests for default metadata item set.
windowscodecs/metadata: Add flags mask to configure builtin handlers.
windowscodecs/metadata: Implement removing items with IWICMetadataWriter.
windowscodecs/tests: Add some tests for RemoveMetadataByName().
windowscodecs/metadata: Implement RemoveMetadataByName().
windowscodecs/tests: Remove WinXP workarounds from png metadata test.
windowscodecs/tests: Move non-specific CreateQueryReaderFromBlockReader() tests to a separate function.
windowscodecs/tests: Add a test for reader instances returned from the decoder.
windowscodecs: Remove TGA decoder.
Paul Gofman (24):
user32/tests: Test system generated WM_MOUSEMOVE with raw input.
server: Ignore WM_MOUSEMOVE with raw input / RIDEV_NOLEGACY.
dwmapi: Sleep in DwmFlush().
ntoskrnl.exe/tests: Open directory object with nonzero access in test_permanent().
httpapi: Don't open files with zero access.
kernel32: Don't open reg keys with zero access mask.
setupapi: Don't open reg keys with zero access mask.
devenum: Don't open reg keys with zero access mask.
quartz: Don't open reg keys with zero access mask.
wbemprox: Don't open reg keys with zero access mask.
shell32: Don't open reg keys with zero access mask.
server: Check for zero access in alloc_handle().
include: Add cfgmgr ID list filter constants.
setupapi: Implement CM_Get_Device_ID_List[_Size]W().
setupapi: Implement CM_Get_Device_ID_List[_Size]A().
setupapi: Make device instance handlers persistent.
setupapi: Implement CM_Locate_DevNode[_Ex]{A|W}().
winex11.drv: Sort Vulkan physical devices in get_gpu_properties_from_vulkan().
win32u: Sort Vulkan physical devices in get_vulkan_gpus().
crypt32/tests: Add test for chain engine cache update.
crypt32: Lock store in MemStore_deleteContext().
crypt32: Do not temporary delete contexts in I_CertUpdateStore().
crypt32: Only sync registry store if registry has changed.
crypt32: Resync world store for default engines in get_chain_engine().
Rémi Bernon (11):
win32u: Introduce a new add_virtual_mode helper.
win32u: Pass host enumerated display modes to get_virtual_modes.
win32u: Keep virtual screen sizes in a SIZE array.
win32u: Introduce a new get_screen_sizes helper.
win32u: Check generated sizes with the maximum display mode.
win32u: Generate fake resolution list from the host modes.
win32u: Generate modes for the host native frequency.
server: Introduce a new find_mouse_message helper.
winetest: Ignore success and color codes in tests output limit.
win32u: Drop now unnecessary WM_WINE_DESKTOP_RESIZED internal message.
winex11: Delay changing window config if win32 side is still minimized.
Sven Baars (2):
win32u: Fix an uninitialized variable warning on GCC 10.
winegstreamer: Fix a compiler warning with GStreamer 1.18 or lower.
Torge Matthies (2):
ntdll: Add sys_membarrier-based implementation of NtFlushProcessWriteBuffers.
ntdll: Add thread_get_register_pointer_values-based implementation of NtFlushProcessWriteBuffers.
Vibhav Pant (10):
winebth.sys: Don't call dbus_pending_call_set_notify with a NULL pending call.
winebth.sys: Implement IOCTL_WINEBTH_RADIO_SET_FLAG.
winebth.sys: Call bluez_watcher_close as part of bluetooth_shutdown.
bluetoothapis: Add stub for BluetoothEnableIncomingConnections.
bluetoothapis/tests: Add tests for BluetoothEnableIncomingConnections.
bluetoothapis: Implement BluetoothEnableIncomingConnections.
bluetoothapis: Add stub for BluetoothEnableDiscovery.
bluetoothapis/tests: Add tests for BluetoothEnableDiscovery.
bluetoothapis: Implement BluetoothEnableDiscovery.
winebth.sys: Free Unix handle to the local radio after updating its properties.
Wei Xie (1):
http.sys: Avoid crashes in complete_irp() if http header value is space.
Zhiyi Zhang (17):
prntvpt: Add a missing return (Coverity).
ntdll: Implement RtlEnumerateGenericTableWithoutSplaying().
ntdll/tests: Add RtlEnumerateGenericTableWithoutSplaying() tests.
ntdll: Implement RtlEnumerateGenericTable().
ntdll/tests: Add RtlEnumerateGenericTable() tests.
ntdll: Implement RtlGetElementGenericTable().
ntdll/tests: Add RtlGetElementGenericTable().
user32/tests: Test TME_LEAVE when the cursor is not in the specified tracking window.
win32u: Post WM_MOUSELEAVE immediately when the cursor is not in the specified tracking window.
include: Add D3DKMT_DRIVERVERSION.
gdi32/tests: Add D3DKMTQueryAdapterInfo() tests.
win32u: Support KMTQAITYPE_CHECKDRIVERUPDATESTATUS for NtGdiDdDDIQueryAdapterInfo().
win32u: Support KMTQAITYPE_DRIVERVERSION for NtGdiDdDDIQueryAdapterInfo().
winex11.drv: Go though WithdrawnState when transitioning from IconicState to NormalState.
d2d1: Add D2D1ColorMatrix effect stub.
d2d1: Add D2D1Flood effect stub.
d3d11/tests: Test D3D11_FEATURE_D3D9_SIMPLE_INSTANCING_SUPPORT feature.
```
The vkd3d team is proud to announce that release 1.15 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:
- Much more complete support for tessellation shaders in the HLSL compiler.
- Improved function overload resolution in the HLSL compiler.
- Miscellaneous bug fixes.
The source is available from the following location:
<https://dl.winehq.org/vkd3d/source/vkd3d-1.15.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.15
### libvkd3d
- New interfaces:
- vkd3d_queue_signal_on_cpu() allows a Direct3D 12 fence to be signalled
when all preceding work on a Direct3D 12 command queue has been submitted
to the corresponding Vulkan queue.
### libvkd3d-shader
- New features for the HLSL source type:
- ‘InputPatch’ and ‘OutputPatch’ tessellation shader objects. This was the
main feature required by most tessellation shaders that was still missing,
and tessellation shaders should be considered generally usable now.
- Unrolling of loops containing conditional jumps.
- Improved function overload resolution. Previously the compiler was unable
to decide between multiple function overloads with the same number of
parameters.
- The parser is able to continue parsing in a larger number of error cases.
This allows more issues in the input to be reported during a single
compilaton attempt.
- The following intrinsic functions are supported:
- GatherCmp()
- GatherCmpAlpha(), GatherCmpBlue(), GatherCmpGreen(), and GatherCmpRed()
- InterlockedAdd(), InterlockedAnd(), InterlockedCompareExchange(),
InterlockedCompareStore(), InterlockedExchange(), InterlockedMax(),
InterlockedMin(), InterlockedOr(), and InterlockedXor()
- isinf()
- Separate resource and sampler support for shader model 1-3 target
profiles.
- Casts on the left hand side of assignments.
- Reassociation and redistribution of constants in binary expressions, to
facilitate constant folding.
- Packing of interstage I/O variables with the ‘SV_IsFrontFace’,
‘SV_PrimitiveID’, ‘SV_RenderTargetArrayIndex’, ‘SV_SampleIndex’, and
‘SV_ViewPortArrayIndex’ semantics matches d3dcompiler/fxc more closely.
- Parser support for the ‘LineStream’, ‘PointStream’, and ‘TriangleStream’
Stream-Output objects.
- A number of instructions have been implemented for the experimental MSL
target. Although more and more shaders are starting to work, support is
still fairly limited. For example, shader resource views and unordered
access views are still entirely unsupported.
- Shader code generation for fixed-function fog. Like the existing shader code
generation for other fixed-function features, this is mainly relevant for
executing shader model 1-3 sources in modern target environments like
Vulkan.
- The ‘fx’ parser can parse binary effects containing inline shader blobs.
- Internal validator support for validating I/O signatures, as well as I/O
source and destination parameters. The validator is enabled by the
‘force_validation’ option, specified through the VKD3D_SHADER_CONFIG
environment variable.
- Internal validator support for validating the number of indices used with a
register, as well as basic bounds checking for static indices.
- New interfaces:
- The vkd3d_shader_scan_hull_shader_tessellation_info structure extends the
vkd3d_shader_compile_info structure, and can be used to retrieve the
output primitive type and partitioning mode used by a hull shader. This
information is particularly useful for specifying
vkd3d_shader_spirv_domain_shader_target_info structures when targetting
SPIR-V in OpenGL environments.
- The VKD3D_SHADER_PARAMETER_NAME_FOG_FRAGMENT_MODE shader parameter
specifies the kind of fog to generate in a fragment shader.
- The VKD3D_SHADER_PARAMETER_NAME_FOG_COLOUR shader parameter
specifies the fog colour.
- The VKD3D_SHADER_PARAMETER_NAME_FOG_END shader parameter
specifies the ‘end’ parameter used for linear fog generation.
- The VKD3D_SHADER_PARAMETER_NAME_FOG_SCALE shader parameter
specifies the ‘scale’ parameter used for fog generation.
- The VKD3D_SHADER_PARAMETER_NAME_FOG_SOURCE shader parameter
specifies the kind of fog coordinate to output from a pre-rasterisation
shader.
### vkd3d-compiler
- The new ‘dxbc-fx’ source type specifies an effect binary embedded in a DXBC
container. This is a convenience feature;
‘vkd3d-compiler -x dxbc-fx blob.dxbc’ is equivalent to
‘vkd3d-dxbc -x t:FX10 blob.dxbc | vkd3d-compiler -x fx’.
### Changes since vkd3d 1.14:
```
Anna (navi) Figueiredo Gomes (6):
vkd3d-shader/hlsl: Implement cast from bool to int for SM1.
tests/hlsl: Add GatherCmp() tests.
vkd3d-shader/hlsl: Implement the GatherCmp() methods.
tests/shader_runner: Add a "mesa<23.3" tag.
tests/hlsl: Add mixed argument size tests.
vkd3d-shader/hlsl: Consider conversions across all parameters in function_compare().
Conor McCarthy (29):
vkd3d: Store only a single vkd3d descriptor type in each Vulkan descriptor set.
vkd3d: Introduce struct vkd3d_vk_descriptor_pool_array.
vkd3d: Introduce vkd3d_vk_descriptor_pool_array_push_array().
vkd3d: Introduce vkd3d_vk_descriptor_pool_array_push().
vkd3d: Introduce vkd3d_vk_descriptor_pool_array_pop().
vkd3d: Introduce vkd3d_vk_descriptor_pool_array_destroy_pools().
vkd3d: Create separate descriptor pools for each vkd3d descriptor type.
vkd3d: Create descriptor pools of geometrically increasing size.
tests/hlsl: Add float64 wave op tests.
tests/hlsl: Add uint64 wave op tests.
tests/hlsl: Add int64 wave op tests.
vkd3d-shader/dxil: Implement DX intrinsic EvalSampleIndex.
vkd3d-shader/dxil: Implement DX intrinsic EvalCentroid.
vkd3d: Return the correct depth/stencil plane format from GetCopyableFootprints().
vkd3d: Return correctly aligned depth/stencil sizes from GetCopyableFootprints().
vkd3d: Do not require the ALLOW_DEPTH_STENCIL flag for depth/stencil formats in GetCopyableFootprints().
tests/hlsl: Add a test for SV_RenderTargetArrayIndex.
vkd3d-shader/dxil: Handle SV_RenderTargetArrayIndex.
tests/hlsl: Pass a profile string instead of a shader type to dxc_compiler_compile_shader().
tests/hlsl: Add some arithmetic uint16 shader tests.
tests/hlsl: Add more arithmetic uint16 tests.
tests/hlsl: Add arithmetic int16 tests.
tests/hlsl: Add arithmetic float16 tests.
tests/hlsl: Add a numeric types 16-bit test.
tests/hlsl: Add constant buffer 16-bit tests.
tests/hlsl: Add GetDimensions() 16-bit tests.
tests/hlsl: Add typed buffer UAV 16-bit tests.
tests/hlsl: Add a raw buffer UAV 16-bit test.
tests/hlsl: Add structured buffer UAV 16-bit tests.
Elizabeth Figura (65):
vkd3d-shader/spirv: Handle SSA registers in spirv_compiler_get_register_info().
vkd3d-shader/ir: Allow controlling fog through parameters.
vkd3d-shader/ir: Add a couple of traces for signature remapping.
vkd3d-shader/ir: Allow controlling the fog source through a parameter.
vkd3d-shader/ir: Implement exponential fog.
vkd3d-shader/hlsl: Do not abort when modifying a const expression.
vkd3d-shader/hlsl: Do not abort parsing when invalid modifiers are used.
vkd3d-shader/hlsl: Move the numeric type check to add_constructor().
vkd3d-shader/hlsl: Return an error expression when a function is used as a variable.
vkd3d-shader/hlsl: Translate invalid implicit-size arrays to an error type.
vkd3d-shader/d3dbc: Omit unnecessary instruction maximum versions.
vkd3d-shader/d3dbc: Mark some more instructions as version-limited.
vkd3d-shader: Fix the disassembly names of IFC and BREAKC.
vkd3d-shader: Correct the disassembly for POSITIONT.
tests: Add a reflection test for shader model 4.0.
vkd3d-shader/hlsl: Remove unused expr ops.
vkd3d-shader/ir: Always initialise "*control_point_count" in vsir_signature_from_register_type().
vkd3d-shader/hlsl: Document matrix swizzles.
vkd3d-shader/hlsl: Use a structure for matrix swizzles.
vkd3d-shader/hlsl: Use swizzle helpers in more places.
vkd3d-shader/hlsl: Store swizzles in vsir format.
tests/shader_runner: Use is_todo instead of separate shader states.
tests/shader_runner: Use a separate variable for shader type.
tests/shader_runner: Don't bother distinguishing directive substrings.
vkd3d-shader/d3dbc: Use struct vkd3d_shader_dst_param instead of struct sm1_dst_register.
vkd3d-shader/d3dbc: Use struct vkd3d_shader_src_param instead of struct sm1_src_register.
vkd3d-shader/d3dbc: Use struct vkd3d_shader_instruction instead of struct sm1_instruction.
tests/shader_runner: Record HLSL todo/fail state for each shader model.
tests/shader_runner: Test HLSL compilation in a separate pass.
tests/shader_runner: Test versions where the compilation result changes.
tests: Use fail(sm<5) instead of [require] for uav-atomics.
vkd3d-shader/spirv: Correctly implement DTOF.
vkd3d-shader/spirv: Correctly implement DTOI.
vkd3d-shader/spirv: Correctly implement DTOU.
tests/d3d12: Make the dtof test a bit more interesting.
vkd3d-shader: Explicitly translate between d3dbc and vsir register types.
vkd3d-shader/d3dbc: Normalize to a single VKD3DSPR_CONST register set when reading.
vkd3d-shader/d3d-asm: Define register names in a table.
vkd3d-shader/ir: Separate VKD3DSPR_ADDR and VKD3DSPR_TEXTURE.
vkd3d-shader/ir: Separate VKD3DSPR_OUTPUT and VKD3DSPR_TEXCRDOUT.
vkd3d-shader/d3dbc: Introduce d3dbc_parse_register().
vkd3d-shader/hlsl: Avoid some uses of the default case when switching over hlsl_base_type.
vkd3d-shader/d3dbc: Do not access the type dimensions for non-numeric types.
vkd3d-shader/hlsl: Move the "dimx" and "dimy" fields to the type-specific union.
tests: Adjust angle-unit.shader_test to pass with 1.x.
tests: Adjust arithmetic-float.shader_test to pass with 1.x.
tests: Adjust arithmetic-float-uniform.shader_test to pass with 1.x.
tests: Adjust arithmetic-int.shader_test to pass with 1.x.
tests: Adjust array-parameters.shader_test to pass with 1.x.
tests: Adjust array-size-expr.shader_test to pass with 1.x.
tests: Adjust abs.shader_test to pass with 1.x.
tests: Add another unrolling test.
vkd3d-shader/hlsl: Implement broadcasts in constant folding.
vkd3d-utils: Fix matrix packing precedence in D3DCompile2VKD3D().
vkd3d-shader/hlsl: Use the casted value in exp().
tests: Add some stress tests for scope and variable definition.
vkd3d-shader/hlsl: Do not define a separate scope for function parameters.
vkd3d-shader/hlsl: Factor out the error message into hlsl_add_var().
vkd3d-shader/hlsl: Do not abort on variable redefinition.
vkd3d-shader/hlsl: Handle error instructions in add_shader_compilation().
vkd3d-shader/hlsl: Add an add_switch() helper.
vkd3d-shader/hlsl: Handle error instructions in add_switch().
vkd3d-shader/hlsl: Pass the block to add_zero_mipmap_level().
vkd3d-shader/hlsl: Use a block in prepend_input_var_copy().
vkd3d-shader/hlsl: Use a block in hlsl_normalize_binary_exprs().
Feifan He (46):
vkd3d-shader/msl: Implement VKD3DSIH_ADD.
vkd3d-shader/msl: Implement support for VKD3DSPR_IMMCONST registers.
vkd3d-shader/msl: Implement support for VKD3DSPSM_ABS modifiers.
vkd3d-shader/msl: Implement VKD3DSIH_AND.
vkd3d-shader/msl: Implement VKD3DSIH_NEU.
vkd3d-shader/msl: Implement support for VSIR_DIMENSION_VEC4 immediate constants.
vkd3d-shader/msl: Implement VKD3DSIH_MUL.
vkd3d-shader/msl: Implement VKD3DSIH_INE.
vkd3d-shader/msl: Implement VKD3DSIH_OR.
vkd3d-shader/msl: Implement VKD3DSIH_DIV.
vkd3d-shader/msl: Implement support for VKD3DSPSM_NEG modifiers.
vkd3d-shader/msl: Implement VKD3DSIH_GEO.
vkd3d-shader/msl: Implement VKD3DSIH_FRC.
vkd3d-shader/msl: Implement VKD3DSIH_MOVC.
vkd3d-shader/msl: Implement VKD3DSIH_ITOF.
vkd3d-shader/msl: Implement VKD3DSIH_FTOI.
vkd3d-shader/msl: Implement VKD3DSIH_UTOF.
vkd3d-shader/msl: Implement VKD3DSIH_FTOU.
vkd3d-shader/msl: Implement VKD3DSIH_ROUND_PI.
vkd3d-shader/msl: Implement VKD3DSIH_ROUND_Z.
tests/shader_runner_metal: Implement depth texture and state.
tests/shader_runner_metal: Implement clears.
vkd3d-shader/msl: Implement support for the VKD3DSPR_DEPTHOUT register.
vkd3d-shader/msl: Implement VKD3DSIH_DP3.
vkd3d-shader/msl: Implement VKD3DSIH_DP4.
vkd3d-shader/msl: Implement VKD3DSIH_DP2.
vkd3d-shader/msl: Implement VKD3DSIH_SQRT.
vkd3d-shader/msl: Handle the VKD3DSIM_LINEAR interpolation modifier on inputs.
vkd3d-shader/msl: Implement VKD3DSIH_IEQ.
vkd3d-shader/msl: Implement VKD3DSIH_EXP.
vkd3d-shader/msl: Implement VKD3DSIH_LTO.
vkd3d-shader/msl: Implement VKD3DSIH_ROUND_NI.
vkd3d-shader/msl: Implement VKD3DSIH_IF and VKD3DSIH_ENDIF.
vkd3d-shader/msl: Implement VKD3DSIH_ROUND_NE.
vkd3d-shader/msl: Handle SV_IS_FRONT_FACE inputs.
vkd3d-shader/msl: Implement VKD3DSIH_LOG.
vkd3d-shader/msl: Implement VKD3DSIH_MAX.
vkd3d-shader/msl: Implement VKD3DSIH_MIN.
vkd3d-shader/msl: Implement VKD3DSIH_RSQ.
vkd3d-shader/msl: Implement VKD3DSIH_NOT.
vkd3d-shader/msl: Implement VKD3DSIH_ELSE.
vkd3d-shader/msl: Implement support for VKD3DSPDM_SATURATE modifiers.
vkd3d-shader/msl: Implement VKD3DSIH_MAD.
vkd3d-shader/msl: Implement VKD3DSIH_ISHL.
vkd3d-shader/msl: Implement VKD3DSIH_ISHR.
vkd3d-shader/msl: Implement VKD3DSIH_USHR.
Francisco Casas (55):
vkd3d-shader/tpf: Remove HLSL_IR_SWIZZLE handling.
vkd3d-shader/hlsl: Store SM4 stores in the vsir program.
vkd3d-shader/hlsl: Store SM4 loads in the vsir program.
vkd3d-shader/hlsl: Store SM4 resource stores in the vsir program.
tests: Test signature reflection for PRIMID, RTINDEX and VPINDEX.
vkd3d-shader/hlsl: Add special allocation rules for PRIMID, RTINDEX, and VPINDEX.
tests: Test allocation rules for FFACE and SAMPLE.
vkd3d-shader/hlsl: Add special allocation rules for FFACE and SAMPLE.
vkd3d-shader/hlsl: Store SM4 HLSL_RESOURCE_LOADs in the vsir program.
vkd3d-shader/hlsl: Store SM4 HLSL_RESOURCE_SAMPLEs in the vsir program.
vkd3d-shader/hlsl: Store SM4 HLSL_RESOURCE_GATHERs in the vsir program.
vkd3d-shader/hlsl: Store SM4 HLSL_RESOURCE_SAMPLE_INFOs in the vsir program.
vkd3d-shader/hlsl: Store SM4 HLSL_RESOURCE_RESINFOs in the vsir program.
vkd3d-shader/hlsl: Store SM4 jumps in the vsir program.
vkd3d-shader/tpf: Apply extra bits to all conditional ops.
vkd3d-shader/hlsl: Migrate SM4 control flow instructions to the vsir program.
vkd3d-shader/hlsl: Remove hlsl_ir_vsir_instruction_ref, again.
vkd3d-shader/dxbc: Parse the SFI0 ROV requirement.
vkd3d-shader/hlsl: Store ROV feature requirement in the vsir_program.
vkd3d-shader/hlsl: Store the global flags in the vsir program.
vkd3d-shader/hlsl: Store SM4 sampler declarations in the vsir program.
vkd3d-shader/hlsl: Store SM4 texture declarations in the vsir program.
tests: Add additional sampler allocation tests for SM1.
tests: Test sampler array allocation.
vkd3d-shader/hlsl: Lower separated samplers for SM1.
vkd3d-shader/hlsl: Support combined samplers from texture arrays.
vkd3d-shader/hlsl: Allocate samplers by decreasing bind count in SM1.
vkd3d-shader/hlsl: Allow lowering separate sampler arrays on deref offset 0.
vkd3d-shader/hlsl: Store SM4 constant buffer declarations in vsir program.
vkd3d-shader/hlsl: Generate RDEF outside tpf_compile().
vkd3d-shader/hlsl: Generate CTAB outside sm1_generate_vsir().
vkd3d-shader/hlsl: Store hull and domain shader properties in vsir_program.
vkd3d-shader/tpf: Remove hlsl_ctx from tpf_compiler.
vkd3d-shader/hlsl: Lower sample lods for SM1.
vkd3d-shader/ir: Properly lower texldb.
tests/hlsl: Test tex2Dproj().
vkd3d-shader/ir: Properly lower texldp.
vkd3d-shader: Avoid passing NULL to memcpy(). (ubsan)
vkd3d-shader: Avoid passing NULL to qsort(). (ubsan)
vkd3d-shader: Avoid passing NULL to memset(). (ubsan)
vkd3d-shader: Avoid left shifting signed integers. (ubsan)
tests: Test SampleGrad() on ps_3_0.
vkd3d-shader/hlsl: Lower separate SampleGrad() for SM1.
vkd3d-shader/hlsl: Don't lower separate samples with texel offsets.
tests: Test casting negative floats to int.
vkd3d-shader/hlsl: Properly lower casts to int for negative numbers.
vkd3d-shader/hlsl: Specialize lowering SM1 casts to int for vertex shaders.
tests/hlsl: Add lhs cast tests.
tests/hlsl: Test partial assignments due to lhs casts.
tests/hlsl: Add more function cast tests.
vkd3d-shader/hlsl: Delay lowering complex casts until after parse time.
vkd3d-shader/hlsl: Support non-size-changing lhs casts.
vkd3d-shader/hlsl: Don't count cast to param type on IN as part of OUT var's lhs.
vkd3d-shader/hlsl: Don't forbid first base type cast on var assignments.
tests/shader_runner: Pass the correct buffer size to swprintf() in dxc_compiler_compile_shader().
Giovanni Mascellani (87):
vkd3d-shader/ir: Validate the semantic index for tessellation system values.
vkd3d-shader/ir: Check that semantic indices for tessellation system values are not duplicated.
vkd3d-shader/ir: Keep track of the tessellator domain in struct vsir_program.
vkd3d-shader/ir: Validate tessellation system values for the given tessellator domain.
vkd3d-shader/ir: Check that tessellation system values only appear in the patch constant signature.
vkd3d-shader/ir: Validate index count for PRIMID registers.
vkd3d-shader/ir: Validate index count for OUTPOINTID registers.
vkd3d-shader/ir: Validate index count for FORKINSTID registers.
vkd3d-shader/ir: Validate index count for JOININSTID registers.
vkd3d-shader/ir: Validate index count for TESSCOORD registers.
vkd3d-shader/ir: Validate index count for THREADID registers.
vkd3d-shader/ir: Validate index count for THREADGROUPID registers.
vkd3d-shader/ir: Validate index count for LOCALTHREADID registers.
vkd3d-shader/ir: Validate index count for LOCALTHREADINDEX registers.
vkd3d-shader/ir: Check that all tessellation system values appear in the patch constant signature.
vkd3d-shader/ir: Check that tessellation system value registers are consecutive.
vkd3d-shader/ir: Validate index count for COVERAGE registers.
vkd3d-shader/ir: Validate index count for SAMPLEMASK registers.
vkd3d-shader/ir: Validate index count for GSINSTID registers.
vkd3d-shader/ir: Validate index count for WAVELANECOUNT registers.
vkd3d-shader/ir: Validate index count for WAVELANEINDEX registers.
vkd3d-shader/ir: Validate index count for OUTSTENCILREF registers.
vkd3d-shader/dxil: Emit register SAMPLEMASK for output sysval SV_Coverage.
vkd3d-shader/ir: Validate the register type for DCL_INPUT instructions.
vkd3d-shader/ir: Validate the register type for DCL_INPUT_SIV instructions.
vkd3d-shader/ir: Validate the register type for DCL_INPUT_SGV instructions.
vkd3d-shader/ir: Validate the register type for DCL_INPUT_PS instructions.
vkd3d-shader/ir: Validate the register type for DCL_INPUT_PS_SIV instructions.
vkd3d-shader/ir: Validate the register type for DCL_INPUT_PS_SGV instructions.
vkd3d-shader/ir: Validate the register type for DCL_OUTPUT instructions.
vkd3d-shader/ir: Validate the register type for DCL_OUTPUT_SIV instructions.
vkd3d-shader/ir: Synthesize the default control point phase in the HS control point I/O normaliser.
vkd3d-shader/ir: Evaluate OUTCONTROLPOINT usage in the patch constant phase directly.
tests: Use plain skip() when skipping a test in the shader runner.
tests: Print the file name instead of the test name in test logs.
vkd3d-shader/spirv: Merge emitting input and output registers.
vkd3d-shader/ir: Encode I/O declarations in vsir_program.
vkd3d-shader/ir: Remove I/O declarations before I/O normalisation.
vkd3d-shader/ir: Remove I/O declarations before normalising hull shader control point I/O.
vkd3d-shader/ir: Remove I/O declarations before flattening hull shader phases.
vkd3d-shader/ir: Merge removing I/O declarations in the general instruction lowering pass.
vkd3d-shader/ir: Validate the control point index when it is statically known.
vkd3d: Do not use more than a few million descriptors in Vulkan heap set layouts.
vkd3d-shader/ir: Validate the array index when it is statically known.
vkd3d-shader/ir: Validate the register type for registers used as relative addresses.
vkd3d-shader/ir: Introduce a helper function to determine the signature for a register type.
vkd3d-shader/ir: Validate the DCL_INDEX_RANGE instruction.
vkd3d-shader/ir: Check that DCL_INDEX_RANGE ranges do not overlap with unrelated signature elements.
vkd3d-shader/spirv: Introduce a SPIR-V parser.
vkd3d-shader/spirv: Parse the SPIR-V magic number.
vkd3d-shader/spirv: Parse the SPIR-V version number.
vkd3d-shader/spirv: Parse the SPIR-V generator magic number.
vkd3d-shader/spirv: Parse the SPIR-V id bound.
vkd3d-shader/spirv: Parse the SPIR-V instruction schema.
vkd3d-shader/ir: Check that the DCL_INDEX_RANGE effective mask stabilizes after one iteration.
vkd3d-shader/ir: Check that signature element masks are left-aligned with in a DCL_INDEX_RANGE.
vkd3d-shader/ir: Validate the register index and count for signature elements.
vkd3d-shader/ir: Validate the signature element stream index.
vkd3d-shader/ir: Validate the signature element register index, for some sysvals.
vkd3d-shader/ir: Check that signature elements do not conflict with each other.
vkd3d-shader/ir: Give more meaningful names to I/O normalisation levels.
vkd3d-shader/d3dbc: Normalise I/O register write masks when not disassembling.
vkd3d-shader/ir: Represent information about I/O registers with a table.
vkd3d-shader/ir: Validate INPUT destination parameters using a uniform helper.
vkd3d-shader/ir: Validate PATCHCONST destination parameters using a uniform helper.
vkd3d-shader/ir: Validate OUTPUT destination parameters.
vkd3d-shader/ir: Validate INCONTROLPOINT destination parameters.
vkd3d-shader/ir: Validate OUTCONTROLPOINT destination parameters.
vkd3d-shader/ir: Remove a redundant assignment.
vkd3d-shader/ir: Simplify shader_register_normalise_arrayed_addressing().
tests/hlsl: Add tests for the EvaluateAttribute*() intrinsics.
tests/hlsl: Add some clip/cull distance tests.
vkd3d-shader/ir: Disallow array signature elements for normalisation levels < SM6.
vkd3d-shader/ir: Validate OUTPUT source parameters using a uniform helper.
vkd3d-shader/ir: Validate PATCHCONST source parameters using a uniform helper.
vkd3d-shader/ir: Validate INPUT source parameters.
vkd3d-shader/ir: Validate INCONTROLPOINT source parameters.
vkd3d-shader/ir: Validate OUTCONTROLPOINT source parameters.
vkd3d: Log the requested feature levels for D3D12_FEATURE_FEATURE_LEVELS.
vkd3d: Describe DXGI_UNKNOWN as having one plane.
vkd3d: Only call d3d12_fence_garbage_collect_vk_semaphores_locked() when using binary semaphores.
vkd3d: Release queued fences when stopping the fence worker.
vkd3d: Support signalling a fence once all outstanding work is submitted to Vulkan.
vkd3d: Explicitly call the appropriate waiting function in the fence worker.
vkd3d-shader/spirv: Interpret the write mask as a destination swizzle for double comparison operations.
vkd3d-common: Write a thread id in the log on macOS too.
ci: Explicitly install SPIRV-Tools in the macOS CI environment.
Henri Verbeet (31):
tests: Get rid of some redundant "glsl" todo's.
vkd3d-shader/hlsl: Use hlsl_error() instead of hlsl_fixme() for ambiguous function calls.
vkd3d-shader/hlsl: Introduce hlsl_dump_type().
vkd3d-shader/hlsl: Introduce hlsl_dump_ir_function_decl().
vkd3d-shader/hlsl: Output the candidates for ambiguous function calls.
vkd3d: Introduce d3d12_descriptor_set_layout_init().
vkd3d-shader/spirv: Parse SPIR-V instructions.
vkd3d: Drop smaller pools in d3d12_command_allocator_reset_descriptor_pool_array().
tests: Add yet more overload resolution tests.
vkd3d-shader/hlsl: Prefer overload candidates without component count narrowing.
vkd3d-shader/hlsl: Prefer overload candidates with matching component type classes.
vkd3d-shader/hlsl: Prefer overload candidates with matching component types.
vkd3d-shader/hlsl: Prefer overload candidates without component type narrowing.
vkd3d-shader/hlsl: Prefer overload candidates without component count widening.
vkd3d-shader/d3dbc: Separate writing the comment bytecode from write_sm1_uniforms().
vkd3d-shader/hlsl: Move CTAB generation to hlsl_codegen.c.
tests/shader_runner: Ignore the "backcompat" option for shader model 5.1+.
vkd3d-shader/hlsl: Make sm4_get_interpolation_mode() static.
vkd3d-shader/hlsl: Move sm4_get_extern_resources() to hlsl_codegen.c.
vkd3d-shader/hlsl: Move sm4_free_extern_resources() to hlsl_codegen.c.
tests/shader_runner: Do not use skip() for shader model requirements.
vkd3d-shader/hlsl: Move RDEF generation to hlsl_codegen.c.
demos: Use the assembler to embed HLSL sources.
vkd3d-shader/msl: Get rid of a stray vkd3d_string_buffer_printf() in the VEC4 UINT immediate constant handling.
vkd3d: Avoid freeing the input signature twice on error paths in d3d12_pipeline_state_init_graphics().
vkd3d-compiler: Store the target type as a struct target_type_info pointer.
vkd3d-compiler: Store the source type as a struct source_type_info pointer.
vkd3d-compiler: Introduce "dxbc-fx" as a source type.
include: Add vkd3d_shader_scan_hull_shader_tessellation_info to the list of chained compilation structures.
include: Add missing VKD3D_FORCE_32_BIT_ENUM enum elements.
vkd3d-shader/ir: Remove vForkInstanceId and vJoinInstanceId declarations in vsir_program_flatten_hull_shader_phases().
Nikolay Sivov (5):
vkd3d-shader/hlsl: Add parser support for stream-output object types.
vkd3d-shader/fx: Implement parsing inline shader blobs.
vkd3d-shader/fx: Remove newlines from the parser error messages.
vkd3d-compiler: Support fx_4_0 sources embedded in DXBC containers.
vkd3d-shader/hlsl: Implement the isinf() intrinsic.
Shaun Ren (43):
vkd3d-shader/dxil: Allow zero domain input control point count.
vkd3d-shader: Implement scanning hull shader tessellation information.
tests/shader_runner_vulkan: Enable patch list topology support.
tests/shader_runner_gl: Implement tessellation support.
vkd3d-shader/hlsl: Implement normalization of binary expressions.
vkd3d-shader/hlsl: Collect together terms with constant coefficients.
tests/shader_runner_vulkan: Check if create_shader_stage() fails in create_compute_pipeline().
tests/shader_runner_gl: Add "opengl" tag.
tests/shader_runner_gl: Bind buffer UAVs for compute shaders.
tests/hlsl: Add a test for UAV InterlockedCompareExchange().
tests/hlsl: Add tests to check the types of the value arguments of atomic ops.
tests/hlsl: Add tests to check the void return type of atomic ops.
tests/hlsl: Add tests for valid destination types of atomic operations.
vkd3d-shader/hlsl: Implement the InterlockedAdd() intrinsic.
vkd3d-shader/hlsl: Implement the InterlockedAnd() intrinsic.
vkd3d-shader/hlsl: Implement the InterlockedCompareExchange() intrinsic.
vkd3d-shader/hlsl: Implement the InterlockedCompareStore() intrinsic.
vkd3d-shader/hlsl: Implement the InterlockedExchange() intrinsic.
vkd3d-shader/hlsl: Implement the InterlockedMax() intrinsic.
vkd3d-shader/hlsl: Implement the InterlockedMin() intrinsic.
vkd3d-shader/hlsl: Implement the InterlockedOr() intrinsic.
vkd3d-shader/hlsl: Implement the InterlockedXor() intrinsic.
vkd3d-shader/spirv: Emit the tessellator domain for domain shaders.
vkd3d-shader/hlsl: Forbid declaring parameters as both out and const.
tests: Test invalid out const parameters.
vkd3d-shader/d3d-asm: Print vocp registers with subscript.
vkd3d-shader/hlsl: Forbid declaring const variables with no initializer.
tests/hlsl: Test invalid const variables with no initializer.
vkd3d-shader/hlsl: Parse InputPatch and OutputPatch objects.
vkd3d-shader/hlsl: Validate and record InputPatch/OutputPatch types.
tests/hlsl: Test the syntax of InputPatch/OutputPatch variables.
tests/hlsl: Test passthrough hull shader control point function.
tests/hlsl: Test hull shader control point function output parameters.
tests/hlsl: Test OutputPatch usage in patch constant functions.
vkd3d-shader/hlsl: Add an "is_patch_constant_func" field to struct hlsl_ctx.
vkd3d-shader/hlsl: Implement input semantic variable copies for patch variables.
vkd3d-shader/tpf: Improve readability of compat mapping in sm4_sysval_semantic_from_semantic_name().
vkd3d-shader/hlsl: Generate vsir signature entries for patch variables.
vkd3d-shader/hlsl: Declare semantics for patch variables in vsir.
vkd3d-shader/hlsl: Allocate semantic registers for patch variables.
tests/shader_runner: Support the negation of tag matches.
vkd3d-shader/hlsl: Generate vsir registers from patch variable derefs.
tests: Test signature reflection for patch inputs in hull/domain shaders.
Victor Chiletto (10):
tests: Add more function overloading tests.
vkd3d-shader/hlsl: Explicitly track the copy propagation state stack.
vkd3d-shader/hlsl: Allow copy propagation to be stopped early.
vkd3d-shader/hlsl: Constant fold casts to boolean.
vkd3d-shader/hlsl: Run copy propagation incrementally during loop unrolling.
vkd3d-shader/hlsl: Do not clone the entire program for loop unrolling.
vkd3d-shader/hlsl: Remove loop_unrolling_find_unrollable_loop().
vkd3d-shader/hlsl: Partially defer continue resolution.
vkd3d-shader/hlsl: Unroll loops with conditional jumps.
vkd3d-shader/hlsl: Drop the _ir_ infix from enum hlsl_loop_unroll_type.
```
The Wine development release 10.1 is now available.
What's new in this release:
- A wide range of changes that were deferred during code freeze.
- Root certificates fixes for Battle.net.
- Print Provider improvements.
- More progress on the Bluetooth driver.
- Various bug fixes.
The source is available at <https://dl.winehq.org/wine/source/10.x/wine-10.1.tar.xz>
Binary packages for various distributions will be available
from the respective [download sites][1].
You will find documentation [here][2].
Wine is available thanks to the work of many people.
See the file [AUTHORS][3] for the complete list.
[1]: https://gitlab.winehq.org/wine/wine/-/wikis/Download
[2]: https://gitlab.winehq.org/wine/wine/-/wikis/Documentation
[3]: https://gitlab.winehq.org/wine/wine/-/raw/wine-10.1/AUTHORS
----------------------------------------------------------------
### Bugs fixed in 10.1 (total 35):
- #27245 Internet Settings security zones not i18n-ed
- #35981 Battlefield: Bad Company 2 (Russian locale) updater has missing glyphs
- #39576 Sound in StarCraft 2 breaks after
- #39733 OpenGL Extensions Viewer 4.x (.NET 4.0 app) fails to start with Wine-Mono
- #41342 Build with winegcc is not reproducible
- #46580 HoMM3 WOG: can't enter russian text speaking with sphynx
- #46702 GNUTLS_CURVE_TO_BITS not found
- #52221 GameMaker 8: Missing sound effects
- #53644 vbscript can not compile classes with lists of private / public / dim declarations
- #54752 RUN Moldex3D Viewer will Crash
- #55155 Telegram can not be run in latest version wine, but ok in wine6.0.4
- #56530 Final Fantasy XI Online: Memory leak when Wine is built with CFLAGS="-g -mno-avx".
- #56559 iologo launcher cannot download setup program
- #56658 When using Kosugi for vertical writing, some punctuation marks are not placed correctly.
- #56703 Crash when installing Rhinoceros 8.6
- #56876 Paint Tool SAIv2 VirtualAlloc invalid address on commit
- #57191 Flickering image on Video-surveilance-Software
- #57338 wine-gecko/wine-mono don't cache their installers if using a username with unicode characters
- #57360 Wrong Combobox dropdown in 7zFM
- #57529 reMarkable application crash on new winehq-devel 10 RC1
- #57563 vbscript: mid() throws when passed VT_EMPTY instead of returning empty string
- #57626 SteuerErklarung 2025 halts: windows 8 is not compatible
- #57650 osu! stable: Insert key to minimize to tray does not hide game window (regression)
- #57664 New problems with SudoCue under Win 10.0 rc5
- #57675 err:virtual:virtual_setup_exception stack overflow 3072 bytes addr 0x7bd5b54c stack 0x81100400
- #57689 Menus misplaced on X11 when using dual monitor with right monitor as primary
- #57690 .NET Framework 4.8 installer hangs
- #57692 No context menu in Reason (DAW)
- #57698 Reason's (DAW) dialog windows stopped registering mouse events and open at screen's right edge
- #57704 Compile Error since 10.0rc5+
- #57710 Cannot open main menu via keyboard in Reason (DAW)
- #57711 The 32-bit wpcap program has a stack leakage issue
- #57766 Win3_BIOS most likely should be Win32_BIOS instead
- #57787 Final Fantasy XI Online crashes with unhandled page fault on launch
- #57794 WinHTTP implementation assumes HTTP response has a status text
### Changes since 10.0:
```
Akihiro Sagawa (2):
gdi32/tests: Add tests for script-independent vertical glyph lookup.
win32u: Use the first vertical alternates table regardless of script.
Alex Henrie (20):
concrt140: Annotate allocators with __WINE_(ALLOC_SIZE|DEALLOC|MALLOC).
msvcirt: Annotate allocators with __WINE_(ALLOC_SIZE|DEALLOC|MALLOC).
msvcp60: Annotate allocators with __WINE_(ALLOC_SIZE|DEALLOC|MALLOC).
msvcp90: Annotate allocators with __WINE_(ALLOC_SIZE|DEALLOC|MALLOC).
msvcrt: Annotate allocators with __WINE_(ALLOC_SIZE|DEALLOC|MALLOC).
ntdll: Return an error if count is zero in NtRemoveIoCompletionEx.
shell32/tests: Add tests for StrRetToStrN null termination.
shlwapi: Correct return value of StrRetToBuf on an invalid type.
shell32: Use StrRetToBuf instead of reimplementing it.
comdlg32: Use StrRetToBuf instead of reimplementing it.
hhctrl: Fix spelling of "local" in OnTopicChange.
tapi32: Use wide character string literals.
winhlp32: Use wide character string literals.
shlwapi: Use wide character string literals.
cryptui: Use wide character string literals.
hhctrl: Use wide character string literals.
urlmon: Make security zone names and descriptions translatable.
ieframe: Use wide character string literals.
hhctrl: Fix window class name in HH_CreateHelpWindow.
hhctrl: Make "Select Topic" window title translatable.
Alexandre Julliard (39):
shell32: Move some function prototypes to shlwapi.h.
winedump: Dump MUI resources.
wrc: Remove the unused res_count structure.
include: Mark global asm functions as hidden.
kernel32: Implement RegisterWaitForInputIdle().
wineps: Don't store the glyph name or encoding for individual glyphs.
wineps: Don't parse the glyph name or encoding when loading AFM files.
wineps: Remove some unused AFM values.
wineps: Use simple strings for glyph names.
win32u: Implement NtUserDestroyCaret().
win32u: Implement NtUserReleaseCapture().
win32u: Implement NtUserGetThreadState().
win32u: Implement NtUserCreateMenu() and NtUserCreatePopupMenu().
win32u: Implement NtUserEnumClipboardFormats().
win32u: Implement NtUserMessageBeep().
win32u: Implement NtUserPostQuitMessage().
win32u: Implement NtUserRealizePalette().
win32u: Implement NtUserReplyMessage().
win32u: Implement NtUserSetCaretBlinkTime().
win32u: Implement NtUserSetCaretPos().
win32u: Implement NtUserSetProcessDefaultLayout().
win32u: Implement NtUserGetClipCursor().
win32u: Implement NtUserArrangeIconicWindows().
win32u: Implement NtUserDrawMenuBar().
win32u: Implement NtUserGetWindowContextHelpId().
win32u: Implement NtUserSetProgmanWindow() and NtUserSetTaskmanWindow().
win32u: Implement NtUserEnableWindow().
win32u: Implement NtUserSetWindowContextHelpId().
win32u: Implement NtUserShowOwnedPopups().
win32u: Implement NtUserUnhookWindowsHook().
win32u: Implement NtUserValidateRgn().
winedbg: Remove unneeded wrap around checks.
winegcc: Always specify the output file name when there's no spec file.
kernel32/tests: Remove some workarounds for old Windows versions.
kernel32/tests: Add tests for language-specific manifest lookup.
ntdll: Implement language-specific manifest lookup.
server: Do not allow creating mailslots with zero access.
server: Do not allow creating named pipes with zero access.
server: Skip non-accessible threads in NtGetNextThread().
Alexandros Frantzis (1):
winewayland: Round the Wayland refresh rate to calculate the win32 display frequency.
Arkadiusz Hiler (1):
jscript: Fix JSON.stringify for arrays longer than 10.
Bernhard Übelacker (1):
kernel32/tests: Match the value in the debug message the test condition.
Billy Laws (1):
ntdll: Detect kernel support before using ARM64 ID regs.
Brendan McGrath (2):
mfplat/tests: Add audio tests for MFInitMediaTypeFromAMMediaType.
mfplat: Add support for audio with NULL format to MFInitMediaTypeFromAMMediaType.
Brendan Shanks (2):
winemac: [NSWindow setAlphaValue:] must be called from the main thread.
winemac: [NSWindow contentView] must be called from the main thread.
Conor McCarthy (2):
mfsrcsnk: Release object queue objects on destruction.
mfsrcsnk: Release the async request popped sample after sending it.
Damjan Jovanovic (1):
user32: Copy the clipboard format iterator's position when cloning it.
Daniel Lehman (4):
msvcp140/tests: Add more tests for _Mtx_t.
msvcp140: Fix field order in _Mtx_t.
include: Add signbit declarations for c++.
msvcp140: Add padding to _Cnd_t.
Dean M Greer (2):
documentation: Mac OS X became macOS from 10.12.
readme: Update mac info section.
Dmitry Timoshkov (31):
wldap32: Avoid crashes in interact_callback() if defaults is NULL.
wldap32: Add stub for ldap_get_option(LDAP_OPT_GETDSNAME_FLAGS).
wldap32: Add stub for ldap_set_option(LDAP_OPT_GETDSNAME_FLAGS).
wldap32: Add stub for ldap_set_option(LDAP_OPT_PROMPT_CREDENTIALS).
wldap32: Add stub for ldap_set_option(LDAP_OPT_REFERRAL_CALLBACK).
prntvpt: Also initialize dmDefaultSource field.
prntvpt: Forward BindPTProviderThunk to PTOpenProviderEx.
prntvpt: Forward UnbindPTProviderThunk to PTCloseProvider.
prntvpt: Implement ConvertDevModeToPrintTicketThunk2.
prntvpt: Implement GetPrintCapabilitiesThunk2.
prntvpt: Implement ConvertPrintTicketToDevModeThunk2.
prntvpt: Prefer builtin.
prntvpt: Add version resource.
kerberos: Update sizes to match modern implementations.
secur32: Update max token size for Negotiate.
prntvpt: Implement writing PageMediaSize capabilities.
prntvpt: Implement writing PageImageableSize capabilities.
crypt32: Add support for CryptMsgControl(CMSG_CTRL_ADD_CERT) to a being decoded message.
crypt32: Add szOID_APPLICATION_CERT_POLICIES to the list of supported critical extensions.
crypt32: Ignore CRYPT_OID_INFO_PUBKEY_ENCRYPT_KEY_FLAG and CRYPT_OID_INFO_PUBKEY_SIGN_KEY_FLAG in CryptFindOIDInfo().
crypt32: Add support for CryptMsgControl(CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR) to a being decoded message.
crypt32: Add support for CryptMsgGetParam(CMSG_ENCRYPTED_DIGEST) to a being decoded signed message.
crypt32: Add support for CryptMsgControl(CMSG_CTRL_DEL_CERT) to a being decoded message.
crypt32: CertVerifyCertificateChainPolicy() extensions are registered under "EncodingType 0" key.
crypt32: Do not reject key usage data longer than 1 byte.
compstui: Add more string resources.
netapi32: Add stubs for DsGetDcOpenA/W.
wldap32: Use correct host when connecting to Kerberos DC.
wldap32: ldap_init() should resolve NULL hostname to default Kerberos DC.
wldap32/tests: Add some tests for LDAP authentication to a Kerberos DC.
prntvpt: Use Windows 10 version numbers.
Ekaterine Papava (1):
po: Update Georgian translation.
Elizabeth Figura (21):
msi: Fix a spelling error in the name of MigrateFeatureStates.
wined3d: Feed WINED3D_RS_POINTSIZE through a push constant buffer.
wined3d: Implement point size in the HLSL FFP pipeline.
wined3d: Implement vertex blending in the HLSL FFP pipeline.
wined3d: Feed bumpenv constants through a push constant buffer.
wined3d: Implement bumpenv mapping in the HLSL FFP pipeline.
wined3d: Implement colour keying in the HLSL FFP pipeline.
wined3d: Bind the right push constant buffers when FFP is toggled.
wined3d: Use ps_compile_args in shader_spirv_compile_arguments.
wined3d/spirv: Implement flat shading.
wined3d/glsl: Move legacy alpha test to shader_glsl_apply_draw_state().
wined3d: Feed alpha ref through a push constant buffer.
wined3d/spirv: Implement alpha test.
d3d9: Fix IUnknown delegation in IDirect3DDevice9On12.
wined3d: Do not disable point sprite in wined3d_context_gl_apply_blit_state().
wined3d: Do not toggle point sprite.
wined3d: Remove the redundant per_vertex_point_size from vs_compile_args.
wined3d: Remove FOGVERTEXMODE handling from find_ps_compile_args().
d3d11/tests: Remove the workaround for RTVs in test_nv12().
wined3d: Use the correct pitch when downloading Vulkan textures.
wined3d: Factor out a get_map_pitch() helper.
Eric Pouech (3):
include: Add some new definitions for dbghelp.h.
include: Add a couple of definitions to mscvpdb.h.
include: Use flexible array-member in some structure declarations.
Esme Povirk (5):
gdiplus: AddClosedCurve always starts a new subpath.
gdiplus: GdipAddPathPie always starts a new figure.
appwiz.cpl: Account for unicode characters in XDG_CACHE_HOME.
user32/tests: Move a todo into the message sequence.
user32/tests: Account for Wine sometimes duplicating WM_PAINT.
Etaash Mathamsetty (3):
wine.inf: Add UBR key.
winecfg: Add support for UBR key.
twinapi.appcore/tests: Fix broken registry query.
Fabian Maurer (4):
mlang: In GetFontCodePages add another null check (Coverity).
include: Add IConnectionProfile2.
windows.networking.connectivity: Add IConnectionProfile2 stubs.
windows.networking.connectivity: Fake success for IsWwanConnectionProfile and IsWlanConnectionProfile.
Francis De Brabandere (1):
vbscript: Support multiple class declarations on a single line.
Georg Lehmann (1):
winevulkan: Update to VK spec version 1.4.307.
Hans Leidekker (9):
xcopy: Fix handling of quoted filenames.
wpcap: Fix callback signature.
wine.inf: Pass command line arguments to msiexec.
wbemprox: Read Win32_PnPEntity values from the registry.
wbemprox: Implement Win32_PnPEntity.Service.
wbemprox/tests: Fix typo.
wbemprox: Fix allocation size.
ntdll: Stub NtQuerySystemInformation(SystemLeapSecondInformation).
winhttp: Accept server response without status text.
Herman Semenov (1):
msvcrt: Add missing TRACE_ON check.
Jacek Caban (1):
wdscore: Don't export C++ symbols.
Jactry Zeng (7):
include: Don't import .idl when DO_NO_IMPORTS is defined.
wintypes/tests: Add interface tests.
wintypes: Reimplement Windows.Foundation.Metadata.{ApiInformation,PropertyValue} separately.
wintypes: Stub of Windows.Storage.Streams.DataWriter runtimeclass.
wintypes: Return S_OK from data_writer_activation_factory_ActivateInstance().
wintypes: Stub of Windows.Storage.Streams.RandomAccessStreamReference runtimeclass.
wintypes: Stub of IRandomAccessStreamReferenceStatics interface.
Jeff Smith (2):
windowscodecs: Make values returned from CanConvert consistent.
windowscodecs: Simplify png_decoder_get_metadata_blocks using realloc.
Jinoh Kang (3):
ntoskrnl.exe: Fix IRQL mismatch between cancel spin lock acquire and release.
kernel32/tests: Use win_skip() for missing PrefetchVirtualMemory API.
ntdll: Fix syscall_cfa offset in user_mode_abort_thread for ARM64.
Makarenko Oleg (2):
dinput/tests: Add more tests for force feedback.
dinput: Clamp FFB effect report value to the field range.
Marc-Aurel Zent (1):
server: Use setpriority to update thread niceness when safe.
Mohamad Al-Jaf (10):
windows.networking.hostname: Guard against WindowsDuplicateString() failure.
windows.ui: Stub IUISettings3::add_ColorValuesChanged().
windows.ui: Stub IUISettings3::remove_ColorValuesChanged().
windows.ui.xaml: Add stub dll.
windows.ui.xaml: Add IColorHelperStatics stub interface.
windows.ui.xaml/tests: Add IColorHelperStatics::FromArgb() tests.
windows.ui.xaml: Implement IColorHelperStatics::FromArgb().
include: Add d3d9on12.idl file.
d3d9: Implement Direct3DCreate9On12().
d3d9/tests: Add Direct3DCreate9On12() tests.
Nikolay Sivov (43):
oleaut32/tests: Use correct constants for IStream::Seek().
windowscodecs/tests: Use correct constants for IStream::Seek().
windowscodecs/metadata: Use correct constants for IStream::Seek().
windowscodecs/ddsformat: Use correct constants for IStream::Seek().
d2d1: Use correct constants for IStream::Seek().
dmloader: Use correct constants for IStream::Seek().
kernel32/tests: Use correct constants for SetFilePointer().
wintrust: Use correct constants for SetFilePointer().
storage: Use correct constants for SetFilePointer().
krnl386: Use correct constants for SetFilePointer().
shell32: Use correct constants for SetFilePointer().
dmloader: Use correct constants for SetFilePointer().
include: Update with newer Direct2D types.
include: Update with newer DirectWrite types.
propsys/tests: Add some tests for PropVariantChangeType(VT_UI4).
propsys: Implement PropVariantToStringAlloc(VT_UI2).
propsys: Implement PropVariantToStringAlloc(VT_I4).
propsys: Implement PropVariantToStringAlloc(VT_I2).
propsys: Implement PropVariantToStringAlloc(VT_I1).
propsys: Implement PropVariantToStringAlloc(VT_UI1).
propsys: Implement PropVariantToStringAlloc(VT_UI4).
propsys: Implement PropVariantToStringAlloc(VT_I8).
propsys: Implement PropVariantToStringAlloc(VT_UI8).
propsys: Remove FIXME() from PropVariantChangeType().
windowscodecs/metadatahandler: Implement GetPersistOptions().
windowscodecs/metadatahandler: Implement GetStream().
windowscodecs/metadata: Add registration information for the Gps reader.
windowscodecs/metadata: Add registration information for the Exif reader.
windowscodecs/metadata: Add initial implementation of the App1 reader.
po: Update some Russian strings.
windowscodecs: Move component info registry key cleanup to a common failure path.
windowscodecs: Move an hkey handle to the component info base structure.
windowscodecs: Add a stub for IWICMetadataWriterInfo.
windowscodecs/metadata: Add registration information for the "Unknown" writer.
windowscodecs/metadata: Add a stub for WICUnknownMetadataWriter.
windowscodecs/metadata: Add a stub for WICGpsMetadataWriter.
windowscodecs/metadata: Add a stub for WICExifMetadataWriter.
windowscodecs/metadata: Add a stub for WICIfdMetadataWriter.
windowscodecs: Fix a typo in metadata readers registration helper.
windowscodecs: Remove redundant guid-to-string conversion when writing readers registration entries.
winhttp: Check for the end of the text when stripping trailing newlines from headers (ASan).
gdiplus/tests: Extend a GdipGetPathGradientBlend() test with excessive output buffer size.
gdiplus: Use actual blend count for output copies in GdipGetPathGradientBlend() (ASan).
Paul Gofman (37):
crypt32: Factor out CRYPT_RegDeleteFromReg().
crypt32: Factor out CRYPT_SerializeContextToReg().
crypt32: Don't output the whole chains from check_and_store_certs().
crypt32: Do not use temporary store for updating root certificates.
crypt32: Do not delete root certs which were not imported from host in sync_trusted_roots_from_known_locations().
crypt32/tests: Add more tests for VerifyCertChainPolicy().
crypt32: Fix some error codes in verify_ssl_policy().
crypt32: Check CERT_TRUST_REVOCATION_STATUS_UNKNOWN instead of CERT_TRUST_IS_OFFLINE_REVOCATION in verify_ssl_policy().
crypt32: Favour CERT_CHAIN_POLICY_IGNORE_END_REV_UNKNOWN_FLAG in verify_ssl_policy().
crypt32: Only mind end certificate when checking revocation status in verify_ssl_policy().
crypt32: Favour CERT_CHAIN_POLICY_IGNORE_WRONG_USAGE_FLAG in verify_ssl_policy().
crypt32: Use correct tag for OCSP basic response extensions.
crypt32: Use correct tag for OCSP single response extensions.
cryptnet: Retry OCSP request with POST if GET failed.
cryptnet: Do not perform OCSP requests with CERT_VERIFY_CACHE_ONLY_BASED_REVOCATION flag.
ntdll: Add NtConvertBetweenAuxiliaryCounterAndPerformanceCounter() function.
kernelbase: Add ConvertAuxiliaryCounterToPerformanceCounter() / ConvertPerformanceCounterToAuxiliaryCounter().
wine.inf: Add Explorer\FileExts registry key.
win32u: Generate mouse events in the server when releasing capture.
server: Don't send WM_MOUSEMOVE for zero movement in queue_mouse_message().
crypt32: Release cert context in CertDeleteCertificateFromStore().
crypt32: Factor out memstore_free_context() function.
crypt32: Don't try to release zero-refcount context in MemStore_addContext().
crypt32: Release existing cert context in add_cert_to_store().
crypt32: Only remove cert from mem store list when deleting it.
crypt32/tests: Add a test for deleting and adding certs during enumeration.
crypt32: Don't assert in Context_Release() on invalid refcount.
win32u: Nullify surface hwnd when detaching Vulkan surface.
win32u: Check for NULL hwnd before calling vulkan_surface_presented() driver callback.
win32u: Don't invalidate existing Vulkan surface when a new one is created for window.
winex11: Attach currently active Vulkan onscreen surface in vulkan_surface_update_offscreen().
crypt32/tests: Avoid use after free in testEmptyStore().
win32u: Implement NtUserGetCurrentInputMessageSource().
winex11: Update window shape before putting surface image.
winex11.drv: Pass visual to is_wxrformat_compatible_with_visual.
winex11.drv: Choose alpha-enabled xrender format for argb drawables.
ntdll: Zero terminate return string for NtQueryInformationProcess( ProcessImageFileName[Win32] ).
Piotr Caban (10):
propsys: Add PropVariantGetStringElem implementation.
ole32: Support all PROPVARIANT vector types in propertystorage_get_elemsize.
ole32: Update read offset in propertystorage_read_scalar helper.
ole32: Pass MemoryAllocator class to PropertyStorage_ReadProperty.
ole32: Support more vector datatypes when reading property storage.
ole32: Add support for reading VT_VECTOR|VT_VARIANT property.
ole32: Add support for reading VT_R4 property.
ole32: Fix IPropertyStorage::ReadMultiple return value when some properties are missing.
ole32: Set property storage clsid on creation.
msvcr120: Remove MSVCR120_ prefix from creal().
Piotr Morgwai Kotarbinski (2):
wined3d: Add Nvidia RTX30xx series desktop models data.
wined3d: Add Nvidia RTX40xx series desktop models data.
Rémi Bernon (5):
winex11: Allow Withdrawn requests to override Iconic <-> Normal transitions.
winex11.drv: Use get_win_data directly in X11DRV_GetDC.
server: Introduce new set_thread_priority helper.
ntdll: Set RLIMIT_NICE to its hard limit.
server: Check wineserver privileges on init with -20 niceness.
Sebastian Scheibner (2):
wineboot: Add dummy entry for SystemBiosDate.
explorerframe: Return S_OK in more ITaskbarList3 functions.
Shaun Ren (6):
sapi: Adding missing interfaces for SpStream.
sapi: Implement ISpStream::Set/GetBaseStream.
sapi: Implement ISpStream::Close.
sapi: Implement ISpStream::GetFormat.
sapi: Implement IStream methods for SpStream.
sapi: Remove some unnecessary traces.
Stefan Dösinger (6):
wined3d: Support WINED3DFMT_B5G5R5A1_UNORM in the Vulkan backend.
wined3d: Use VK_FORMAT_R4G4B4A4_UNORM_PACK16 for WINED3DFMT_B4G4R4A4_UNORM.
gdi32: Windows adds an extra 4 bytes to EMREXTCREATEPEN.
gdi32: Set EMREXTCREATEPEN offBmi and offBits.
gdi32: EMREXTCREATEPEN contains a 32 bit EXTLOGPEN.
gdi32/tests: Add an EMREXTCREATEPEN test.
Stéphane Bacri (4):
msvcr120: Fix _Cbuild signature.
msvcr120: Add cimag() implementation.
msvcr120: Add _FCbuild() implementation.
msvcr120: Add crealf() and cimagf() implementation.
Tim Clem (1):
imm32: Always validate the IME UI window when painting.
Vibhav Pant (6):
bluetoothapis/tests: Add tests for BluetoothGetRadioInfo.
bluetoothapis: Implement BluetoothGetRadioInfo.
bluetoothapis: Add stubs for BluetoothIsConnectable, BluetoothIsDiscoverable.
bluetoothapis/tests: Add tests for BluetoothIsConnectable, BluetoothIsDiscoverable.
bluetoothapis: Implement BluetoothIsConnectable.
bluetoothapis: Implement BluetoothIsDiscoverable.
William Horvath (2):
ntdll/tests: Add tests for NtDelayExecution and Sleep(Ex).
ntdll: Fix the return value of NtDelayExecution.
Yuxuan Shui (2):
dmime: Handle IStream EOF correctly in MIDI parser.
dmime: Connect default collection to MIDI bandtrack.
Zhiyi Zhang (32):
d2d1/tests: Add ID2D1Device2_GetDxgiDevice() tests.
d2d1: Remove an unnecessary cast in d2d_device_context_init().
d2d1: Implement d2d_device_GetDxgiDevice().
include: Add splay link tree helpers.
ntdll: Implement RtlSubtreePredecessor().
ntdll/tests: Add RtlSubtreePredecessor() tests.
ntdll: Implement RtlSubtreeSuccessor().
ntdll/tests: Add RtlSubtreeSuccessor() tests.
ntdll: Implement RtlRealPredecessor().
ntdll/tests: Add RtlRealPredecessor() tests.
ntdll: Implement RtlRealSuccessor().
ntdll/tests: Add RtlRealSuccessor() tests.
win32u: Allocate a separate user buffer when packing a large WM_COPYDATA message for user32.
user32/tests: Add tests for WM_COPYDATA.
ntdll: Implement RtlSplay().
ntdll/tests: Add RtlSplay() tests.
ntdll: Implement RtlDeleteNoSplay().
ntdll/tests: Add RtlDeleteNoSplay() tests.
ntdll: Implement RtlDelete().
ntdll/tests: Add RtlDelete() tests.
light.msstyles: Use light blue as hot tracking color instead of grey.
include: Fix PRTL_GENERIC_ALLOCATE_ROUTINE prototype.
ntdll/tests: Add RtlInitializeGenericTable() tests.
ntdll/tests: Add RtlNumberGenericTableElements() tests.
ntdll: Implement RtlIsGenericTableEmpty().
ntdll/tests: Add RtlIsGenericTableEmpty() tests.
ntdll: Implement RtlInsertElementGenericTable().
ntdll: Implement RtlDeleteElementGenericTable().
ntdll/tests: Add RtlInsertElementGenericTable() tests.
ntdll/tests: Add RtlDeleteElementGenericTable() tests.
ntdll: Implement RtlLookupElementGenericTable().
ntdll/tests: Add RtlLookupElementGenericTable() tests.
Zsolt Vadasz (1):
ntdll: Add a character map name for Shift JIS.
```