It makes more sense to have it matching fx_5_0 format, which
uses the same flag for TBUFFER case, and also keeps 'single' modifier in there.
This modifier is ignored on fx_4_x, so it's only needed to be implemented
in the compiler.
Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com>
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4991
Current implementation handles correctly % only at the end of the
string. Nothing else matches.
The new implementation while naïve and recursive handles both _ and *
correctly.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4993
This serie mainly tackles the playback of wave tracks with loops.
Current code had to be improved as:
- loop playback doesn't require setting the loop start/end points:
leaving them at 0 mean playing the whole segment,
- moreover, the length (at least for wave tracks) of the segment
is not used. Instead, the duration of stamped/posted tracks is
used instead.
- even forcing a length on segment isn't taken into account (tested
locally, but not included in the current tests).
- implemented it by creating the graph internal to segment state
and gathering relevant information on the fly. There's no
indication it's done this exact way on native, but at least
tests for time of track playback are identical.
Notes:
- only changed the track waves, future work will require equivalent
testings at least on MIDI sequences.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4981
VarBstrFrom* calls into msvcrt but oleaut32's string representation differs slightly
these tests show that msvcrt behaves as expected and the difference is in oleaut32
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4988
This serie mainly tests and implement support for SymSrvGetFileIndexInfo()
on a few more file formats.
- .dbg: with test and implementation,
- .pdb (JG format): This format has been replaced by the DS format for more
than 25 years, so I didn't bother writting tests for generating such
files (implementation has been tested manually against some existing
samples).
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4994
for details see https://bugs.winehq.org/show_bug.cgi?id=56065
This change adds an implementation of Win32 API function GetAnycastIpAddressTable() that is used by Adoptium OpenJDK 21 and later to initialize Secure Random Generator. This implementation does not return real information, it just says "no entries found".
--
v11: iphlpapi: Add stub for GetAnycastIpAddressTable().
https://gitlab.winehq.org/wine/wine/-/merge_requests/4940
This is the first part of !608, which I decided to separate to ease review.
It consists of improvements to SM1 testing, mainly:
- Correctly passing int and bool uniforms as IEEE 754 floats to SM1 profiles.
- The introduction of the "only" qualifier to avoid abusing `[require]` blocks in case tests retrieve different results for different shader models.
- Allowing some of the tests we already have for SM4/SM6 to run in SM1 after those improvements.
--
v2: tests: Remove [require] directives for tests that use int and bool uniforms.
tests/shader-runner: Introduce "if" qualifier.
tests: Don't ignore SM1 on a non-const-indexing.shader_test test.
tests/vkd3d-shader: Set uninitialized uniforms to zero.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/616
Avoids value truncation in 32-bit builds and fixes clang warning:
```
../libs/vkd3d/libs/vkd3d/device.c:2157:14: warning: result of comparison of constant 4294967296 with expression of type 'size_t' (aka 'unsigned int') is always true [-Wtautological-constant-out-of-range-compare]
if (size <= VKD3D_VA_SLAB_SIZE && allocator->free_slab)
~~~~ ^ ~~~~~~~~~~~~~~~~~~
```
--
v2: vkd3d: Use uint64_t for the size in vkd3d_gpu_va_allocator_allocate.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/621
Mainly to implement `GetResourceAllocationInfo1()`, but we can introduce `Device7` without much risk of apps failing on unimplemented methods, and doing that separately would conflict with `GetResourceAllocationInfo1()`.
--
v2: vkd3d: Implement GetResourceAllocationInfo1().
tests/d3d12: Add tests for GetResourceAllocationInfo1().
vkd3d: Support multiple descriptions in GetResourceAllocationInfo().
tests/d3d12: Test multiple descriptions in test_resource_allocation_info().
vkd3d: Add ID3D12Device7 interface stubs.
vkd3d: Add ID3D12Device6 interface stub.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/617
--
v6: vkd3d-shader/dxil: Implement DX intrinsic SplitDouble.
tests/shader-runner: Add an asuint() test to the 64-bit cast tests.
tests/shader-runner: Support testing for integer pixel data.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/589
--
v7: win32u: Get rid of the rawinput thread data and buffer.
server: Fix rawinput buffer sizes and alignment on WoW64.
server: Move rawinput message conversion from win32u.
server: Stop using hardware_msg_data in rawinput_message.
server: Combine HID usage page and usage together.
server: Stop using union rawinput in hw_input_t.
dinput/tests: Add more tests for HID rawinput buffer.
dinput/tests: Add a helper to wait on HID input reads.
user32/tests: Rewrite the rawinput buffer test with keyboard input.
user32/tests: Run rawinput device tests in the separate desktop.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4946
--
v6: win32u: Get rid of the rawinput thread data and buffer.
server: Fix rawinput buffer sizes and alignment on WoW64.
server: Move rawinput message conversion from win32u.
server: Stop using hardware_msg_data in rawinput_message.
server: Combine HID usage page and usage together.
server: Stop using union rawinput in hw_input_t.
dinput/tests: Add more tests for HID rawinput buffer.
dinput/tests: Add a helper to wait on HID input reads.
user32/tests: Rewrite the rawinput buffer test with keyboard input.
user32/tests: Run rawinput device tests in the separate desktop.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4946
--
v5: win32u: Get rid of the rawinput thread data and buffer.
server: Fix rawinput buffer sizes and alignment on WoW64.
server: Move rawinput message conversion from win32u.
server: Stop using hardware_msg_data in rawinput_message.
server: Combine HID usage page and usage together.
server: Stop using union rawinput in hw_input_t.
dinput/tests: Add more tests for HID rawinput buffer.
dinput/tests: Add a helper to wait on HID input reads.
user32/tests: Rewrite the rawinput buffer test with keyboard input.
user32/tests: Run rawinput device tests in the separate desktop.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4946
Goes atop !601. The last three commits belong to this MR.
--
v2: vkd3d-shader/dxil: Implement DX intrinsic TextureStore.
tests/shader-runner: Add shader model 6 texture UAV tests.
tests/shader-runner: Emit descriptor ranges for consecutive resources.
vkd3d-shader/spirv: Emit a vector bitcast if necessary in spirv_compiler_emit_load_ssa_reg().
vkd3d-shader/dxil: Implement DX intrinsic TextureLoad.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/611
--
v4: mfmediaengine: Avoid implicit casts in IMFAttributes_GetUINT32 calls.
mfmediaengine/tests: Use MF_MEDIA_ENGINE_CANPLAY type in IMFMediaEngine_CanPlayType call.
mfplat: Introduce media_type_get_uint32 helper.
mfplat/tests: Use MF_ATTRIBUTE_TYPE type in IMFMediaType_GetItemType call.
mfplat: Avoid implicit cast in IMFAttributes_GetUINT32 call.
mf: Avoid implicit enum to int pointer casts.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4906
At some point I would like to have an assembler for TPF, so that it's easier to write and modify tests. This is a first step in that direction, fixing some kind of format for serializing signatures in the comment at the beginning of the assembler code. I'm not decided yet on all details, so take this as an RFC for the moment.
--
v6: tests: Test emitting the signature.
vkd3d-compiler: Add an option to emit the signature when disassembling.
vkd3d-shader/d3d-asm: Support emitting the shader signature.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/553
At some point I would like to have an assembler for TPF, so that it's easier to write and modify tests. This is a first step in that direction, fixing some kind of format for serializing signatures in the comment at the beginning of the assembler code. I'm not decided yet on all details, so take this as an RFC for the moment.
--
v5: tests: Test emitting the signature.
vkd3d-compiler: Add an option to emit the signature when disassembling.
vkd3d-shader/d3d-asm: Support emitting the shader signature.
vkd3d-shader/d3d-asm: Refactor dumping a write mask to a dedicated function.
vkd3d-shader/d3d-asm: Describe the ASM dialect with a bunch of flags instead of a plain enum.
vkd3d-shader/d3d-asm: Do not make a copy of the buffer before returning it.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/553
I had a bugreport here: https://bugs.winehq.org/show_bug.cgi?id=56161
This pull req fixes the bug that programs that do VirtualAlloc(placeholder)/VirtualFree(keep placeholder)/MapViewOfFile3(replace placeholder), do not run. Like the dotnet pe loader in .net 7 for example.
It was not clear to me at first, because i didnt notice it on msdn, but the way that Dmitry Timoshkov "hacked" it in https://bugs.winehq.org/show_bug.cgi?id=56122 is actually (nearly) how it is supposed to happen according to msdn.
From here: https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-… 
So thanks to Dmitry Timoshkov. If you are interested you could also look into the thing i mentioned in the bug report, that MapViewOfFile3 doesn't round down to 64k, but, i don't think this is a serious problem yet.
Edit: I found out that under windows, the alignment constraint is not fully lifted but, it is only required to be pagesize aligned if MEM_REPLACE_PLACEHOLDER is present in the flags.
To clarify why i want this in wine. The PE Loader of .net (see here https://github.com/dotnet/runtime/blob/f21dc6c3dceb6ea76bef73e2a026c770aaed…) does align with page size. Not with 64k. This breaks a .net 7 app during load up, that will execute otherwise just execute fine.
--
v24: kernelbase: Added a test for MapViewOfFile3 with MEM_REPLACE_PLACEHOLDER
https://gitlab.winehq.org/wine/wine/-/merge_requests/4822
I had a bugreport here: https://bugs.winehq.org/show_bug.cgi?id=56161
This pull req fixes the bug that programs that do VirtualAlloc(placeholder)/VirtualFree(keep placeholder)/MapViewOfFile3(replace placeholder), do not run. Like the dotnet pe loader in .net 7 for example.
It was not clear to me at first, because i didnt notice it on msdn, but the way that Dmitry Timoshkov "hacked" it in https://bugs.winehq.org/show_bug.cgi?id=56122 is actually (nearly) how it is supposed to happen according to msdn.
From here: https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-… 
So thanks to Dmitry Timoshkov. If you are interested you could also look into the thing i mentioned in the bug report, that MapViewOfFile3 doesn't round down to 64k, but, i don't think this is a serious problem yet.
Edit: I found out that under windows, the alignment constraint is not fully lifted but, it is only required to be pagesize aligned if MEM_REPLACE_PLACEHOLDER is present in the flags.
To clarify why i want this in wine. The PE Loader of .net (see here https://github.com/dotnet/runtime/blob/f21dc6c3dceb6ea76bef73e2a026c770aaed…) does align with page size. Not with 64k. This breaks a .net 7 app during load up, that will execute otherwise just execute fine.
--
v22: kernelbase: Added a test for MapViewOfFile3 with MEM_REPLACE_PLACEHOLDER
https://gitlab.winehq.org/wine/wine/-/merge_requests/4822
Avoids value truncation in 32-bit builds and fixes clang warning:
```
../libs/vkd3d/libs/vkd3d/device.c:2157:14: warning: result of comparison of constant 4294967296 with expression of type 'size_t' (aka 'unsigned int') is always true [-Wtautological-constant-out-of-range-compare]
if (size <= VKD3D_VA_SLAB_SIZE && allocator->free_slab)
~~~~ ^ ~~~~~~~~~~~~~~~~~~
```
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/621
On Wed Jan 31 20:20:40 2024 +0000, Rémi Bernon wrote:
> Fwiw there is already an implementation of this in
> `dlls/windows.media.speech/vector.c`, you should probably copy the
> relevant parts of the file there.
Will do, had no idea that existed.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4985#note_59718
There are still some issues I need to fix, mainly around timing conversion between MIDI and dmusic. Right now MIDI files seem to be cut off before the end is reached.
Please have a look at the general approach in the meantime, I need to know if this is the right way to do this or not.
--
v6: debug
dmusic: Don't stop instrument downloading early on failure.
dmime: Create a band track for MIDI segments.
dmband: Move band.c to dmusic
dmband: Implement getting/setting GUID_BandParam on band tracks.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4982
The idea I have is to use this module to declare class stubs until there is a good reason to split them to dedicated modules. WinRT modules aren't usually loaded directly, and instead the registry is queried to figure which module to load for which class.
This would help avoiding unnecessary proliferation of stub WinRT modules, while at the same time allowing to factor WinRT foundation code (such as vector / async, etc...) between the modules that seem to deserve to be implemented separately.
The relevant classes could then be split out to dedicated modules on a as-needed basis, when they get fleshed out.
--
v3: winewinrt: Factor IAsyncOperation<boolean> implementations.
winewinrt: Factor IAsyncInfo implementations.
winewinrt: Move Vector<HSTRING> from windows.media.speech.
widl: Write C type names for function parameters.
winewinrt: Factor Vector<IInspectable> implementations.
winewinrt: Introduce new static library.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2298
There are still some issues I need to fix, mainly around timing conversion between MIDI and dmusic. Right now MIDI files seem to be cut off before the end is reached.
Please have a look at the general approach in the meantime, I need to know if this is the right way to do this or not.
--
v5: dmusic: Don't stop instrument downloading early on failure.
dmime: Create a band track for MIDI segments.
dmband: Move band.c to dmusic
dmband: Implement getting/setting GUID_BandParam on band tracks.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4982
There are still some issues I need to fix, mainly around timing conversion between MIDI and dmusic. Right now MIDI files seem to be cut off before the end is reached.
Please have a look at the general approach in the meantime, I need to know if this is the right way to do this or not.
--
v4: dmusic: Don't stop instrument downloading early on failure.
dmime: Create a band track for MIDI segments.
dmband: Move band.c to dmusic
dmband: Implement setting GUID_BandParam on band tracks.
dmime/test: Add test for getting band track from midi file.
dmime: Implement IDirectMusicTrack_Play for MIDI tracks.
dmime: Implement getting/setting TempoParam for MIDI tracks.
dmime: Parse MIDI files.
dmime: Add stubs for MIDI tracks
https://gitlab.winehq.org/wine/wine/-/merge_requests/4982
There are still some issues I need to fix, mainly around timing conversion between MIDI and dmusic. Right now MIDI files seem to be cut off before the end is reached.
Please have a look at the general approach in the meantime, I need to know if this is the right way to do this or not.
--
v3: dmime: Create a band track for MIDI segments.
dmband: Move band.c to dmusic
dmband: Implement setting GUID_BandParam on band tracks.
dmime/test: Add test for getting band track from midi file.
dmime: Implement IDirectMusicTrack_Play for MIDI tracks.
dmime: Implement getting/setting TempoParam for MIDI tracks.
dmime: Parse MIDI files.
dmime: Add stubs for MIDI tracks
dmime/test: add MIDI loading test
https://gitlab.winehq.org/wine/wine/-/merge_requests/4982
This is the first part of !608, which I decided to separate to ease review.
It consists of improvements to SM1 testing, mainly:
- Correctly passing int and bool uniforms as IEEE 754 floats to SM1 profiles.
- The introduction of the "only" qualifier to avoid abusing `[require]` blocks in case tests retrieve different results for different shader models.
- Allowing some of the tests we already have for SM4/SM6 to run in SM1 after those improvements.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/616
It's possible that a state object pointer not in the topology node collection gets passed to
session_get_node_object(). Instead of returning the last node when the object is not found, we
should return a NULL so that the state of the last node is not changed by mistake.
--
v10: mf/tests: Test IMFMediaSession::Start().
mf: Support seeking while a session is started.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3572
There are still some issues I need to fix, mainly around timing conversion between MIDI and dmusic. Right now MIDI files seem to be cut off before the end is reached.
Please have a look at the general approach in the meantime, I need to know if this is the right way to do this or not.
--
v2: dmime: Synthesize a band track for MIDI segments.
dmband: Implement setting GUID_BandParam on band tracks.
dmime/test: Add test for getting band track from midi file.
dmime/test: add MIDI loading test
dmime: Implement getting tempo param for MIDI tracks.
dmime: Parse MIDI files.
dmime: Add stubs for MIDI tracks
https://gitlab.winehq.org/wine/wine/-/merge_requests/4982
Goes atop !583. The last two commits belong to this MR.
--
v4: vkd3d-shader/spirv: Emit a vector bitcast if necessary in spirv_compiler_emit_load_ssa_reg().
vkd3d-shader/dxil: Implement DX intrinsic TextureLoad.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/601
There are still some issues I need to fix, mainly around timing conversion between MIDI and dmusic. Right now MIDI files seem to be cut off before the end is reached.
Please have a look at the general approach in the meantime, I need to know if this is the right way to do this or not.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4982
--
v3: mfmediaengine: Avoid implicit casts in IMFAttributes_GetUINT32 calls.
mfmediaengine/tests: Use MF_MEDIA_ENGINE_CANPLAY type in IMFMediaEngine_CanPlayType call.
mfplat: Introduce media_type_get_uint32 helper.
mfplat/tests: Use MF_ATTRIBUTE_TYPE type in IMFMediaType_GetItemType call.
mfplat: Avoid implicit cast in IMFAttributes_GetUINT32 call.
mf: Avoid implicit enum to int pointer casts.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4906
Signed-off-by: Fan WenJie <fanwj(a)mail.ustc.edu.cn>
Hook mmap and munmap seem to be the only solution for drivers such as OpenGL to allocate over 32-bit address. For example, Fairy and Sword 4 has some render problems on master branch of wine. The patch can solve the problems.
--
v3: wineandroid.drv: fix incorrent path of device and init device in ANDROID_CreateDesktop
https://gitlab.winehq.org/wine/wine/-/merge_requests/3460
If there's more than one IME update posted during ImeProcessKey we were queuing them all, although the IME will later only call ImeToAsciiEx once with the processed vkey / scan and leave other updates queued.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4980
Mainly to implement `GetResourceAllocationInfo1()`, but we can introduce `Device7` without much risk of apps failing on unimplemented methods, and doing that separately would conflict with `GetResourceAllocationInfo1()`.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/617
With tests from !364, separated out from the HLSL changes there and updated. This MR can wait until 364 is upstream though.
It is apparently unnecessary to match the SM4/5 implementation, since the AMD Windows results differ. The RADV results are a bit wrong, but Proton uses the SPIR-V GLSL extension instructions too, and no workarounds have been implemented there.
--
v2: vkd3d-shader/spirv: Handle the ACOS, ASIN and ATAN instructions in spirv_compiler_emit_ext_glsl_instruction().
vkd3d-shader/dxil: Handle inverse trigonometric functions in sm6_parser_emit_dx_unary().
tests/shader-runner: Add tests for atan and atan2 trig intrinsics.
tests/shader-runner: Add tests for acos and asin trig intrinsics.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/602
This allows to declare SRV buffers in the shader tests using `[buffer srv n]` blocks, and passing them to the different backends.
Also, 1/2 includes a missing bit required to parse `Buffer<>` types in the HLSL compiler.
This is a step towards supporting StructuredBuffer types in further patches.
--
v4: tests/shader-runner: Change probe directive syntax on shader_test files.
tests/shader-runner: Change resource declaration syntax on shader_test files.
tests/shader_runner: Support SRV buffers.
tests/shader-runner: Separate resource_type into type and dimension.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/569
for details see https://bugs.winehq.org/show_bug.cgi?id=56065
This change adds an implementation of Win32 API function GetAnycastIpAddressTable() that is used by Adoptium OpenJDK 21 and later to initialize Secure Random Generator. This implementation does not return real information, it just says "no entries found".
--
v10: iphlpapi: Add stub for GetAnycastIpAddressTable().
https://gitlab.winehq.org/wine/wine/-/merge_requests/4940
Instead of creating the TTS voice engine directly in SetVoice, we save
the specified voice token, and only create them in speak_proc when
necessary.
--
v3: sapi: Create a new engine only when needed in ISpVoice.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4932
--
v2: vulkan-1/tests: Test VK_KHR_win32_surface WSI with swapchain functions.
vulkan-1/tests: Add more VK_KHR_win32_surface surface formats tests.
vulkan-1/tests: Test VK_KHR_win32_surface with windows in various states.
vulkan-1/tests: Create surface and device before calling test_null_hwnd.
vulkan-1/tests: Enable VK_VERSION_1_1 as requested by validation layers.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4978
--
v2: vkd3d-shader/spirv: Emit line numbers if debugging info is not stripped.
vkd3d-compiler: Add a command line option for instruction numbering.
vkd3d-shader/d3d-asm: Enable instruction numbering for trace output.
vkd3d-shader/d3d-asm: Add a formatting compile option for instruction numbering.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/612
Implements asin, acos, atan, and atan2.
Also includes some tests in a new test file.
One possible problem here is that I'm not sure how to test what Microsoft's atan and atan2 outputs are in boundary cases like atan2(1, 0). I've made the test suites adhere with the calculator program I've been using (Qalculate, which I assume is using libc's atan2).
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55154
--
v9: vkd3d-shader/hlsl: Implement atan and atan2.
vkd3d-shader/hlsl: Implement acos and asin trig intrinsics.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/364
I had a bugreport here: https://bugs.winehq.org/show_bug.cgi?id=56161
This pull req fixes the bug that programs that do VirtualAlloc(placeholder)/VirtualFree(keep placeholder)/MapViewOfFile3(replace placeholder), do not run. Like the dotnet pe loader in .net 7 for example.
It was not clear to me at first, because i didnt notice it on msdn, but the way that Dmitry Timoshkov "hacked" it in https://bugs.winehq.org/show_bug.cgi?id=56122 is actually (nearly) how it is supposed to happen according to msdn.
From here: https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-… 
So thanks to Dmitry Timoshkov. If you are interested you could also look into the thing i mentioned in the bug report, that MapViewOfFile3 doesn't round down to 64k, but, i don't think this is a serious problem yet.
Edit: I found out that under windows, the alignment constraint is not fully lifted but, it is only required to be pagesize aligned if MEM_REPLACE_PLACEHOLDER is present in the flags.
To clarify why i want this in wine. The PE Loader of .net (see here https://github.com/dotnet/runtime/blob/f21dc6c3dceb6ea76bef73e2a026c770aaed…) does align with page size. Not with 64k. This breaks a .net 7 app during load up, that will execute otherwise just execute fine.
--
v20: kernelbase: Added a test for MapViewOfFile3 with MEM_REPLACE_PLACEHOLDER
https://gitlab.winehq.org/wine/wine/-/merge_requests/4822
On Wed Jan 31 00:51:30 2024 +0000, Alexandre Julliard wrote:
> The tests fail on 64-bit:
> ```
> ../wine/tools/runtest -q -P wine -T . -M kernelbase.dll -p
> dlls/kernelbase/tests/x86_64-windows/kernelbase_test.exe process &&
> touch dlls/kernelbase/tests/x86_64-windows/process.ok
> process.c:156: Test failed: VirtualFree failed to split the placeholder 487
> process.c:160: Test failed: MapViewOfFile3 did not map the file mapping 87
> process.c:163: Test failed: UnmapViewOfFile failed 487
> process.c:185: Test failed: VirtualFree of remaining region failed
> make: *** [Makefile:91467:
> dlls/kernelbase/tests/x86_64-windows/process.ok] Error 4
> ```
Oh! To my shame i must admit i tested this with wine-staging patches applied. There is one patch in there that modifies how views are handled.
But anyways, i fixed the tests now, and i believe using VirtualFree in that way is more correct.
I was just curious before, if it would be possible to split a big placeholder allocation into two, with a hole in the middle. But when i think about it, i dont think that this is how it's supposed to work. You would rather have to start chewing off a big placeholder from the start to the end. Please test again now.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4822#note_59565