.changelog/2624.md
thin_vulkan_set_command_buffers (submits VkCommandBuffers to the MoltenVK queue via vkQueueSubmit), thin_vulkan_set_signal_semaphore (stores signal semaphore for queue submit), thin_vulkan_wait_sync_index (drains queue via vkQueueWaitIdle), and thin_vulkan_set_image (exports MTLTexture from the rendered VkImage via vkGetMTLTextureMVK / vkExportMetalObjectsEXT and forwards it to the Metal presenter)PVRenderDelegateMetal protocol — New @objc protocol in PVCoreBridge allowing Vulkan cores to deliver per-frame MTLTexture objects directly to the Metal view controllerPVMetalViewController: PVRenderDelegateMetal — Implements didRenderFrameWithMTLTexture(_:) to blit the Vulkan-rendered MTLTexture into the standard input-texture pipeline and signal the front-buffer condition for displaySET_SYSTEM_AV_INFO and SET_GEOMETRY now trigger a deferred FBO teardown and rebuild when dimensions change while a HW render context is active; context_reset re-fires on the emulation thread so the core always gets a correctly-sized framebufferSET_HW_RENDER_CONTEXT_NEGOTIATION_INTERFACE now returns true (interface accepted) instead of false, unblocking cores like Beetle PSX HW that require the frontend to acknowledge the callback; GET_HW_RENDER_CONTEXT_NEGOTIATION_INTERFACE_SUPPORT returns true with interface_version = 0GET_PREFERRED_HW_RENDER — When HAVE_VULKAN is defined, the thin frontend now advertises Vulkan as the preferred context type; cores that support both GLES and Vulkan will choose the higher-quality path automatically