RAW development with Vulkan darktable

Getting Started

There are already precompiled binary packages of vkdt for most common distributions, and you can easily set them up using your Linux version's package manager. However, for Ubuntu 20.04, Linux Mint 20.x, and Arch Linux (plus its derivatives such as Manjaro), you still have to compile the program.

The following tutorial is therefore divided into several sections: First I will look into installing or compiling vkdt, before moving on to describe how to set up color management and introduce the main editing tools. Finally, I will look into configuring the graph and creating camera profiles for the noise reduction filter.

OBS Repository

The vkdt developer provides packages for many common distributions via the Open Build Service (OBS). But you first need to install the driver for your graphics card, including the Vulkan components. Open source drivers are usually installed automatically when you set up the operating system. However, you often have to install the proprietary driver retroactively for NVIDIA cards. In most cases, the Vulkan driver files come on the disc along with the driver, but sometimes you have to add individual packages.

Next you call the OBS repository page [13] for vkdt in the web browser and click on the icon for the operating system you are using. Two links will then appear lower down. Use the first, Grab repository and install manually, to add the repository to the system's software sources. This is the recommended approach so that you can update vkdt easily later on. Lower down on the page, you will now see instructions on how to add the repository to the package sources and install vkdt. Open a terminal window, copy the four command lines from the OBS repository page one after the other, paste them in the terminal, and press the Enter key each time to confirm that you want to run the commands.

Alternatively, you can download an installation package directly. To do this, click Grab binary packages directly and then click on the operating system version you are using. In the download dialog that opens, select Save file and click OK. The package usually ends up in the ~/Downloads/ folder. Open a terminal, change to this directory, and type ls -l to display its content. The name of the vkdt package always starts with vkdt_, but the rest changes depending on when it was created and on the package format.

Listing 1 shows the command for installing from the filesystem on a system with Debian package management. Apt checks all dependencies and adds them if necessary. However, the vkdt developer tries to keep the number of dependencies as low as possible. You may find out that Apt does not display many dependencies, or none at all, and instead just installs vkdt.

Listing 1

Installing the vkdt Package

$ sudo apt install ./vkdt_0~git1637146454.a12c186-0_amd64.deb

Compiling vkdt

Basically, compiling vkdt does not cause any major worries. The list of dependencies on GitHub is sort of complete but often does not give you the exact package name. And the name may not be easy to locate. This is why I compiled the program on Ubuntu 20.04 and on Manjaro and tried to put together more accurate and complete dependency lists (Listing 2 and Listing 3). For Ubuntu 20.04 and systems based on it, you need to install the Vulkan SDK from LunarG [14] first. The Vulkan version in the Ubuntu repository is outdated.

Listing 2

Ubuntu Dependencies

$ sudo apt install libvulkan-dev glslang-tools glslang-dev libglfw3 libglfw3-dev libimgui-dev libpugixml-dev libpugixml1v5 libstdc6++ libstdc++-10-dev libstdc++-9-dev libjpeg-turbo-progs libjpeg-turbo8 libjpeg-turbo8-dev libjpeg8 libjpeg8-dev zlib1g zlib1g-dev libjpeg-dev libomp-10-dev libomp5-10 libomp-dev make pkg-config clang libclang-dev rsync cmake libexiv2-dev libexiv2-27

Listing 3

Arch Linux and Manjaro Dependencies

$ sudo pacman -S vulkan-headers glslang glfw-x11 pugixml libstdc++5 zlib libjpeg-turbo openmp make pkgconf clang rsync cmake exiv2

After setting up the dependencies, download the vkdt source code from GitHub. You may need to install git first for this. Then open a terminal window and enter the commands from Listing 4. git will then create a directory vkdt/ and copy the source code of the program into it. Change to the folder and then load the submodules (Listing 4, lines 3 and 4).

Listing 4

Downloading the Source Code

01 $ git clone https://github.com/hanatos/vkdt.git --recursive
02 $ cd vdkt
03 $ git submodule init
04 $ git submodule update

Be sure to compile vkdt with Exiv2 support. The software will only recognize the orientation of the photos after you've done so (and be able to create camera profiles for the noise reduction filter). To do this, create a config.mk file in vkdt/bin/. Open config.mk.defaults, which is in the same directory, copy its contents, and paste it into config.mk. Now, find the lines # vkdt_USE_EXIV2=1 and # export vkdt_USE_EXIV2 in config.mk. Uncomment both by removing the hashtag at the start of the line, and then save config.mk.

Then change to the vkdt/bin/ directory and compile the program by calling make. Compiling will take a few minutes even on fast hardware. If all goes well, you will end up with several new files and subdirectories in /vkdt/bin/, including the vkdt program file. Last but not least, add the vkdt/bin/ path to the PATH variable in your .bashrc to be able to conveniently start the program from anywhere without specifying the path.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • Darktable 1.2

    Darktable shines as the most powerful free RAW converter, with impressive new features in the current version 1.2.

  • Perfect Balance

    The current RawTherapee version finally adds selective image editing, among other long-desired features, to help it compete with king of the hill, darktable.

  • ART – Another RawTherapee

    RAW converters are the first tool to use in editing photos, and new solutions and programs have the potential to make users' lives easier. How does ART stack up?

  • Darktable 1.6

    Hardly anything affects the quality of photos more than play of light and shadow, or the brilliance of colors. Darktable fixes incorrect exposure, conceals unfavorable lighting conditions, and ensures harmonious colors.

  • Tutorial – Krita

    Not many people are aware that Krita, the popular open source painting program, is also great for editing photos.

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More