Commit Graph

56 Commits

Author SHA1 Message Date
nmzik 999f87576e graphics: add native PS5 MSAA and safe image allocation reuse 2026-07-21 07:37:52 +02:00
nmzik cbc11d2eaf Refactor graphics #1 2026-07-19 00:54:31 +02:00
nmzik 7905f2d12f graphics: migrate Vulkan backend to Vulkan-Hpp 2026-07-18 12:33:21 +02:00
kirathenotebook e05cd30268 Fix AMD RDNA startup crash and rendering corruption
# 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.
2026-07-18 10:46:16 +03:00
nmzik 75d20486ba Vulkan driver query caching 2026-07-17 18:09:20 +02:00
nmzik 147188b143 Initial commit 2026-07-16 10:21:41 +02:00