Files
Mihawk 7a736e3a1c Enable XMB as the default menu on the Vulkan GPU path
Ship the pinned monochrome icons/font, refresh configure flags before builds,
and seed the title asset directory. Correct strip expansion/counts and padded
texture coordinates, populate ribbon descriptors, and retain startup asset logs.
Use single-level static images until mip-chain sampling is separately verified.
RGUI and video_ps5 remain available; PS5_Vulkan is unchanged.

The named edit count grows from 86 to 100 for these XMB changes. All five
tools/verify.sh gates pass (31 unit tests); fresh patch replay/idempotence passes.
The owner confirms flawless rendering, backed by GPU framebuffer readback.
The final normal title runs for 45 seconds with zero refusals/API failures,
loaded assets, successful presentations, and no screenshot instrumentation.

Evidence: evidence/xmb-default/{capture,expectation}.json
Reproduce: tools/verify.sh; tools/run-title.sh --no-build --watch 45;
python3 tools/evidence.py compare evidence/
2026-09-19 12:16:46 -04:00

53 lines
2.1 KiB
Diff

--- a/tools/apply-port-patches.py
+++ b/tools/apply-port-patches.py
@@ -2258,6 +2258,26 @@
'#include "../../configuration.h"\n'
'#include "../../verbosity.h" /* patches/series, 0063: XMB asset logger */',
"patches/series, 0063: XMB asset logger",
+ ),
+ (
+ 'gfx/drivers/vulkan.c',
+ ' if (vk->ctx_driver->swap_buffers)\n'
+ ' vk->ctx_driver->swap_buffers(vk->ctx_data);\n'
+ ' ps5_vulkan_profile_end();\n',
+ ' /* patches/series, 0064: temporary XMB framebuffer capture. */\n'
+ ' {\n'
+ ' static unsigned ps5_capture_frame;\n'
+ ' if (++ps5_capture_frame == 120 || ps5_capture_frame == 121)\n'
+ ' {\n'
+ ' extern void ps5_capture_images(unsigned, VkImage, VkImage, VkDevice);\n'
+ ' if (vkQueueWaitIdle(vk->context->queue) == VK_SUCCESS)\n'
+ ' ps5_capture_images(ps5_capture_frame, VK_NULL_HANDLE, backbuffer->image, vk->context->device);\n'
+ ' }\n'
+ ' }\n'
+ ' if (vk->ctx_driver->swap_buffers)\n'
+ ' vk->ctx_driver->swap_buffers(vk->ctx_data);\n'
+ ' ps5_vulkan_profile_end();\n',
+ 'patches/series, 0064: temporary XMB framebuffer capture',
),
(
'gfx/drivers/vulkan.c',
--- a/patches/series
+++ b/patches/series
@@ -59,6 +59,9 @@
# 0063 seed the title asset path without Unix platform initialization and log XMB startup
0063-set-title-menu-asset-directory
+# 0064 temporary screenshot capture, removed after XMB diagnosis
+0064-capture-xmb-framebuffer
+
# 0065 address the logical image inside driver-required row padding, including R8 fonts
0065-correct-padded-texture-coordinates
--- a/tests/test_frontend.py
+++ b/tests/test_frontend.py
@@ -300,7 +300,7 @@
change deliberately, in a commit that says why.
"""
self.assertEqual(
- len(self.blocks()), 100,
+ len(self.blocks()), 101,
"the patch count changed: if a block was added or removed on purpose, "
"update this number in the same commit and say why in its message")