Map paired PS5 depth-clip state through Vulkan pipeline creation and preserve asymmetric hard failures. Prepare GPU-mapped guest ranges before kernel file reads so buffer, texture, and alias ownership remains coherent. Add focused regression coverage and update the current launch target.
# What changed
- Drop the unused VK_FORMAT_D24_UNORM_S8_UINT device check that
rejected some AMD GPUs.
- Only treat VALIDATION-type Vulkan messages as fatal, not
GENERAL-type ones.
- Restrict compute queues to the graphics queue's family.
- Force per-invocation lane mask emulation for 64-wide waves, since
RDNA's lane layout differs from GCN despite matching wave size.
# Why
On AMD Radeon GPUs the emulator failed to find a suitable device,
crashed during queue setup, or rendered corrupted output, while
NVIDIA was unaffected.
Each change removes an assumption in device selection, debug
message handling, queue selection, or shader lane-mask emulation
that happened to hold for NVIDIA but not for AMD.
# Validation
- Built on Windows with clang-cl. Note: the latest Vulkan SDK
(1.4.350) fails to build against the pinned Vulkan-Headers
submodule; used 1.4.328.1 instead, which matches it.
- Tested on a Radeon RX 9070 XT + Ryzen 7 9800X3D.
- Alex Kidd in Miracle World DX and Dreaming Sarah now boot and
render correctly (previously failed to start or rendered
corrupted).
- Not yet verified for regressions on NVIDIA hardware; testing from
someone with an NVIDIA GPU would help confirm no regression there.
# AI assistance disclosure
AI assistance was used to diagnose the root cause of each issue and
prepare the initial patch. The contributor reviewed the complete
diff and tested it on the affected AMD hardware before opening this
pull request.