volt-gui has been released in version 2.4.0.
After the small update in version 2.3.1, this release brings a larger rework of the Vulkan layer: it now sticks more strictly to the Vulkan specification on edge cases. If a forced value would collide with something it’s tied to, volt keeps the game’s value and logs the reason. Existing profiles carry over, only alpha_to_coverage = "on" and unknown present or alpha modes are reset to default by the GUI.
Mostly fixing nits and making the layer more spec legal on the edge cases. If a forced value would break something it’s tied to, volt now keeps the game value and logs why.
- Alpha To Coverage only offers
offnow, forcing it on needs the shader help and volt never touches shaders.- Linear filtering is only forced onto samplers already using linear somewhere.
- Mip Floor / Mip Ceiling drop a bound that would cross the other one instead of swapping them.
- Weird samplers (unnormalized, subsampled, image processing, ycbcr) are left alone on the fields they can’t change, and samplers using cubic filtering don’t get anisotropy.
- LOD bias is left alone where the game enabled the portability subset.
- Only forced values get clamped now, the game own LOD bias and image count pass through untouched.
- Sample shading is never turned on where the game enabled mixed framebuffer samples.
- Present Mode only offers the core modes and only forces over one of them, a mode an extension defines is left alone. Chained mode lists now follow the forced one.
- Present mode isn’t forced where the game set swapchain flags or a scaling node, and image count is left alone on shared present modes.
- Composite alpha is now narrowed in the surface capabilities too, same as image count.
- Where a surface query fails, the setting it gates isn’t forced.
- volt now hooks
vkGetPipelineKeyKHRandvkCreatePipelineBinariesKHR, so pipeline keys and binaries see the same rebuilt create info as the pipeline itself.vkQueuePresentKHRnow rebuilds a chained present mode list to match the forced mode.- Device groups are narrowed to the chosen GPU instead of dropped or kept whole.
- Every hook is only handed out where the game enabled something that provides it.
- volt negotiates the loader interface version instead of assuming it, and no longer answers the instance enumeration calls itself.
- The frame limiter is now kept per swapchain per device, and presents with several swapchains wait on all of them.
- The probe checks every call it makes before making it. It exits 2 where the device needs support the loader lacks, and skips a backend instead of forcing it. Device facts are recorded at enumeration, so the device cards fill either way.
- NaN and infinity in a profile are ignored with a warning.
- The GUI validates new profile names the same way the layer does.
- Log lines now read
asked A, applied Bor say why a setting didn’t land, once per device for each distinct pair.Profiles carry over, except
alpha_to_coverage = "on"and present or alpha modes volt has no name for. The GUI resets those to default and tells you which.volt 2.4.0 should cover and work on all Vulkan drivers up to
1.4.363, since that’s the version i have been working on.

Source: GitHub