--
v9: comctl32/listview: Do not return items count on getting next item for last one.
ddraw: Mark failing tests as todo_wine.
comctl32/listview: Add LVM_GETNEXTITEM test.
https://gitlab.winehq.org/wine/wine/-/merge_requests/5909
The first two patches here address an issue I encountered when using Wine's d3dx9 with DXVK in the game Command and Conquer 3. The game calls `D3DXLoadSurfaceFromMemory` on a multisampled render target. This ends up going through the `lock_surface()` helper in d3dx9, which eventually calls `UpdateSurface()` in `unlock_surface()` to copy the staging surface back to the multisampled render target. This succeeds on wined3d even though it shouldn't, and fails on DXVK like it should.
The second two patches address an issue reported in Empires: Dawn of the Modern World, where the game expects a device reset to reset the scene state.
--
v4: wined3d: Clear scene state on device state reset.
d3d8/tests: Add a test for device reset after beginning a scene.
d3d9/tests: Add a test for device reset after beginning a scene.
ddraw/tests: Add tests for preserving d3d scene state during primary surface creation.
d3d9: Return failure if a multisampled surface is passed to IDirect3DDevice9::UpdateSurface().
d3d9/tests: Add tests for IDirect3DDevice9::UpdateSurface() with a multisampled surface.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6042
--
v3: setupapi: Fix testing for a non-empty string in get_source_info().
setupapi/tests: Test installing an INF file with architecture-specific SourceDisks* sections.
setupapi: Use SetupGetSourceInfo() in get_source_info().
setupapi: Use SetupGetSourceFileLocation() in get_source_info().
https://gitlab.winehq.org/wine/wine/-/merge_requests/6089
On Wed Jul 17 17:12:01 2024 +0000, Tim Clem wrote:
> Filing a bug is probably the right thing to do. I don't know offhand who
> would know best - I'm not very familiar with that area myself. In
> ntdll/unix/virtual.c, the address space limit is hardcoded to
> 0x7fffffff0000 for x86_64, but on ARM it looks like we try to detect it
> (see `get_host_addr_space_limit`). For the bug, it would be interesting
> to attach a +virtual log, so we can see what `get_host_addr_space_limit` returned.
The issue I am having is when fully emulating x86_64 wine on arm64 using the likes of box64/fex/qemu. So the hardcode makes sense why the problem is happening. Thanks for the info, I'll look into using `get_host_addr_space_limit` for all architectures.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3598#note_76437
On Wed Jul 17 17:12:01 2024 +0000, theofficialgman wrote:
> Thanks Tim. Should I file a bug for this then or are you aware of who
> might be more knowledgeable about the allocation system and why its
> attempting to allocate memory outside of address limit?
Filing a bug is probably the right thing to do. I don't know offhand who would know best - I'm not very familiar with that area myself. In ntdll/unix/virtual.c, the address space limit is hardcoded to 0x7fffffff0000 for x86_64, but on ARM it looks like we try to detect it (see `get_host_addr_space_limit`). For the bug, it would be interesting to attach a +virtual log, so we can see what `get_host_addr_space_limit` returned.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3598#note_76436
Somehow the field is not present for sound capture devices, at least on my Win11.
Fixes Tom Clancy's Splinter Cell: Conviction not finding any sound devices and refusing to start.
--
v2: dxdiagn: Fill szHardwareId for sound render devices.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6097
This is part XX1 of cmd engine rewrite.
It covers:
- tests & fixes for success/failure of changing current drive,
- tests & fixes for success/failure when using pipes,
- new implementation of CHOICE command.
Notes:
- CHOICE is not a builtin command in native cmd.exe,
but I kept it builtin for simplicity,
- CHOICE was (partially) implemented using syntax from
MS-DOS days; it has been moved to use Windows' syntax.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6090
This does break compatibility in a few subtle ways. For example, the native
headers do not require COBJMACROS, and they include objbase.h. It's not clear to
me that these differences matter, but if they do, we can add widl extensions to
account for them.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6032
The first two patches here address an issue I encountered when using Wine's d3dx9 with DXVK in the game Command and Conquer 3. The game calls `D3DXLoadSurfaceFromMemory` on a multisampled render target. This ends up going through the `lock_surface()` helper in d3dx9, which eventually calls `UpdateSurface()` in `unlock_surface()` to copy the staging surface back to the multisampled render target. This succeeds on wined3d even though it shouldn't, and fails on DXVK like it should.
The second two patches address an issue reported in Empires: Dawn of the Modern World, where the game expects a device reset to reset the scene state.
--
v3: wined3d: Clear scene state on device state reset.
d3d8/tests: Add a test for device reset after beginning a scene.
d3d9/tests: Add a test for device reset after beginning a scene.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6042
Wine doesn't handle Pooling as yet and in my scenario it's set to 0 (No Pooling), so not an issue but requires a successful return value.
SQLTransact incorrectly assumed that if either handle was NULL an error occurred. I'm seeing a call where the Environment handle is NULL, even unixODBC handles this scenario.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6098
--
v2: win32u: Use the thread input shared memory for GetKeyState.
server: Expose the thread input keystate lock through shared memory.
server: Make the get_key_state request key code mandatory.
win32u: Use the desktop shared memory in get_async_keyboard_state.
win32u: Use the thread input shared memory in GetKeyboardState.
win32u: Introduce a new NtUserGetAsyncKeyboardState call.
server: Expose the thread input keystate through shared memory.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6036
Marking this as draft for now, as I need to revisit it at some point. If removing the copy is possible, that would be even better than optimizing it. In which case the final solution may look very different to the one here (resulting in the closure of this MR).
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5979#note_76372
Somehow the field is not present for sound capture devices, at least on my Win11.
Fixes Tom Clancy's Splinter Cell: Conviction not finding any sound devices and refusing to start.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6097
--
v2: setupapi: Use SetupGetIntField() in SetupGetSourceFileLocation().
setupapi: Return the file's relative path from SetupGetSourceFileLocation().
setupapi: Correctly interpret the INFCONTEXT parameter in SetupGetSourceFileLocation().
setupapi/tests: Add more tests for SetupGetSourceFileLocation().
https://gitlab.winehq.org/wine/wine/-/merge_requests/6089
On Tue Jul 16 16:03:49 2024 +0000, Rémi Bernon wrote:
> Fwiw 65165cf8520f85ac327115536749cda1aabef77b causes some ddraw tests failures.
Yep, already addressed in 6080. Sorry, I don't know how this one slipped past me, I know I ran the tests...
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5946#note_76331
Except for nodes with custom properties, those still need more work on the infrastructure. jscript change is just minimum needed to allow objects with only builtin properties to preserve their current behavior, I have more tweaks for that area queued for "async" custom properties.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6092
The function SQLBindParam was missed when binding all the available functions. Will implement the SQLBindParam in a future patchset.
The other is just a fix for when parameters are NULL when passed in (Same the the W version).
--
v7: odbc32: SQLError/W handle NULL handles
https://gitlab.winehq.org/wine/wine/-/merge_requests/6063
The function SQLBindParam was missed when binding all the available functions. Will implement the SQLBindParam in a future patchset.
The other is just a fix for when parameters are NULL when passed in (Same the the W version).
--
v6: odbc32: SQLError/W handle NULL handles
https://gitlab.winehq.org/wine/wine/-/merge_requests/6063
Fixes Bug 23029 (Devil May Cry® 3 Special Edition) (6550) Intro Video is covered by green, transparent square for a majority of it.
Before these patches, surface data for planar formats is not copied
correctly when the application uses a custom allocator-presenter and
allocates a surface of different size than the VMR9 source.
Patch 2/2 adds support for performing this copy correctly when the
source dimensions are less or equal than the rendering surface
dimensions.
---
I have some questions:
- Should I also make it work for when the dst is smaller than the src?
- If not, should the FIXME() in 1/2 be promoted to an error? Otherwise we might have segfaults, writing out of scope.
- Should I use copy_plane(), introduced in 2/2 also in the implementation of the other formats? Changing what needs to be changed to preserve behavior of course.
--
v3: quartz: Properly copy data to render surfaces of planar formats in VMR9.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6069
This fixes various corner cases.
This is not motivated by any particular application. However, the server-side
code seems at least as simple as the existing client-side code, is more
accurate, and removes a potential source of complication from any future work
involving asyncs.
--
v3: server: Reimplement mailslots using server-side I/O.
server: Treat completion with error before async_handoff() as error.
kernel32/tests: Add more mailslot tests.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6045
Fixes Bug 23029 (Devil May Cry® 3 Special Edition) (6550) Intro Video is covered by green, transparent square for a majority of it.
Before these patches, surface data for planar formats is not copied
correctly when the application uses a custom allocator-presenter and
allocates a surface of different size than the VMR9 source.
Patch 2/2 adds support for performing this copy correctly when the
source dimensions are less or equal than the rendering surface
dimensions.
---
I have some questions:
- Should I also make it work for when the dst is smaller than the src?
- If not, should the FIXME() in 1/2 be promoted to an error? Otherwise we might have segfaults, writing out of scope.
- Should I use copy_plane(), introduced in 2/2 also in the implementation of the other formats? Changing what needs to be changed to preserve behavior of course.
--
v2: quartz: Properly copy data to render surfaces of planar formats in VMR9.
quartz: Emit FIXME when the rendering surface is smaller than the source in VMR9.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6069
The first two patches here address an issue I encountered when using Wine's d3dx9 with DXVK in the game Command and Conquer 3. The game calls `D3DXLoadSurfaceFromMemory` on a multisampled render target. This ends up going through the `lock_surface()` helper in d3dx9, which eventually calls `UpdateSurface()` in `unlock_surface()` to copy the staging surface back to the multisampled render target. This succeeds on wined3d even though it shouldn't, and fails on DXVK like it should.
The second two patches address an issue reported in Empires: Dawn of the Modern World, where the game expects a device reset to reset the scene state.
--
v2: wined3d: Clear scene state on device state reset.
d3d8/tests: Add a test for device reset after beginning a scene.
d3d9/tests: Add a test for device reset after beginning a scene.
ddraw/tests: Add tests for preserving d3d scene state during primary surface creation.
d3d9: Return failure if a multisampled surface is passed to IDirect3DDevice9::UpdateSurface().
d3d9/tests: Add tests for IDirect3DDevice9::UpdateSurface() with a multisampled surface.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6042
The function SQLBindParam was missed when binding all the available functions. Will implement the SQLBindParam in a future patchset.
The other is just a fix for when parameters are NULL when passed in (Same the the W version).
--
v5: odbc32: SQLError/W handle NULL handles
https://gitlab.winehq.org/wine/wine/-/merge_requests/6063