Repository navigation
afmf-linux v0.3.0
First public release.
Added
- Presentation thread per swapchain: the application's thread returns right after the layer's
submit; both presents, the spare refill and the pacing hold run on the thread. - Half-frame pacing (
AFMF_PACING, on by default): the real frame is held back half the
smoothed frame time so the generated frame lands evenly in between, the same half-frame of added
latency AMD's implementation has. - Shared compute queue: when the application took every compute queue (vkd3d-proton asks for all
of RADV's), the layer works on the application's last one and serialises the application's own
submits on it. - Spare image acquired a frame ahead with a fence, never waited for in the present hook
(AFMF_ACQUIRE_TIMEOUT_USdefaults to 0). - Host-side profile (
AFMF_PROFILE=1): real fps, microseconds spent in the hook and on the
thread, pacing hold; surfaces log their window system (Wayland, X11, headless). vkAcquireNextImage(2)KHRandvkDeviceWaitIdlehooks, serialised with the thread.- Present chains carried to the thread:
VkPresentIdKHR,VkSwapchainPresentModeInfoEXT,
VkSwapchainPresentFenceInfoEXT,VkPresentTimingsInfoEXT; anything else presents inline. AFMF_SEARCH_MODE=autopicks 5 pyramid levels at half flow resolution, 7 at full.- Headless test variants: shared queue (
AFMF_TEST_ALL_QUEUES), paced presents
(AFMF_TEST_FRAME_MS,AFMF_TEST_FRAMES).
Changed
- Barriers between compute passes no longer name the transfer stage; the pyramid and the scene
change histogram run without a barrier between them (493 -> 434 us per frame at 3440x1440).