Repository navigation
Games freeze on loading: reads from the shared folder fail with error 999 #91
Description
Description
I run games from the VMPal shared folder (Z:, VirtIO-FS). Genshin Impact 7.1 freezes on the loading screen after I click to enter the world, and once it crashed with 0xC0000005. Zenless Zone Zero 3.3 freezes earlier, while it is still loading at startup.
Both games write read errors to their logs, and the errors point at files on the shared folder.
Genshin Impact:
[2026-10-26 18:16:05.626] [FileReadCache] ReadFile failed with error: 999 fileId=-2147483637 file='...\Persistent\AssetBundles\blocks\00\25539185.blk' offset=22108764 size=63570
[2026-10-26 18:21:53.824] Shader LoadGpuProgramFromData failed! miHoYo/Avatar/Character_SRP_Frozen_General 248
Zenless Zone Zero:
Unable to read header from archive file: ...\StreamingAssets\Blocks\607492886.blk
Failed to read data for the AssetBundle '607492886.blk'.
To check whether the files or the share are the problem, I ran a small stress test inside the VM:
- 8 threads
- each thread opens one of six .blk files from the game folder
- each read is a random 4–64 KB block at a 4 KB-aligned offset
- about 70,000 reads in 10 seconds
Result: 325–345 reads fail with Win32 error 999, "Error performing inpage operation" (HRESULT 0x800703E7). The failures return immediately; they are not timeouts. The same test on C: with the same files: 0 failures in 660,040 reads.
| Test on Z: | Reads | Failures |
|---|---|---|
| 1 thread | 19,740 | 0 |
| 2 threads | 33,020 | 2 (0.01%) |
| 4 threads | 55,654 | 19 (0.03%) |
| 8 threads | ~70,000 | 325–345 (0.47–0.50%) |
| 16 threads | 61,922 | 311 (0.50%) |
| 8 threads, one single file | 45,440 | 0 |
| 8 threads on C: (same files) | 660,040 | 0 |
So it is not just "many reads at once", it is "many files open at once": 8 threads on one file never failed, 8 threads on six files failed about 0.5% of the time.
The files are fine: the same .blk reads correctly when I open it alone, and the ZZZ file has a valid mhy1 header. The GPU is fine too: the D3D11 device is created (feature level 11.1), and there are no TDR/4101 events or LiveKernelReports.
Steps to Reproduce
- Windows 11 ARM VM with a macOS shared folder mounted as Z:.
- Install Genshin Impact 7.1 (or Zenless Zone Zero 3.3) on Z:.
- Start the game, log in, and enter the world.
- Genshin freezes on the loading screen; ZZZ freezes during startup loading.
Faster repro without games:
- Put six large files (for example 50–200 MB each) on Z:.
- Run 8 threads; each thread opens one file and reads a random 64 KB block in a loop.
- About 0.5% of the reads fail with error 999. On C: the same test has 0 failures.
Current Behavior
Games hang on loading and sometimes crash. The logs show read failures on Z: (error 999) and, for ZZZ, a failed AssetBundle header read. The read test shows the share returns error 999 for a small part of concurrent reads, and the error rate grows with the number of files open at the same time (0% at 1 thread, about 0.5% at 8+ threads).
Expected Behavior
Files on the shared folder should read reliably, like on a local disk. The games should load and run normally. Copying them to C: works around it, but the shared folder should be usable for games.
Environment
- App version: VMPal 0.100 (100)
- Mac: MacBook Pro 16-inch (Nov 2024), Apple M4 Max, 128 GB
- macOS version: 27.0.1 (26A434)
- VM's OS: Windows 11 Pro, build 28000 (ARM64)
Log
Genshin Impact crashed with YuanShen.exe caused an Access Violation (0xc0000005) at 2026-10-26 18:21:59, right after the read errors. The ZZZ log excerpts are above.
The paths in the game logs go through a junction on C: (C:\Users\...\VMPalGames\...) that points to Z:\Games. I tested both the junction path and the direct Z: path, and the error rate is the same (~0.5%), so the junction is not involved.
Guest software: VirtIO-FS driver 100.104.104.30400, WinFsp SxS driver 20261026T074934Z, virtiofs.exe from VMPal Tools. The VM itself did not crash or stop, so there is no VM log. I can attach the full game logs and the test script if you want them.
My native language is Chinese and my English is not good, so this report was written with the help of DeepSeek V4.1 Flash.
Activity
HongyuS commentedon Oct 26, 2026
I asked AI to reproduce this issue, and capture some logs.
Here are some files collected (logs from the game, together with a simple powershell script to reproduce the bug)
Hope these help.
VMPal-issue2-logs.zip
sonswift commentedon Oct 26, 2026
Thanks for the report! We'll look into it and get back to you soon.
huyphams commentedon Oct 26, 2026
We've fixed the issue @HongyuS please try the new build 102 and see how it goes, please let me know if you're still seeing the issue.
HongyuS commentedon Oct 27, 2026
@huyphams It's fixed, no more failures return immediately. But the game still stuck on the loading screen, because the long waiting would cause timeout issue when the game tries to handshake with its online server. The poor concurrent reading performance of VirtIO-FS is still a problem.
huyphams commentedon Oct 27, 2026
@HongyuS Thanks for testing! We just released build 104, which makes reading from the shared folder much faster. Please try again and see how it goes, and let me know if you're still seeing the issue.
HongyuS commentedon Oct 27, 2026
@huyphams new observations:
Sequencial reading can reach up to 1GB/s on the shared folder via VirtIO-FS, which is fast enough for most use cases. However, opening files on the share is still ~300x slower than on the local disk (e.g. C: inside the VM), and that is probably what makes games stall while loading.
Same 2000 files, same relative paths on Z: and C:, 3 runs per configuration:
Two things:
Holding 1024 files open at the same time: 6.3 s on Z: vs 28 ms on C:. Closing them: 40 ms vs 8 ms.
Impact: Genshin Impact opens several thousand bundles when entering the world. From Z: the client sits at about 0.2 fps, never reaches the scene load (OnBeginLoadScene) and is dropped by the server every ~2.5 min. The same install on C: loads the scene in 17 seconds.
Here are some very basic tests, hope can be helpful.
fileops-bench.zip
huyphams commentedon Oct 28, 2026
@HongyuS Thanks for the detailed report! We just released build 107, which makes opening files on the shared folder much faster. Please try again and see how it goes, and let me know if you’re still seeing the issue.
HongyuS commentedon Oct 28, 2026
@huyphams Great works! 10x speed!
I can finally reach the game's loading screen. (To pass the loading screen and actually get into the game, there will be a separate issue coming soooooon.)
huyphams commentedon Oct 28, 2026
Thank you, @HongyuS. I know we can play the game now, but its performance is still somewhat below the accepted level. I’m improving it so we can enjoy Windows games on macOS.