fix(vk): flush custom UI texture staging before GPU use #1559
No reviewers
Labels
No labels
accessibility
autorelease: pending
autorelease: tagged
bug
dependencies
documentation
duplicate
enhancement
github_actions
good first issue
help wanted
invalid
question
testing wanted
wontfix
No milestone
No assignees
1 participant
Due date
No due date set.
Dependencies
No dependencies set
Reference
MagicBeanDev/Hookshot!1559
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/ui-texture-upload-visibility"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The custom ImGui texture uploader writes mapped sequential-write staging memory without flushing it. That allocation does not require HOST_COHERENT, so a font or logo upload can leave the GPU reading stale bytes on a noncoherent memory type, including partial atlas updates.
Flush the packed staging allocation after the final pixel write and before GPU use, through the existing VMA helper. VMA handles noncoherent alignment and coherent-memory behavior. Allocation, image layouts, descriptor publication, retries and deferred retirement stay as they are. This is Hookshot's custom texture path; the bundled ImGui vertex/index uploader maintains its own caches.
Validation at
967b6d3on mainff69134:Native NVIDIA testing is a compatibility smoke, not reproduction on physically noncoherent hardware. HDR conversion, physical cache coherency and a campaign are not covered by this fixture. No demonstrated visual change is claimed on the coherent test GPU. See
docs/ui-texture-upload.md; no game files, generated game code, captures or binaries are included.Current-head validation
Current head
54af439, based on mainbe541fa. Earlier local/runtime results describe their recorded source hashes.The standalone contribution patch is unchanged after the audited main refresh; exact-head build/source checks are refreshed below. Earlier runtime evidence remains tied to its recorded hash.
Fork runs are separate from upstream Actions approval; no maintainer approval gate is bypassed.