vkPost is a Vulkan post processing layer to enhance the visuals of games.
Currently, the built in effects are:
- Contrast Adaptive Sharpening
- Denoised Luma Sharpening
- Fast Approximate Anti-Aliasing
- Enhanced Subpixel Morphological Anti-Aliasing
- 3D Color LookUp Table
This project was originally created by DadSchoorse.
vkPost is a continuation of where vkBasalt left off.
Recommended To Install Both 64bit and 32bit Versions
Important
Download vkPost.conf and place it in any of these locations
64bit Version:
wget https://github.com/KowabungaOfficial/vkPost/releases/download/v0.4.6/vkpost-0.4.6-2-x86_64.pkg.tar.zst
sudo pacman -U vkpost-0.4.6-2-x86_64.pkg.tar.zst
32bit Version:
wget https://github.com/KowabungaOfficial/vkPost/releases/download/v0.4.6/lib32-vkpost-0.4.6-2-x86_64.pkg.tar.zst
sudo pacman -U lib32-vkpost-0.4.6-2-x86_64.pkg.tar.zst
When using the terminal or an application (.desktop) file, execute:
ENABLE_VKPOST=1 yourgame
If you've enabled vkPost globally, you can disable it for a specific application using:
DISABLE_VKPOST=1 yourgame
With Steam, edit your launch options and add:
ENABLE_VKPOST=1 %command%
With Lutris, follow these steps below:
- Right click on a game, and press
configure
. - Go to the
System options
tab and scroll down toEnvironment variables
. - Press on
Add
, and addENABLE_VKPOST
underKey
, and add1
underValue
.
With Heroic Games Launcher, follow these steps below:
For All Games:
- Go to
Settings
tab, then clickGame Defaults
- Go to
ADVANCED
tab and scroll down toEnvironment Variables
- Add
ENABLE_VKPOST
toVariable Name
and1
toValue
Per Game Basis
- Right click on a game, then click on
Settings
- Go to
ADVANCED
tab and scroll down toEnvironment Variables
- Add
ENABLE_VKPOST
toVariable Name
and1
toValue
To override some default config options use VKPOST_CONFIG
,
Here is an example, along with how to seperate effects by adding ;
VKPOST_CONFIG='effects=smaa:cas;casSharpness=1.0'
Settings like the CAS sharpening strength can be changed in the config file. The config file will be searched for in the following locations:
- a file set with the environment variable
VKPOST_CONFIG_FILE=/path/to/vkPost.conf
vkPost.conf
in the working directory of the game (Useful For Per Game Configs)$XDG_CONFIG_HOME/vkPost/vkPost.conf
or~/.config/vkPost/vkPost.conf
ifXDG_CONFIG_HOME
is not set$XDG_DATA_HOME/vkPost/vkPost.conf
or~/.local/share/vkPost/vkPost.conf
ifXDG_DATA_HOME
is not set/etc/vkPost.conf
/etc/vkPost/vkPost.conf
/usr/share/vkPost/vkPost.conf
To run reshade fx shaders e.g. shaders from the reshade repo, you have to set reshadeTexturePath
and reshadeIncludePath
to the matching dirctories from the repo. To then use a specific shader you need to set a custom effect name to the shader path and then add that effect name to effects
like every other effect.
effects = colorfulness:denoise
colorfulness = /home/user/reshade-shaders/Shaders/Colourfulness.fx
denoise = /home/user/reshade-shaders/Shaders/Denoise.fx
reshadeTexturePath = /home/user/reshade-shaders/Textures
reshadeIncludePath = /home/user/reshade-shaders/Shaders
The HOME key can be used to toggle effects on/off, the key can also be changed in the config file. This is based on X11 so it won't work on pure wayland, yet.
Before building, you will need:
- GCC >= 9
- X11 development files
- glslang
- SPIR-V Headers
- Vulkan Headers
These instructions use --prefix=/usr
, which is generally not recommened since vkPost will be installed in directories that are meant for the package manager. The alternative is not setting the prefix, it will then be installed in /usr/local
. But you need to make sure that ld
finds the library since /usr/local is very likely not in the default path.
In general, prefer using distro provided packages.
git clone https://github.com/KowabungaOfficial/vkPost.git
cd vkPost
If you have Docker installed on your system, you can kick off the Docker build using: ./docker-build
. This will run both the 32 and 64-bit builds, and copy the results to the out
directory.
If you don't have Docker installed or prefer not to use it, see the following sections.
meson setup --buildtype=release --prefix=/usr builddir
ninja -C builddir install
Make sure that PKG_CONFIG_PATH=/usr/lib32/pkgconfig
and --libdir=lib32
are correct for your distro and change them if needed. On Debian based distros you need to replace lib32
with lib/i386-linux-gnu
, for example.
ASFLAGS=--32 CFLAGS=-m32 CXXFLAGS=-m32 PKG_CONFIG_PATH=/usr/lib32/pkgconfig meson setup --prefix=/usr --buildtype=release --libdir=lib32 -Dwith_json=false builddir.32
ninja -C builddir.32 install
The amount of debug output can be set with the VKPOST_LOG_LEVEL
environment variable, e.g. VKPOST_LOG_LEVEL=debug
.
Possible values are: trace, debug, info, warn, error, none
.
By default the logger outputs to stderr, a file as output location can be set with the VKPOST_LOG_FILE
env var, e.g. VKPOST_LOG_FILE="vkPost.log"
.
Here you go my friend: To Do List
Based on vkBasalt, but takes the word Basalt out for Post, which hints at Post-Processing.
Yes.
I will look into it. In the meantime if anyone wants to add it I will happily include it.
Yes, I am working on a way to get it to work on steam deck. Check for updates in releases.
If anyone would like to add it, they are free to contribute.
Not for this project, but if anyone wants to make one they are free to.
If someone wants to add it they are free to.