Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
377 commits
Select commit Hold shift + click to select a range
262ac0c
wininet: Do not force ipv4 addresses.
Apr 30, 2026
2942a05
gdiplus: Elide empty spans.
cmccarthy-codeweavers Apr 23, 2026
645e7db
gdiplus/tests: Test a region intersect which produces empty spans.
cmccarthy-codeweavers Apr 23, 2026
c35687e
mf/tests: Introduce a helper for creating an activated media sink.
cmccarthy-codeweavers Oct 30, 2025
794f882
mf/tests: Check for sample grabber sink shutdown.
cmccarthy-codeweavers Oct 30, 2025
8546864
mf/tests: Add tests for sample grabber sink shutdown.
cmccarthy-codeweavers Oct 30, 2025
86892ef
mf/session: Ensure the session object is shut down on release.
cmccarthy-codeweavers Oct 30, 2025
3553875
mf/session: Shut down all topologies on session shutdown.
cmccarthy-codeweavers Oct 30, 2025
1a94cbb
amend! HACK: winebus: Disable SDL2.30 new behavior for the SDL unix b…
ivyl May 5, 2026
09ab0e2
HACK: winex11.drv: Update WM_STATE before XReconfigureWMWindow() to a…
zzhiyi May 4, 2026
cca0017
Revert "ntdll: HACK: Disable old EAC bridge for Crossout."
alasky17 May 6, 2026
ef7ff6b
win32u: Bump D3DKMT driver version.
May 6, 2026
9395f40
mf/tests: Test optional topology nodes.
cmccarthy-codeweavers Jan 20, 2026
22de8bb
mf/topology_loader: Get rid of the topoloader_context.
rbernon Apr 30, 2026
d92a8a6
mf/topology_loader: Clone and validate topology in a dedicated helper.
rbernon Apr 30, 2026
89c8bd3
mf/topology_loader: Copy branches with cloned nodes before connecting.
rbernon Apr 30, 2026
4075b41
mf/topology_loader: Resolve topologies by walking down from each sour…
cmccarthy-codeweavers Apr 20, 2026
ed4dee1
mf/topology_loader: Add some sanity checks for optional output nodes.
rbernon Apr 30, 2026
b614ae6
mf/topology_loader: Try to insert optional nodes after resolving the …
cmccarthy-codeweavers Apr 20, 2026
b1f0e40
mf/topology_loader: Force enumerate types when optional node method i…
rbernon Apr 30, 2026
cb4b576
mf/tests: Add asynchronous transform tests.
cmccarthy-codeweavers Apr 9, 2026
50707df
mf/session: Support asynchronous transforms.
cmccarthy-codeweavers Mar 2, 2026
3a70247
amend! msctf: Return stub interface from ThreadMgr_GetFunctionProvide…
ivyl May 6, 2026
ebbae88
amend! msctf: HACK: Stub ITfFnReconversion function.
ivyl May 6, 2026
e57967d
winegstreamer: Use latest form of codec info in transcoded files.
Sep 17, 2024
db9fea6
winegstreamer/media-converter: Store SHA1 of played chunk in dedicate…
Jul 25, 2024
ec9a64a
winegstreamer: Fix potential race in media converter.
Sep 16, 2024
ad2eda6
ws2_32/tests: Properly check for loopback address in test_gethostbyna…
May 5, 2026
c42e52e
ws2_32: Exclude not found and loopback addresses in get_local_ips() i…
May 5, 2026
cb87068
win32u: Implement cross-thread SetScrollInfo.
madewokherd Dec 20, 2025
3bbe4b9
winsqlite3: Import sqlite3 from upstream release 3.51.1.
Apr 25, 2026
0d47977
include: Add winsqlite3.h.
Apr 28, 2026
fcd03f8
winsqlite3/tests: Add a basic test.
Apr 28, 2026
c239066
mf: Remove periodic callback on clock shutdown.
Apr 22, 2026
3880272
mf: Call GetCorrelatedTime without critical section.
Apr 21, 2026
b0726b1
Revert "winepulse.drv: Process streams timer updates from PA main loop."
May 11, 2026
4531de8
winepulse.drv: Process streams timer updates from PA main loop.
Jun 23, 2025
53bb0ee
mf/tests: Test for preroll support in the sample grabber.
cmccarthy-codeweavers Apr 27, 2026
eaff7e8
mf/session: Initialise the stored presentation rate.
cmccarthy-codeweavers Apr 28, 2026
bef197a
fixup! winex11.drv: HACK: Try to ensure black background window is be…
May 12, 2026
9649984
ws2_32/tests: Test select() with valid but non-socket handle.
May 14, 2026
a62838c
ws2_32: Retutn WSAENOTSOCK instead of WSAENOTSUPP from select() when …
May 14, 2026
f83db79
d3d8: HACK: Return NOTAVAILABLE for R8G8B8 in CheckDeviceMultiSampleT…
cmccarthy-codeweavers May 15, 2026
893441e
mfplat/buffer: HACK: Remove the 2D buffer performance hack.
cmccarthy-codeweavers Feb 20, 2026
a4366f6
winex11.drv: HACK: Try to ensure black background window is behind for
alasky17 May 15, 2026
8fcac21
mfmediaengine/tests: Set the volume after the null check in test_Tran…
cmccarthy-codeweavers Apr 23, 2026
04b2fb1
mfmediaengine/tests: Test a media engine extension.
cmccarthy-codeweavers Apr 23, 2026
01f0098
mfmediaengine: Set the source pending flag before creating the source.
cmccarthy-codeweavers Apr 23, 2026
072897c
mfmediaengine: Support media engine extensions.
cmccarthy-codeweavers Apr 23, 2026
0ebe490
mf/scheme_handler: Call PathCreateFromUrlW() for URL to path conversion.
cmccarthy-codeweavers May 6, 2026
8ed99ae
mfplat/tests: Create the new file in the temp path in test_file_strea…
cmccarthy-codeweavers Apr 21, 2026
33b3bd0
mfplat/tests: Test leading forward slashes and colons in filename URLs.
cmccarthy-codeweavers Apr 21, 2026
ef771e1
mfplat: Normalise URLs before passing to BeginCreateObject().
cmccarthy-codeweavers Apr 21, 2026
743b38f
fixup! winepulse.drv: Process streams timer updates from PA main loop.
May 18, 2026
1ae7d7d
dsound/tests: Test primary buffer independence across IDirectSound ob…
jonkoops Apr 23, 2026
6a59418
dsound: Create independent devices for each DirectSoundCreate call.
jonkoops Apr 23, 2026
5df5548
winex11.drv: Expect GLX errors without XLockDisplay().
May 19, 2026
bf1ddb3
nsiproxy.sys: Factor out icmp_socket structure.
May 15, 2026
1d4a9b0
nsiproxy.sys: Rename icmp_listen into icmp_get_reply.
May 15, 2026
68ee0af
nsiproxy.sys: Poll all icmp sockets in a single thread.
May 15, 2026
e8e8723
nsiproxy.sys: Return ICMP ids from parse_icmp_hdr() instead of matchi…
May 19, 2026
4e50b06
nsiproxy.sys: Reuse icmp socket with matching parameters.
May 15, 2026
29a55eb
nsiproxy.sys: Support ICMP error replies with ping sockets.
May 19, 2026
f17daeb
nsiproxy.sys: Use compatible ICMP request id and seq numbers.
May 20, 2026
a0281f0
fixup! nsiproxy.sys: Poll all icmp sockets in a single thread.
May 20, 2026
bbe62c2
dsound: Fail IDirectSoundCaptureBufferImpl_Lock() for invalid buffer …
May 20, 2026
9022bc3
fixup! dsound: Fail IDirectSoundCaptureBufferImpl_Lock() for invalid …
May 21, 2026
f4f47f8
fixup! fshack: win32u: Support vulkan scaling according to fake resol…
nanomatters May 16, 2026
81bb0b6
shell32: Don't add backslash after CSIDL_PERSONAL.
Renari May 19, 2026
c3ef281
media-converter: Move VIDEO_CONV_FOZ_TAG_ definitions to a header.
ivyl May 22, 2026
cf32243
media-converter: Move mark_transcoded_stream() to lib.c.
ivyl May 22, 2026
1b5d55c
winedmo/media-converter: Use mark_transcoded_stream().
ivyl May 22, 2026
3048f99
wined3d: Handle data aliasing when blitting to itself with FX transfo…
May 22, 2026
fbc3df4
ddraw: Allow attaching flip chain surfaces.
May 21, 2026
9fb9033
ddraw/tests: Add tests for attaching and detaching backbuffers on ddr…
May 23, 2026
714406b
ddraw: Force render target bind flags on v1 swapchain candidate surfa…
May 22, 2026
71fecd5
winegstreamer: Reblock Proton transcoded audio into larger chunks if …
shaunren May 25, 2026
f577b88
Revert "ntdll: Switch to CLOCK_BOOTTIME for monotonic counters when a…
May 26, 2026
3fad87a
ntdll: HACK: Enable WINE_SIMULATE_WRITECOPY for Portal Worlds.
May 26, 2026
b769ccb
opengl32: Sync framebuffer FBO in wrap_wglSwapBuffers().
May 27, 2026
79dab2d
gdi32: Test that GetDIBits() rejects DDBs that are not 1-bit or 32-bit.
zzhiyi May 27, 2026
8d33c1c
win32u: Reject DDBs that are not 1-bit or 32-bit for GetDIBits().
zzhiyi May 27, 2026
9e2c45a
HACK: winex11.drv: Wait 100ms in X11DRV_ChangeDisplaySettings() as a …
zzhiyi May 27, 2026
6ffaa8e
Revert "win32u: Don't forcefully activate windows before restoring th…
zzhiyi May 27, 2026
3af5d85
win32u: Set the normal window position without going through NtUserSe…
zzhiyi May 27, 2026
2fd2a6e
winex11.drv: Return WithdrawnState when get_window_wm_state() fails.
zzhiyi May 27, 2026
f258e9c
winex11.drv: Wait for the previous request when transitioning from Ic…
zzhiyi May 27, 2026
e085501
wine.inf: Add ImmersiveShell registry key.
besentv May 26, 2026
16c4f42
fixup! win32u, winex11.drv: HACK: Force GL fshack on XWayland / NVidia.
Jun 3, 2026
6c1c695
quartz/tests: Add a few more seeking tests.
Jun 2, 2026
820ec2b
quartz: Update current and elapsed positions in Stop().
cmccarthy-codeweavers May 13, 2026
4c8ae85
d3d8/tests: Test multisampled back buffer locking.
cmccarthy-codeweavers May 22, 2026
5b56d36
d3d9/tests: Test multisampled back buffer locking.
cmccarthy-codeweavers May 22, 2026
4e62da0
wined3d: Disallow locking of multisampled back buffers.
cmccarthy-codeweavers May 14, 2026
1cabc0b
win32u, opengl32: fshack: Use SRGB framebuffer if target default FBO …
Jun 4, 2026
af67df9
opengl32: fshack: Use fixed big number for gamma_ramp UBO name on com…
Jun 4, 2026
f9f5313
fixup! win32u, opengl32: fshack: Use SRGB framebuffer if target defau…
Jun 4, 2026
7a05cef
win32u: fshack: Properly restore UBO binding.
Jun 5, 2026
16ad1d1
fixup! win32u, winex11.drv: HACK: Force GL fshack on XWayland / NVidia.
Jun 5, 2026
3ee5978
HACK: winex11: Don't ignore FocusIn events with gamescope for Need fo…
rbernon Jun 5, 2026
cc28587
HACK: winex11.drv: Expect a ConfigureNotify when entering fullscreen …
zzhiyi Jun 5, 2026
d0c1d01
fixup! win32u, opengl32: fshack: Use SRGB framebuffer if target defau…
Jun 5, 2026
37e5a56
wine.inf.in: Set XP Windows version for Dark Omen.
Jun 5, 2026
9072b62
HACK: mscoree: Add work-around for kmy engine.
madewokherd Jun 6, 2026
9e3210e
win32u: Stub NtUserInitializeTouchInjection.
joelawm Apr 29, 2026
0cffc20
ntdll: HACK: Force en-US locale for Tom Clancy’s The Division 2 EAC l…
Jun 8, 2026
dcf148b
gdi32/uniscribe: Correct the script tag for Tamil.
ss141309 Apr 15, 2026
e87ea48
gdi32/uniscribe: Perform bounds check in insert_glyph().
ss141309 Apr 23, 2026
080f80c
gdi32/uniscribe: Resize the buffers if glyph count exceeds limit.
ss141309 Apr 28, 2026
f303d20
uniscribe: Correct possible buffer over/under runs.
AricStewart Apr 14, 2026
e3b1bcb
mf/topology_loader: Restore original type when optional connection fa…
rbernon Jun 9, 2026
d24caaa
fixup! ntdll: HACK: Search for ucrtbase using common rules.
Jun 9, 2026
30d3ada
win32u: Always consider newly created shape updated in set_surface_sh…
Jun 9, 2026
3be3f2e
fixup! ntdll: HACK: Force en-US locale for Tom Clancy’s The Division …
Jun 10, 2026
622113c
crypt32: Add "VeriSign Class 3 Public Primary Certification Authority…
Jun 10, 2026
7c3d732
amdcx64: Turn AmdExtStub1 into singleton.
Jun 11, 2026
8791d4d
winegstreamer: HACK: Add alignment fix for 4:2 planar video.
Jun 1, 2026
8054eeb
mfplat/tests: Test CreateObjectFromByteStream() URL with unknown or n…
cmccarthy-codeweavers Jun 1, 2026
1c84c37
mfplat: Do not require CONTENT_DOES_NOT_HAVE_TO_MATCH_EXTENSION_OR_MI…
cmccarthy-codeweavers Jun 2, 2026
7c4bc68
HACK: winex11.drv: Go through NormalState when switching to IconicSta…
zzhiyi Jun 13, 2026
4e3f400
HACK: winex11.drv: Reject WS_EX_TRANSPARENT for Task Bar Hero (3678970).
zzhiyi Jun 13, 2026
ec516be
dinput: Lowercase device paths passed into insert_cache_entry() when …
Conmanx360 Jun 15, 2026
5c072d4
ntdll: Add tests for PROCESS_PARAMS_IMAGE_KEY_MISSING flag.
Jun 16, 2026
e145ade
ntdll: Manage PROCESS_PARAMS_IMAGE_KEY_MISSING flag.
Jun 16, 2026
1358928
win32u: Support D3D12_FENCE_SUBMIT_INFO in win32u_vkQueueSubmit().
Jun 17, 2026
1fec76d
win32u: Force timeline semaphore type when importing d3d12 fence.
Jun 17, 2026
9a819e8
ws2_32: Add WSCEnumProtocols32().
Jun 17, 2026
99703e5
fixup! ws2_32: Add WSCEnumProtocols32().
Jun 17, 2026
9fa03e7
setupapi: Fix some cfgmgr32 function signatures.
rbernon Feb 2, 2026
04f40d0
fixup! atiadlxx: Query adapter config at context creation.
rbernon May 29, 2026
a8dd1eb
cfgmgr32/tests: Add missing newline.
rbernon Oct 16, 2025
576eafd
include: Update cfgmgr32.h definitions.
rbernon Oct 12, 2025
604ba09
cfgmgr32: Add missing entries to cfgmgr32.spec.
rbernon Oct 12, 2025
09ee1a0
cfgmgr32: Split sources to separate files.
rbernon Jan 19, 2026
53a6e5c
cfgmgr32: Implement CM_Get_Class_Key_Name(_Ex)(A|W).
rbernon Oct 11, 2025
9e81266
setupapi: Forward CM_Get_Class_Key_Name(_Ex)(A|W) to cfgmgr32.
rbernon Feb 13, 2026
1674e22
cfgmgr32: Implement CM_Open_Class_Key(_Ex)(A|W).
rbernon Oct 14, 2025
c0b8aa3
setupapi: Forward CM_Open_Class_Key(_Ex)(A|W) to cfgmgr32.
rbernon Feb 13, 2026
ae68f91
cfgmgr32: Cache some common root registry keys.
rbernon Oct 13, 2025
a2cc9b6
cfgmgr32: Implement CM_Enumerate_Classes(_Ex).
rbernon Oct 14, 2025
4080400
setupapi: Forward CM_Enumerate_Classes(_Ex) to cfgmgr32.
rbernon Feb 13, 2026
62a73a3
cfgmgr32: Implement CM_Enumerate_Enumerators(_Ex)(A|W).
rbernon Oct 12, 2025
77cc195
setupapi: Forward CM_Enumerate_Enumerators(_Ex)(A|W) to cfgmgr32.
rbernon Feb 13, 2026
a059b57
cfgmgr32: Implement CM_Open_Device_Interface_Key(_Ex)(A|W).
rbernon Oct 13, 2025
5221d73
cfgmgr32: Implement CM_Get_Class_Registry_Property(A|W).
rbernon Oct 13, 2025
fb3bd08
setupapi: Forward CM_Get_Class_Registry_Property(A|W) to cfgmgr32.
rbernon Feb 13, 2026
dc63e9b
cfgmgr32: Implement CM_Get_Class_Property(_Ex)W.
rbernon Feb 11, 2026
715f9b4
cfgmgr32: Implement CM_Get_Class_Property_Keys(_Ex).
rbernon Oct 13, 2025
ce39f1e
cfgmgr32: Implement CM_Get_Device_Interface_List(_Size)(_Ex)(A|W).
rbernon Oct 13, 2025
7822e40
cfgmgr32: Reimplement CM_Get_Device_Interface_Property(_Ex)W.
rbernon Oct 19, 2025
9856edb
cfgmgr32: Implement CM_Get_Device_Interface_Property_Keys(_Ex)W.
rbernon Oct 12, 2025
eed5a87
cfgmgr32/tests: Add results for missing permissions.
rbernon Feb 24, 2026
1b52be5
cfgmgr32/tests: Skip some localized names tests.
rbernon Feb 24, 2026
979ef9d
cfgmgr32/tests: Skip some HID devices tests if none are present.
rbernon Feb 24, 2026
886f480
cfgmgr32: Fix leak of device info set in DevGetObjectPropertiesEx.
rbernon Feb 24, 2026
37701af
cfgmgr32: Move qsort out of dev_object_iface_get_props.
rbernon Oct 16, 2025
69df796
cfgmgr32: Introduce helpers to collect object property keys.
rbernon Oct 16, 2025
04b0ef4
cfgmgr32: Allocate the property array to its maximum size.
rbernon Oct 19, 2025
a15bf50
cfgmgr32: Keep properties in the order they were requested.
rbernon Oct 19, 2025
2a05b06
cfgmgr32: Remove DEV_OBJECT parameter from internal callbacks.
rbernon Oct 19, 2025
b1ba052
cfrmgr32: Introduce a new dev_get_device_interface_property helper.
rbernon Oct 16, 2025
32d1961
cfgmgr32: Initialize device_interface structs in DEV_OBJECT functions.
rbernon Oct 19, 2025
ee4ccd6
cfgmgr32: Return BOOL from devprop_filter_matches_properties.
rbernon Oct 22, 2025
ee5c91d
cfgmgr32: Use the new helpers to get device interface property keys.
rbernon Oct 20, 2025
4bb03f4
cfgmgr32: Use the new helpers to read device interface properties.
rbernon Feb 11, 2026
e7cdc0e
cfgmgr32: Return LSTATUS from enum_dev_objects callback.
rbernon Oct 22, 2025
57ce519
cfgmgr32: Enumerate the registry keys directly in enum_dev_objects.
rbernon Oct 22, 2025
7f3cac4
setupapi: Cleanup SetupDiOpenClassRegKey(Ex)(A|W) code style.
rbernon Feb 9, 2026
4dc4ceb
setupapi: Reimplement SetupDiOpenClassRegKeyExW using cfgmgr32.
rbernon Feb 9, 2026
936f669
setupapi: Cleanup SetupDiClassGuidsFromName(Ex)(A|W) code style.
rbernon Feb 9, 2026
ddf624b
setupapi: Reimplement SetupDiClassGuidsFromNameExW using cfgmgr32.
rbernon Feb 9, 2026
c3be3a7
setupapi: Cleanup SetupDiBuildClassInfoList(Ex)(A|W) code style.
rbernon Feb 13, 2026
247d642
setupapi: Reimplement SetupDiBuildClassInfoListExW using cfgmgr32.
rbernon Feb 14, 2026
1bcb22f
setupapi: Cleanup SetupDiGetClassDescription(Ex)(A|W) code style.
rbernon Feb 14, 2026
3701b40
setupapi: Reimplement SetupDiGetClassDescriptionExW using cfgmgr32.
rbernon Feb 14, 2026
14fb708
setupapi: Forward CM_Get_Device_Interface_List(_Size)(_Ex)(A|W) to cf…
rbernon Jan 19, 2026
5441494
setupapi: Use CM_Locate_DevNode_ExW to allocate devnode.
rbernon Feb 16, 2026
5d25192
setupapi: Use CM_Get_Device_IDW to get devnode device.
rbernon Feb 16, 2026
e6e9c95
cfgmgr32: Implement CM_Locate_DevNode(_Ex)(A|W) and CM_Get_Device_ID(…
rbernon Feb 16, 2026
132a076
cfgmgr32: Implement CM_Open_DevNode_Key(_Ex).
rbernon Feb 16, 2026
bf09f7c
setupapi: Forward CM_Open_DevNode_Key(_Ex) to cfgmgr32.
rbernon Feb 16, 2026
cdd3e6f
cfgmgr32: Implement CM_Get_DevNode_Registry_Property(_Ex)(A|W).
rbernon Oct 14, 2025
2897582
setupapi: Forward CM_Get_DevNode_Registry_Property(_Ex)(A|W) to cfgmg…
rbernon Jan 19, 2026
a63d508
setupapi: Fix wrong buffer size in SetupDiGetClassDescriptionExA.
Mar 20, 2026
a4291e7
cfgmgr32: Implement CM_Get_DevNode_Property(_Ex)(A|W).
rbernon Jan 20, 2026
5ebb986
setupapi: Forward CM_Get_DevNode_Property(_Ex)(A|W) to cfgmgr32.
rbernon Apr 7, 2026
71b766f
cfgmgr32: Implement CM_Get_DevNode_Property_Keys(_Ex).
rbernon Apr 6, 2026
19d82c0
cfgmgr32: Implement CM_Get_Device_ID_List(_Size)(_Ex)(A|W).
rbernon Oct 22, 2025
9477ad4
setupapi: Forward CM_Get_Device_ID_List(_Size)(_Ex)(A|W) to cfgmgr32.
rbernon Feb 13, 2026
52ebd1b
cfgmgr32: Move remaining stubs from setupapi.
rbernon Apr 7, 2026
2b3c4d6
cfgmgr32: Fix querying unnamed properties.
rbernon Apr 13, 2026
14e073a
cfgmgr32: Catch invalid handles in CM_Unregister_Notification.
misterfifths Apr 30, 2026
4a1e6b5
ntoskrnl: Store DEVPKEY_Device_Parent when enumerating child devices.
RgSg86 Apr 21, 2026
2300857
ntoskrnl/tests: Add DEVPKEY_Device_Parent test.
RgSg86 Apr 21, 2026
ea3ad93
ntoskrnl: Store DEVPKEY_Device_Children on parent after bus enumeration.
RgSg86 Apr 21, 2026
73796dc
ntoskrnl/tests: Add DEVPKEY_Device_Children test.
RgSg86 Apr 21, 2026
2be1071
ntoskrnl: Store DEVPKEY_Device_Siblings on each child after bus enume…
RgSg86 Apr 21, 2026
2ecc71f
ntoskrnl/tests: Add DEVPKEY_Device_Siblings test.
RgSg86 May 25, 2026
a34e496
cfgmgr32: Implement CM_Get_Parent using DEVPKEY_Device_Parent property.
RgSg86 Apr 21, 2026
94222f4
ntoskrnl/tests: Test CM_Get_Parent on the PnP-managed child device.
RgSg86 Apr 21, 2026
5a696d1
gameinput: Use version suffixes instead of prefixes.
rbernon May 28, 2026
43ab9e4
include: Add definitions for gameinput v3.
rbernon May 28, 2026
dcba989
HACK: gameinput: Guard GameInputCreate for most games.
rbernon Jun 4, 2026
2666fee
gameinput: Add IGameInput_v0 class stub.
rbernon Aug 22, 2025
061503f
gameinput: Create an HDEVQUERY to enumerate available devices.
rbernon May 29, 2026
b390747
gameinput: Create device callback entries.
rbernon May 29, 2026
a9176d0
gameinput: Create devices entries for gamepad devices.
rbernon Jun 4, 2026
2252105
gameinput: Notify callbacks of added / removed devices.
rbernon May 29, 2026
6d0b222
HACK: gameinput: Emulate Steam Input native hooks.
rbernon Jan 8, 2024
5274533
winegstreamer/media-converter: Factor videoconv stream discarding int…
besentv Jun 11, 2026
1190b3b
winedmo: Discard transcoded streams from the dump db.
besentv Jun 11, 2026
6a48752
dmloader: Log ERR when soundfonts are used.
ivyl Jun 15, 2026
5a0e4d1
winevulkan: Do not show debug assertion dialog on Unix side exceptions.
Jun 16, 2026
64a55ad
xinput1_3: Remove an unreachable return from HID_set_state().
shaunren Jun 2, 2026
5b58996
xinput1_3: Keep controller read events across device changes.
shaunren Jun 2, 2026
9efc25e
xinput1_3: Return correct slot indices for existing devices in find_o…
shaunren Jun 2, 2026
6abe0c9
xinput1_3: Move keystroke states and locks to check_for_keystroke.
rbernon Jun 18, 2026
da6fbff
xinput1_3: Read and write current state without the controller lock.
rbernon Jun 18, 2026
5d538a8
xinput1_3: Use a global critical section to guard device and enabled …
rbernon Jun 18, 2026
2248ca3
xinput1_3: Extend the CS to guard all device open / read / destroy.
rbernon Jun 18, 2026
fcaa6c5
xinput1_3: Don't wait on overlapped event if CancelIoEx failed.
shaunren Jun 3, 2026
46e7ed1
xinput1_3: Clear enabled when controller is destroyed on read error.
shaunren Jun 3, 2026
8a4ebdd
xinput1_3: Return FALSE from controller_init if device enable failed.
shaunren Jun 3, 2026
e4568ab
xinput1_3: Disable controller when removing an opened device.
shaunren Jun 3, 2026
d2fb088
xinput1_3: Rescan controllers before reporting disconnection to callers.
shaunren Jun 18, 2026
68eb616
Reapply "ntoskrnl: Enumerate child devices on a separate thread."
shaunren Jun 18, 2026
58cb431
imm32/tests: Flush events in test_ImmSetCompositionWindow().
Jun 19, 2026
1603f2b
imm32/tests: Add tests for resetting in-composition state.
Jun 19, 2026
e2aefe9
imm32: Strip off tralining zero in ImeSetCompositionString().
Jun 19, 2026
10c55a9
imm32: Clear in-composition state when empty composition string is set.
Jun 19, 2026
03d44de
imm32: Reset composition string when deactivating context.
Jun 19, 2026
de51527
fixup! ntdll: Implement CPU topology override.
Jun 19, 2026
c23de4d
mmdevapi: Implement SAORS_Reset().
Jun 19, 2026
e4ad5b1
xinput1_3: Initialize state with the previous state in read_controlle…
shaunren Jun 19, 2026
31af7f9
xinput1_3: Initialize controller state only on success in controller_…
shaunren Jun 18, 2026
ed12529
fixup! winepulse.drv: Process streams timer updates from PA main loop.
Jun 23, 2026
a13cdbc
wbemprox: Use device instance id for pnpdevice_id in get_display_adap…
Jun 23, 2026
c257871
amdxc64: Auto-enable upgrade on compatible HW.
ivyl Jun 21, 2026
5caceba
fixup! winepulse.drv: Process streams timer updates from PA main loop.
Jun 25, 2026
e37b76a
ntdll/tests: Add tests for skipping directory reopen by RtlSetCurrent…
Jun 25, 2026
7e906e4
ntdll: Do not reopen directory file when setting the same directory p…
Jun 25, 2026
09dd158
server: Fix a memory leak in d3dkmt_share_objects.
zzhiyi Jun 28, 2026
3bb8904
Revert "ntdll: Add an interface to map the FEX stats shm."
ivyl Jun 30, 2026
13b299f
Revert "ntdll: Implement FEX-specific kernel-side unaligned atomic ha…
ivyl Jun 30, 2026
35047b5
Revert "ntdll: Add FEX specific Asahi TSO support"
ivyl Jun 30, 2026
5326f2c
cfgmgr32: Fix CM_Get_Device_ID buffer size handling.
nanomatters Jun 30, 2026
9f7ab6c
kernelbase: Add a stub for FindNextFileNameW().
Jul 1, 2026
2431099
Revert "winegstreamer: Reduce CLSID_decodebin_parser merit, so the MP…
Jul 2, 2026
c37dd71
wow64: Add BTCpuNotifyProcessExecuteFlagsChange interface.
Sonicadvance1 Jun 24, 2026
290c549
winex11: Check layered client surfaces against the extended style.
nanomatters Jul 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -680,6 +680,7 @@ AC_CHECK_HEADERS(\
gettext-po.h \
link.h \
linux/cdrom.h \
linux/errqueue.h \
linux/filter.h \
linux/fs.h \
linux/futex.h \
Expand All @@ -688,6 +689,7 @@ AC_CHECK_HEADERS(\
linux/input.h \
linux/ioctl.h \
linux/major.h \
linux/memfd.h \
linux/ntsync.h \
linux/param.h \
linux/seccomp.h \
Expand Down Expand Up @@ -727,6 +729,7 @@ AC_CHECK_HEADERS(\
sys/modem.h \
sys/mtio.h \
sys/param.h \
sys/personality.h \
sys/prctl.h \
sys/ptrace.h \
sys/queue.h \
Expand Down Expand Up @@ -1223,6 +1226,7 @@ WINE_EXTLIB_FLAGS(LDAP, ldap, ldap, "-I\$(top_srcdir)/libs/ldap/include")
WINE_EXTLIB_FLAGS(MPG123, mpg123, mpg123, "-I\$(top_srcdir)/libs/mpg123/src/include")
WINE_EXTLIB_FLAGS(MUSL, musl, musl)
WINE_EXTLIB_FLAGS(PNG, png, "png \$(ZLIB_PE_LIBS)", "-I\$(top_srcdir)/libs/png")
WINE_EXTLIB_FLAGS(SQLITE3, sqlite3, sqlite3)
WINE_EXTLIB_FLAGS(TIFF, tiff, "tiff \$(ZLIB_PE_LIBS)", "-I\$(top_srcdir)/libs/tiff/libtiff")
WINE_EXTLIB_FLAGS(TOMCRYPT, tomcrypt, tomcrypt, "-I\$(top_srcdir)/libs/tomcrypt/src/headers -DLTC_NO_PROTOTYPES -DLTC_SOURCE")
WINE_EXTLIB_FLAGS(VKD3D, vkd3d, vkd3d, "-I\$(top_srcdir)/libs/vkd3d/include")
Expand Down Expand Up @@ -2525,6 +2529,7 @@ WINE_CONFIG_MAKEFILE(dlls/advpack)
WINE_CONFIG_MAKEFILE(dlls/advpack/tests)
WINE_CONFIG_MAKEFILE(dlls/amsi)
WINE_CONFIG_MAKEFILE(dlls/amd_ags_x64)
WINE_CONFIG_MAKEFILE(dlls/amdxc64)
WINE_CONFIG_MAKEFILE(dlls/amstream)
WINE_CONFIG_MAKEFILE(dlls/amstream/tests)
WINE_CONFIG_MAKEFILE(dlls/apisetschema)
Expand Down Expand Up @@ -3462,6 +3467,8 @@ WINE_CONFIG_MAKEFILE(dlls/winscard/tests)
WINE_CONFIG_MAKEFILE(dlls/winsock.dll16)
WINE_CONFIG_MAKEFILE(dlls/winspool.drv)
WINE_CONFIG_MAKEFILE(dlls/winspool.drv/tests)
WINE_CONFIG_MAKEFILE(dlls/winsqlite3)
WINE_CONFIG_MAKEFILE(dlls/winsqlite3/tests)
WINE_CONFIG_MAKEFILE(dlls/winsta)
WINE_CONFIG_MAKEFILE(dlls/wintab.dll16)
WINE_CONFIG_MAKEFILE(dlls/wintab32)
Expand Down Expand Up @@ -3584,6 +3591,7 @@ WINE_CONFIG_MAKEFILE(libs/mfuuid)
WINE_CONFIG_MAKEFILE(libs/mpg123)
WINE_CONFIG_MAKEFILE(libs/musl)
WINE_CONFIG_MAKEFILE(libs/png)
WINE_CONFIG_MAKEFILE(libs/sqlite3)
WINE_CONFIG_MAKEFILE(libs/strmbase)
WINE_CONFIG_MAKEFILE(libs/strmiids)
WINE_CONFIG_MAKEFILE(libs/tiff)
Expand Down
3 changes: 2 additions & 1 deletion dlls/amd_ags_x64/Makefile.in
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,5 @@ EXTRADLLFLAGS = -mno-cygwin
SOURCES = \
amd_ags_x64_main.c \
unixlib.c \
dxvk_interfaces.idl
dxvk_interfaces.idl \
vkd3d_device_vkd3d_ext.idl
32 changes: 30 additions & 2 deletions dlls/amd_ags_x64/amd_ags_x64_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
#include "dxgi1_6.h"

#include "dxvk_interfaces.h"
#include "vkd3d_device_vkd3d_ext.h"

#include "amd_ags.h"

Expand Down Expand Up @@ -1402,10 +1403,15 @@ AGSReturnCode WINAPI agsDriverExtensionsDX12_CreateDevice(AGSContext *context,
const AGSDX12DeviceCreationParams *creation_params, const AGSDX12ExtensionParams *extension_params,
AGSDX12ReturnedParams *returned_params)
{
ID3D12DeviceExt3 *ext;
const char *sgi;
unsigned int i;
HRESULT hr;

TRACE("feature level %#x, app %s, engine %s %#x %#x.\n", creation_params->FeatureLevel, debugstr_w(extension_params->pAppName),
debugstr_w(extension_params->pEngineName), extension_params->appVersion, extension_params->engineVersion);
TRACE("feature level %#x, app %s, engine %s %#x %#x, uavSlot %d.\n", creation_params->FeatureLevel,
debugstr_w(extension_params->pAppName), debugstr_w(extension_params->pEngineName),
extension_params->appVersion, extension_params->engineVersion,
extension_params->uavSlot);

if (!load_d3d12_functions())
{
Expand All @@ -1421,6 +1427,28 @@ AGSReturnCode WINAPI agsDriverExtensionsDX12_CreateDevice(AGSContext *context,
return AGS_DX_FAILURE;
}

if (SUCCEEDED(IUnknown_QueryInterface(returned_params->pDevice, &IID_ID3D12DeviceExt3, (void **)&ext)))
{
for (i = 0; i < 32; ++i)
{
if (ID3D12DeviceExt3_SupportsAGSExtension(ext, i))
returned_params->extensionsSupported |= 1u << i;
}
if (returned_params->extensionsSupported & (1 << D3D12_AGS_EXTENSION_UAV_BIND_SLOT)
&& FAILED(ID3D12DeviceExt3_SetAGSUAVSlot(ext, extension_params->uavSlot)))
ERR("Setting UAV slot failed.\n");
ID3D12DeviceExt3_Release(ext);
}
TRACE("Supported extensions: %#x.\n", returned_params->extensionsSupported);

if (!(returned_params->extensionsSupported & (1 << D3D12_AGS_EXTENSION_INTRINSICS_19))
&& (sgi = getenv("SteamGameId")) && !strcmp(sgi, "3321460"))
{
FIXME("HACK: failing agsDriverExtensionsDX12_CreateDevice.\n");
IUnknown_Release(returned_params->pDevice);
return AGS_DX_FAILURE;
}

TRACE("Created d3d12 device %p.\n", returned_params->pDevice);

return AGS_SUCCESS;
Expand Down
193 changes: 193 additions & 0 deletions dlls/amd_ags_x64/vkd3d_device_vkd3d_ext.idl
Original file line number Diff line number Diff line change
@@ -0,0 +1,193 @@
/*
* * Copyright 2021 NVIDIA Corporation
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
import "d3d12.idl";
import "vkd3d_vk_includes.h";

[
uuid(11ea7a1a-0f6a-49bf-b612-3e30f8e201dd),
object,
local,
pointer_default(unique)
]
interface ID3D12DeviceExt : IUnknown
{
HRESULT GetVulkanHandles(VkInstance *vk_instance, VkPhysicalDevice *vk_physical_device, VkDevice *vk_device);
BOOL GetExtensionSupport(D3D12_VK_EXTENSION extension);
HRESULT CreateCubinComputeShaderWithName(const void *cubin_data, UINT32 cubin_size, UINT32 block_x, UINT32 block_y, UINT32 block_z, const char *shader_name, D3D12_CUBIN_DATA_HANDLE **handle);
HRESULT DestroyCubinComputeShader(D3D12_CUBIN_DATA_HANDLE *handle);
HRESULT GetCudaTextureObject(D3D12_CPU_DESCRIPTOR_HANDLE srv_handle, D3D12_CPU_DESCRIPTOR_HANDLE sampler_handle, UINT32 *cuda_texture_handle);
HRESULT GetCudaSurfaceObject(D3D12_CPU_DESCRIPTOR_HANDLE uav_handle, UINT32 *cuda_surface_handle);
HRESULT CaptureUAVInfo(D3D12_UAV_INFO *uav_info);
}

[
uuid(39da4e09-bd1c-4198-9fae-86bbe3be41fd),
object,
local,
pointer_default(unique)
]
interface ID3D12DXVKInteropDevice : IUnknown
{
HRESULT GetDXGIAdapter(REFIID iid, void **object);
HRESULT GetInstanceExtensions(UINT *extension_count, const char **extensions);
HRESULT GetDeviceExtensions(UINT *extension_count, const char **extensions);
HRESULT GetDeviceFeatures(const VkPhysicalDeviceFeatures2 **features);
HRESULT GetVulkanHandles(VkInstance *vk_instance, VkPhysicalDevice *vk_physical_device, VkDevice *vk_device);
HRESULT GetVulkanQueueInfo(ID3D12CommandQueue *queue, VkQueue *vk_queue, UINT32 *vk_queue_family);
void GetVulkanImageLayout(ID3D12Resource *resource, D3D12_RESOURCE_STATES state, VkImageLayout *vk_layout);
HRESULT GetVulkanResourceInfo(ID3D12Resource *resource, UINT64 *vk_handle, UINT64 *buffer_offset);
HRESULT LockCommandQueue(ID3D12CommandQueue *queue);
HRESULT UnlockCommandQueue(ID3D12CommandQueue *queue);
}

[
uuid(902d8115-59eb-4406-9518-fe00f991ee65),
object,
local,
pointer_default(unique)
]
interface ID3D12DXVKInteropDevice1 : ID3D12DXVKInteropDevice
{
HRESULT GetVulkanResourceInfo1(ID3D12Resource *resource, UINT64 *vk_handle, UINT64 *buffer_offset, VkFormat *format);
HRESULT CreateInteropCommandQueue(const D3D12_COMMAND_QUEUE_DESC *pDesc, UINT32 vk_queue_family_index, ID3D12CommandQueue **ppQueue);
HRESULT CreateInteropCommandAllocator(D3D12_COMMAND_LIST_TYPE type, UINT32 vk_queue_family_index, ID3D12CommandAllocator **ppAllocator);
HRESULT BeginVkCommandBufferInterop(ID3D12CommandList *pCmdList, VkCommandBuffer *pCommandBuffer);
HRESULT EndVkCommandBufferInterop(ID3D12CommandList *pCmdList);
}

[
uuid(90ecf26e-b212-43f5-b62a-825ad7b1385e),
object,
local,
pointer_default(unique)
]
interface ID3D12DXVKInteropDevice2 : ID3D12DXVKInteropDevice1
{
/* Unlike LockCommandQueue this doesn't drain or lock d3d12 queue but only locks the access to the underlying
* Vulkan queue so it can be used outside of d3d12. */
HRESULT LockVulkanQueue(ID3D12CommandQueue *queue);
HRESULT UnlockVulkanQueue(ID3D12CommandQueue *queue);
}

[
uuid(22a70184-a6a4-4c24-bf97-7d6df9f12d8a),
object,
local,
pointer_default(unique)
]
interface ID3D12DXVKInteropDevice3 : ID3D12DXVKInteropDevice2
{
/* Returns VkDeviceMemory and memory offset corresponding to the D3D12 heap allocation.
* If the heap has no Vulkan backing allocation yet, this method fails. */
HRESULT GetVulkanHeapInfo(ID3D12Heap *heap, UINT64 *vk_memory, UINT64 *heap_offset,
UINT32 *vk_memory_type);
}

[
uuid(f3112584-41f9-348d-a59b-00b7e1d285d6),
object,
local,
pointer_default(unique)
]
interface ID3DLowLatencyDevice : IUnknown
{
BOOL SupportsLowLatency();
HRESULT LatencySleep();
HRESULT SetLatencySleepMode(BOOL low_latency_mode, BOOL low_latency_boost, UINT32 minimum_interval_us);
HRESULT SetLatencyMarker(UINT64 frameID, UINT32 markerType);
HRESULT GetLatencyInfo(D3D12_LATENCY_RESULTS *latency_results);
}

[
uuid(099a73fd-2199-4f45-bf48-0eb86f6fdb65),
object,
local,
pointer_default(unique)
]
interface ID3D12DeviceExt1 : ID3D12DeviceExt
{
HRESULT CreateResourceFromBorrowedHandle(const D3D12_RESOURCE_DESC1 *desc, UINT64 vk_handle, ID3D12Resource **resource);
HRESULT GetVulkanQueueInfoEx(ID3D12CommandQueue *queue, VkQueue *vk_queue, UINT32 *vk_queue_index, UINT32 *vk_queue_flags, UINT32 *vk_queue_family);
}

[
uuid(e859c4ac-ba8f-41c4-8eac-1137fde6158d),
object,
local,
pointer_default(unique)
]
interface ID3D12DeviceExt2 : ID3D12DeviceExt1
{
BOOL SupportsCubin64bit();
HRESULT CreateCubinComputeShaderExV2(D3D12_CREATE_CUBIN_SHADER_PARAMS *params);
HRESULT GetCudaMergedTextureSamplerObject(D3D12_GET_CUDA_MERGED_TEXTURE_SAMPLER_OBJECT_PARAMS *params);
HRESULT GetCudaIndependentDescriptorObject(D3D12_GET_CUDA_INDEPENDENT_DESCRIPTOR_OBJECT_PARAMS *params);
}

[
uuid(3aefa75c-c9f3-4b7f-a180-5df695d083bf),
object,
local,
pointer_default(unique)
]
interface ID3D12DeviceExt3 : ID3D12DeviceExt2
{
BOOL SupportsAGSExtension(D3D12_AGS_EXTENSION agsExtension);
HRESULT SetAGSUAVSlot(UINT uavSlot);
}

/* 1:1 implementation of ffx_antilag2_dx12.h */
struct AmdAntiLagAPIData_v1
{
UINT uiSize;
UINT uiVersion;
UINT eMode;
const char *sControlStr;
UINT uiControlStrLength;
UINT maxFPS;
};


struct AmdAntiLagAPIData_v2
{
UINT uiSize;
UINT uiVersion;
struct
{
UINT unused0 : 1;
UINT unused1 : 1;
UINT signalFgFrameType : 1;
UINT isInterpolatedFrame : 1;
UINT signalGetUserInputIdx : 1;
UINT signalEndOfFrameIdx : 1;
UINT reserved :26;
} flags;
UINT64 iiFrameIdx;
UINT64 uiiReserved[19];
};

[
uuid(44085fbe-e839-40c5-bf38-0ebc5ab4d0a6),
object,
local,
pointer_default(unique)
]
interface IAmdExtAntiLagApi : IUnknown
{
HRESULT UpdateAntiLagState(void *pData);
}
Loading