CaptureFlip created a 1920x1080 RGBA16F VkImage with its own VkDeviceMemory for every flip and destroyed both when the flip retired: around twenty vkCreateImage plus vkAllocateMemory pairs a second for the same extent, and on MoltenVK as many Metal texture allocations. Retired snapshots are now kept in a small per-format, per-extent pool and handed back instead. A snapshot is fully overwritten by the copy that follows it and its barrier takes it from Undefined, so neither its previous contents nor its layout matter. The pool holds at most eight images, is guarded because the command-stream thread takes snapshots while the render thread retires them, and is drained at teardown. SHARPEMU_FLIP_SNAPSHOT_POOL=0 turns it off. |
||
|---|---|---|
| .. | ||
| SharpEmu.CLI | ||
| SharpEmu.Core | ||
| SharpEmu.DebugClient | ||
| SharpEmu.Debugger | ||
| SharpEmu.GUI | ||
| SharpEmu.HLE | ||
| SharpEmu.LibAtrac9 | ||
| SharpEmu.Libs | ||
| SharpEmu.Logging | ||
| SharpEmu.ShaderCompiler | ||
| SharpEmu.ShaderCompiler.Metal | ||
| SharpEmu.ShaderCompiler.Vulkan | ||
| SharpEmu.SourceGenerators | ||