Featured image of post volt-gui: Vulkan tuning tool released in version 2.4.0

volt-gui: Vulkan tuning tool released in version 2.4.0

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 off now, 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 vkGetPipelineKeyKHR and vkCreatePipelineBinariesKHR, so pipeline keys and binaries see the same rebuilt create info as the pipeline itself.
  • vkQueuePresentKHR now 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 B or 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.

volt-gui

Source: GitHub

PlayingTux – Playing Games on Linux - since 1995.