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.
```