Skip to content

KowabungaOfficial/vkPost

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vkPost

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

Disclaimer

This project was originally created by DadSchoorse.

vkPost is a continuation of where vkBasalt left off.


How To Install

Arch/Arch Based Distros (Temporary Until I Can Figure Out AUR):

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

Other Linux Distros Coming Soon (Need others who can publish to different distros):


How To Enable

Standard

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

Steam

With Steam, edit your launch options and add:

ENABLE_VKPOST=1 %command% 

Lutris

With Lutris, follow these steps below:

  1. Right click on a game, and press configure.
  2. Go to the System options tab and scroll down to Environment variables.
  3. Press on Add, and add ENABLE_VKPOST under Key, and add 1 under Value.

Heroic Games Launcher

With Heroic Games Launcher, follow these steps below:

For All Games:

  1. Go to Settings tab, then click Game Defaults
  2. Go to ADVANCED tab and scroll down to Environment Variables
  3. Add ENABLE_VKPOST to Variable Name and 1 to Value

Per Game Basis

  1. Right click on a game, then click on Settings
  2. Go to ADVANCED tab and scroll down to Environment Variables
  3. Add ENABLE_VKPOST to Variable Name and 1 to Value

Configuration Environment Variable

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'


Configure

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 variableVKPOST_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 if XDG_CONFIG_HOME is not set
  • $XDG_DATA_HOME/vkPost/vkPost.conf or ~/.local/share/vkPost/vkPost.conf if XDG_DATA_HOME is not set
  • /etc/vkPost.conf
  • /etc/vkPost/vkPost.conf
  • /usr/share/vkPost/vkPost.conf

Reshade Fx Shaders

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

In-Game Input

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.


Building From Source And Debugging

Dependencies

Before building, you will need:

  • GCC >= 9
  • X11 development files
  • glslang
  • SPIR-V Headers
  • Vulkan Headers

Building

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

Docker

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.

64bit

meson setup --buildtype=release --prefix=/usr builddir
ninja -C builddir install

32bit

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

Debug Output

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".


FAQ

Where can I see what's being worked on?

Here you go my friend: To Do List

Why is it called vkPost?

Based on vkBasalt, but takes the word Basalt out for Post, which hints at Post-Processing.

Does vkPost work with dxvk and vkd3d?

Yes.

Will there be a openGl version?

I will look into it. In the meantime if anyone wants to add it I will happily include it.

Will you support the Steam Deck

Yes, I am working on a way to get it to work on steam deck. Check for updates in releases.

Will you add Wayland support?

If anyone would like to add it, they are free to contribute.

Will there be a GUI in the future?

Not for this project, but if anyone wants to make one they are free to.

Can you make reshade shaders work?

If someone wants to add it they are free to.