vkdt devel diary

today’s news:

i recently merged the video branch. it adds support for various real time video grading applications. i discovered that my old 5d mark II can in fact record 10, 12, and 14-bit raw video through magic lantern, so i integrated support for this. new key features:

input:

  • real time webcam input (v4l2) (maybe i should also add a v4l2-loopback output device, so i could grade my webcam video for lockdown video calls.)
  • load magic lantern raw video files (.mlv) with audio

processing/gui:

  • press space bar to start/stop video in darkroom mode, parameter changes apply immediately
  • use real time clock to time the av (i’m using 1:2.35 24fps obviously). this mostly means waiting after processing finished until it’s time to start with the next frame.
  • play audio that comes with mlv video (alsa, need to make this optional)
  • implemented raster/drawn masks with varying radius, opacity, and hardness (need to provide screenshots/streamline it a bit)
  • improved support for graph blocks, i.e. sub-graphs that can be added at once, as a sort of template (the drawn masking + guided filter consists of a few modules and is best added this way for instance)

output:

some screenshots as proof:

lighttable mode with a bunch of mlv raw videos. you can sort, filter, label, and tag them just like regular raw files:

darkroom mode showing the node graph and the i-mlv module. all modules work as for regular raw files but are applied per frame. in particular i hope to be reusing the noise profiles for this camera. i am doing this and it works, but because of the pixel binning i should actually do a correction step i think.

darkroom mode showing the frame counter and a random different frame from the video (will work on a better timeline ui soon):

hope this is useful for some video geeks :slight_smile: if anyone has higher res/more heavy weight .mlv raw video samples to battle test my pipeline i’d be very interested in trying your files/hearing your experiences in case you try yourself.

some features don’t work yet with videos (like copy/paste the processing graph), but maybe once this is ironed out a bit i’m thinking i might do a first release.

8 Likes

Could be useful.

I trust the ML forum would have quality samples. It can be hard to navigate their forum though. Their transition from Bitbucket to magic-lantern / magic-lantern · GitLab was rough. I won’t get into the details but they had to scramble to back up everything they could. Still, there could be some useful files on heptapod as well.

As for me, my camera doesn’t support video, so unfortunately, I can be of no assistance.

Fun fun … macosx also gets vulkan now.

…you mean other than via moltenvk? care to share some details? i thought the macintoshs would not do graphics any more.

okay that pretty much is moltenvk. what a f*cksh*tstack. sounds integrated enough to actually work in practice though. so i guess i’m officially supporting macintoshs via this and wind0ws via WSL or whatever it’s called :slight_smile:

windows can do vulkan natively.

possible. i can’t do windows natively :slight_smile:

6 Likes

Wait, what?! On-the-fly RAW video processing. Consider my mind boggled :smiley:

1 Like

haha thanks… but this was easier than you might think. the amount of data my digic IV on the 5d2 can put aside in real time (60MB/s) i can very easily push through my pcie bus (more like 16GB/s). since the resolutions are relatively small (2k) that means the rest of the processing is essentially for free.

hence my question… if anyone has a bit of 4k 60Hz 16-bit raw video for me i’d be curious to try. it seems my simplistic setup would profit from some prefetching/double buffering/asynchronous memory transfers. so far: not needed.

2 Likes

Hi, I’m trying to compile vkdt but I get a few errors during compilation but it doesn’t stop. However, when I run vkdt it crashes on launch. It does briefly try to open a window like for 1/10 of a second.

OS: Ubuntu 20.04.1 LTS x86_64
Kernel: 5.4.0-62-generic
CPU: AMD Ryzen Threadripper 1900X (16) @ 3.800GHz
GPU: AMD ATI Radeon RX Vega 64 Liquid
Driver: AMDGPU-PRO 20.45
Resolution: 1920x1200, 2560x1440
DE: GNOME
WM: Mutter
DS: xorg

I get these errors during the compilation:

make[2]: Entering directory '/home/aresminos/Software/source/vkdt/src'
ls: cannot access 'pipe/modules/*/*.tesc': No such file or directory
ls: cannot access 'pipe/modules/*/*.tese': No such file or directory
glslangValidator: Error: --target-env expected one of: vulkan1.0, vulkan1.1, opengl,
spirv1.0, spirv1.1, spirv1.2, spirv1.3, spirv1.4, or spirv1.5 (use -h for usage)
make[2]: *** [Makefile:139: pipe/modules/ab/main.comp.spv] Error 1
make[2]: Leaving directory '/home/aresminos/Software/source/vkdt/src'
make[1]: *** [Makefile:30: src] Error 2
make[1]: Leaving directory '/home/aresminos/Software/source/vkdt'
make: *** [Makefile:6: all] Error 2

Here’s the full log: compilation_log.txt (101.2 KB)

I also get some output when running vkdt:

~/Software/source/vkdt/src$ ./vkdt
[pipe] [global init] cannot open modules directory!
[gui] monitor [0] HDMI-A-0 at 0 0
[gui] monitor [1] DisplayPort-1 at 2560 0
[gui] vk extension required by GLFW:
[gui]   VK_KHR_surface
[gui]   VK_KHR_xcb_surface
[gui] no display profile file display.HDMI-A-0, using sRGB!
[gui] no display profile file display.DisplayPort-1, using sRGB!
vkdt: ../ext/imgui/imgui_draw.cpp:1909: ImFont *ImFontAtlas::AddFontFromFileTTF(const char *, float, const ImFontConfig *, const ImWchar *): Assertion `(0) && "Could not load font file!"' failed.
Aborted (core dumped)
~/Software/source/vkdt/src$ ./vkdt -d all ~/Pictures/vkdt
[pipe] [global init] cannot open modules directory!
[gui] monitor [0] HDMI-A-0 at 0 0
[gui] monitor [1] DisplayPort-1 at 2560 0
[gui] vk extension required by GLFW:
[gui]   VK_KHR_surface
[gui]   VK_KHR_xcb_surface
[qvk] dev 0: vendorid 0x1002
[qvk] dev 0: AMD RADV VEGA10 (ACO)
[qvk] max number of allocations -1
[qvk] max image allocation size 16384 x 16384
[qvk] max uniform buffer range 4294967295
[qvk] dev 1: vendorid 0x1002
[qvk] dev 1: Radeon RX Vega
[qvk] max number of allocations -1
[qvk] max image allocation size 16384 x 16384
[qvk] max uniform buffer range 4294967295
[qvk] picked device 0
[qvk] num queue families: 2
[qvk] num surface formats: 2
[qvk] available surface formats:
[qvk] B8G8R8A8_SRGB
[qvk] B8G8R8A8_UNORM
[qvk] colour space: 0
[gui] no display profile file display.HDMI-A-0, using sRGB!
[gui] no display profile file display.DisplayPort-1, using sRGB!
vkdt: ../ext/imgui/imgui_draw.cpp:1909: ImFont *ImFontAtlas::AddFontFromFileTTF(const char *, float, const ImFontConfig *, const ImWchar *): Assertion `(0) && "Could not load font file!"' failed.
Aborted (core dumped)

ah awesome, thanks for testing. glad to see another AMD user, i can’t test these things here.

so:

  1. please make and run in bin/ not in src/
  2. your glslangValidator seems to be too old, it doesn’t speak vk 1.2, only 1.1. if you can upgrade that would be best… otherwise i can instruct you how to revert to 1.1 (edit src/Makefile and qvk.c, but it’ll lose ycbcr texture support for webcams)

There’s nothing to run in bin/

$ ls
config.mk          default-darkroom.i-mlv  examples          thumb.cfg
config.mk.example  default-darkroom.i-raw  Makefile
darkroom.ui        default.i-mlv           noise-profile.sh
data               default.i-raw           read-icc.py

I’m trying to install the latest VulkanSDK to get the new glslang but it seems their repo key is depricated:

$ sudo apt update
.
.
Get:11 https://packages.lunarg.com/vulkan/1.2.162 focal InRelease
Err:11 https://packages.lunarg.com/vulkan/1.2.162 focal InRelease
  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY AA8452080E383F7E
Reading package lists... Done
W: GPG error: https://packages.lunarg.com/vulkan/1.2.162 focal InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY AA8452080E383F7E
E: The repository 'https://packages.lunarg.com/vulkan/1.2.162 focal InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

I guess I’ll have to revert to 1.1 then.

that’s what i said. now can you please cd bin/ && make :slight_smile: ? maybe even make clean before that after you made a mess by calling make from another directory. it might have picked up the wrong/inconsistent build flags.

I did that the first time, it’s in the log. I ran make all from ~/Software/source/vkdt/bin$

Yes, here’s the second attempt:

~/Software/source/vkdt/bin$ make clean
make -C .. clean
make[1]: Entering directory '/home/aresminos/Software/source/vkdt'
Makefile:33: [clean ()]
make -C ext/ clean
Makefile:10: [clean ()]
make[2]: Entering directory '/home/aresminos/Software/source/vkdt/ext'
make[2]: Nothing to be done for 'clean'.
make[2]: Leaving directory '/home/aresminos/Software/source/vkdt/ext'
Makefile:34: [clean ()]
make -C src/ clean
make[2]: Entering directory '/home/aresminos/Software/source/vkdt/src'
ls: cannot access 'pipe/modules/*/*.tesc': No such file or directory
ls: cannot access 'pipe/modules/*/*.tese': No such file or directory
rm -f vkdt vkdt-cli 
rm -f gui/gui.o gui/render.o gui/darkroom.o gui/main.o gui/view.o ../ext/imgui/imgui.o ../ext/imgui/imgui_draw.o ../ext/imgui/imgui_widgets.o ../ext/imgui/examples/imgui_impl_vulkan.o ../ext/imgui/examples/imgui_impl_glfw.o core/log.o core/threads.o pipe/alloc.o pipe/connector.o pipe/global.o pipe/graph.o pipe/graph-io.o pipe/graph-export.o pipe/module.o snd/none.o cli/main.o qvk/qvk.o qvk/qvk_util.o db/db.o db/rc.o db/thumbnails.o
# we delete *all* modules, not just the one in MOD_DSOS* because they may be from another branch.
# such stale libraries can still cause segfaults because they would be loaded.
# at some point we probably need to harden the api such that this still works. maybe.
rm -f pipe/modules/*/lib*.so
rm -f pipe/modules/*/*.spv
make[2]: Leaving directory '/home/aresminos/Software/source/vkdt/src'
make[1]: Leaving directory '/home/aresminos/Software/source/vkdt'
rm -f vkdt vkdt-cli

~/Software/source/vkdt/bin$ make
make -C ..
make[1]: Entering directory '/home/aresminos/Software/source/vkdt'
Makefile:25: [ext (Makefile)]
mkdir -p built/
Makefile:10: [ext (Makefile)]
Makefile:26: [ext (Makefile)]
make -C ext/
make[2]: Entering directory '/home/aresminos/Software/source/vkdt/ext'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/home/aresminos/Software/source/vkdt/ext'
Makefile:29: [src (ext Makefile)]
mkdir -p built/
Makefile:10: [src (ext Makefile)]
Makefile:30: [src (ext Makefile)]
make -C src/
make[2]: Entering directory '/home/aresminos/Software/source/vkdt/src'
ls: cannot access 'pipe/modules/*/*.tesc': No such file or directory
ls: cannot access 'pipe/modules/*/*.tese': No such file or directory
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Wall -pipe -O3 -march=native  -c cli/main.c -o cli/main.o
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Wall -pipe -O3 -march=native  -c qvk/qvk.c -o qvk/qvk.o
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Wall -pipe -O3 -march=native  -c qvk/qvk_util.c -o qvk/qvk_util.o
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Wall -pipe -O3 -march=native  -c core/log.c -o core/log.o
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Wall -pipe -O3 -march=native  -c core/threads.c -o core/threads.o
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Wall -pipe -O3 -march=native  -c pipe/alloc.c -o pipe/alloc.o
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Wall -pipe -O3 -march=native  -c pipe/connector.c -o pipe/connector.o
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Wall -pipe -O3 -march=native  -c pipe/global.c -o pipe/global.o
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Wall -pipe -O3 -march=native  -c pipe/graph.c -o pipe/graph.o
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Wall -pipe -O3 -march=native  -c pipe/graph-io.c -o pipe/graph-io.o
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Wall -pipe -O3 -march=native  -c pipe/graph-export.c -o pipe/graph-export.o
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Wall -pipe -O3 -march=native  -c pipe/module.c -o pipe/module.o
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Wall -pipe -O3 -march=native  -c db/db.c -o db/db.o
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Wall -pipe -O3 -march=native  -c db/rc.c -o db/rc.o
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Wall -pipe -O3 -march=native  -c db/thumbnails.c -o db/thumbnails.o
clang cli/main.o qvk/qvk.o qvk/qvk_util.o core/log.o core/threads.o pipe/alloc.o pipe/connector.o pipe/global.o pipe/graph.o pipe/graph-io.o pipe/graph-export.o pipe/module.o db/db.o db/rc.o db/thumbnails.o -o vkdt-cli \
      -lvulkan -ldl -pthread  -s
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Wall -pipe -O3 -march=native  -I../ext/imgui -I../ext/imgui/examples/ -c gui/gui.c -o gui/gui.o
clang++ -Wall -pipe -I. -D_GNU_SOURCE -Wall -pipe -O3 -march=native  -I../ext/imgui -I../ext/imgui/examples/ -c gui/render.cc -o gui/render.o
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Wall -pipe -O3 -march=native  -I../ext/imgui -I../ext/imgui/examples/ -c gui/darkroom.c -o gui/darkroom.o
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Wall -pipe -O3 -march=native  -I../ext/imgui -I../ext/imgui/examples/ -c gui/main.c -o gui/main.o
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Wall -pipe -O3 -march=native  -I../ext/imgui -I../ext/imgui/examples/ -c gui/view.c -o gui/view.o
clang++ -Wall -pipe -I. -D_GNU_SOURCE -Wall -pipe -O3 -march=native  -I../ext/imgui -I../ext/imgui/examples/ -c ../ext/imgui/imgui.cpp -o ../ext/imgui/imgui.o
clang++ -Wall -pipe -I. -D_GNU_SOURCE -Wall -pipe -O3 -march=native  -I../ext/imgui -I../ext/imgui/examples/ -c ../ext/imgui/imgui_draw.cpp -o ../ext/imgui/imgui_draw.o
clang++ -Wall -pipe -I. -D_GNU_SOURCE -Wall -pipe -O3 -march=native  -I../ext/imgui -I../ext/imgui/examples/ -c ../ext/imgui/imgui_widgets.cpp -o ../ext/imgui/imgui_widgets.o
clang++ -Wall -pipe -I. -D_GNU_SOURCE -Wall -pipe -O3 -march=native  -I../ext/imgui -I../ext/imgui/examples/ -c ../ext/imgui/examples/imgui_impl_vulkan.cpp -o ../ext/imgui/examples/imgui_impl_vulkan.o
clang++ -Wall -pipe -I. -D_GNU_SOURCE -Wall -pipe -O3 -march=native  -I../ext/imgui -I../ext/imgui/examples/ -c ../ext/imgui/examples/imgui_impl_glfw.cpp -o ../ext/imgui/examples/imgui_impl_glfw.o
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Wall -pipe -O3 -march=native  -c snd/none.c -o snd/none.o
clang gui/gui.o gui/render.o gui/darkroom.o gui/main.o gui/view.o ../ext/imgui/imgui.o ../ext/imgui/imgui_draw.o ../ext/imgui/imgui_widgets.o ../ext/imgui/examples/imgui_impl_vulkan.o ../ext/imgui/examples/imgui_impl_glfw.o qvk/qvk.o qvk/qvk_util.o core/log.o core/threads.o snd/none.o pipe/alloc.o pipe/connector.o pipe/global.o pipe/graph.o pipe/graph-io.o pipe/graph-export.o pipe/module.o db/db.o db/rc.o db/thumbnails.o -o vkdt \
     -lvulkan -ldl -lglfw -lm -lstdc++  -ldl -pthread  -s
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Ipipe -I. -fPIC -Wall -pipe -O3 -march=native  -shared pipe/modules/hilite/main.c pipe/connector.c -o pipe/modules/hilite/libhilite.so  -s -lm
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Ipipe -I. -fPIC -Wall -pipe -O3 -march=native -fopenmp -shared pipe/modules/o-bc1/main.c  -o pipe/modules/o-bc1/libo-bc1.so  -s -lz
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Ipipe -I. -fPIC -Wall -pipe -O3 -march=native  -shared pipe/modules/hist/main.c pipe/connector.c -o pipe/modules/hist/libhist.so  -s -lm
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Ipipe -I. -fPIC -Wall -pipe -O3 -march=native  -shared pipe/modules/draw/main.c pipe/connector.c -o pipe/modules/draw/libdraw.so  -s 
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Ipipe -I. -fPIC -Wall -pipe -O3 -march=native  -shared pipe/modules/ciediag/main.c pipe/connector.c -o pipe/modules/ciediag/libciediag.so  -s -lm
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Ipipe -I. -fPIC -Wall -pipe -O3 -march=native  -shared pipe/modules/zones/main.c pipe/connector.c -o pipe/modules/zones/libzones.so  -s -lm
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Ipipe -I. -fPIC -Wall -pipe -O3 -march=native  -shared pipe/modules/crop/main.c  -o pipe/modules/crop/libcrop.so  -s -lm
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Ipipe -I. -fPIC -Wall -pipe -O3 -march=native  -shared pipe/modules/o-pfm/main.c  -o pipe/modules/o-pfm/libo-pfm.so  -s 
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Ipipe -I. -fPIC -Wall -pipe -O3 -march=native  -shared pipe/modules/nprof/main.c  -o pipe/modules/nprof/libnprof.so  -s -lm
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Ipipe -I. -fPIC -Wall -pipe -O3 -march=native  -shared pipe/modules/o-jpg/main.c  -o pipe/modules/o-jpg/libo-jpg.so  -s -ljpeg
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Ipipe -I. -fPIC -Wall -pipe -O3 -march=native  -shared pipe/modules/rawhist/main.c pipe/connector.c -o pipe/modules/rawhist/librawhist.so  -s -lm
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Ipipe -I. -fPIC -Wall -pipe -O3 -march=native  -shared pipe/modules/burst/main.c pipe/connector.c -o pipe/modules/burst/libburst.so  -s 
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Ipipe -I. -fPIC -Wall -pipe -O3 -march=native  -shared pipe/modules/blend/main.c  -o pipe/modules/blend/libblend.so  -s 
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Ipipe -I. -fPIC -Wall -pipe -O3 -march=native  -shared pipe/modules/contrast/main.c pipe/connector.c -o pipe/modules/contrast/libcontrast.so  -s -lm
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Ipipe -I. -fPIC -Wall -pipe -O3 -march=native  -shared pipe/modules/colour/main.c  -o pipe/modules/colour/libcolour.so  -s 
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Ipipe -I. -fPIC -Wall -pipe -O3 -march=native  -shared pipe/modules/i-bc1/main.c  -o pipe/modules/i-bc1/libi-bc1.so  -s -lz
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Ipipe -I. -fPIC -Wall -pipe -O3 -march=native  -shared pipe/modules/pick/main.c pipe/connector.c -o pipe/modules/pick/libpick.so  -s 
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Ipipe -I. -fPIC -Wall -pipe -O3 -march=native  -shared pipe/modules/llap/main.c pipe/connector.c -o pipe/modules/llap/libllap.so  -s -lm
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Ipipe -I. -fPIC -Wall -pipe -O3 -march=native  -shared pipe/modules/guided/main.c pipe/connector.c -o pipe/modules/guided/libguided.so  -s 
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Ipipe -I. -fPIC -Wall -pipe -O3 -march=native  -shared pipe/modules/deconv/main.c pipe/connector.c -o pipe/modules/deconv/libdeconv.so  -s 
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Ipipe -I. -fPIC -Wall -pipe -O3 -march=native  -shared pipe/modules/i-jpg/main.c  -o pipe/modules/i-jpg/libi-jpg.so  -s -ljpeg
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Ipipe -I. -fPIC -Wall -pipe -O3 -march=native  -shared pipe/modules/i-pfm/main.c  -o pipe/modules/i-pfm/libi-pfm.so  -s 
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Ipipe -I. -fPIC -Wall -pipe -O3 -march=native  -shared pipe/modules/o-ffmpeg/main.c  -o pipe/modules/o-ffmpeg/libo-ffmpeg.so  -s 
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Ipipe -I. -fPIC -Wall -pipe -O3 -march=native  -shared pipe/modules/filmcurv/main.c  -o pipe/modules/filmcurv/libfilmcurv.so  -s -lm
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Ipipe -I. -fPIC -Wall -pipe -O3 -march=native  -shared pipe/modules/denoise/main.c pipe/connector.c -o pipe/modules/denoise/libdenoise.so  -s -lm
clang -Wall -pipe -I. -D_GNU_SOURCE -std=c11 -DVK_ENABLE_BETA_EXTENSIONS -Ipipe -I. -fPIC -Wall -pipe -O3 -march=native  -shared pipe/modules/demosaic/main.c pipe/connector.c -o pipe/modules/demosaic/libdemosaic.so  -s 
clang++ -Wall -pipe -I. -D_GNU_SOURCE -Ipipe -I. -fPIC -Wall -pipe -O3 -march=native -Wall -I../ext/rawspeed/src/librawspeed/ -I../built/ext/rawspeed/src/ -I../ext/rawspeed/src/external/ -shared pipe/modules/i-raw/main.cc  -o pipe/modules/i-raw/libi-raw.so  -s -L../built/ext/rawspeed -lrawspeed -lpugixml -lz -ljpeg -lomp
glslangValidator -Ipipe/modules -I./ --target-env vulkan1.2 -V pipe/modules/ab/main.comp -o pipe/modules/ab/main.comp.spv
glslangValidator: Error: --target-env expected one of: vulkan1.0, vulkan1.1, opengl,
spirv1.0, spirv1.1, spirv1.2, spirv1.3, spirv1.4, or spirv1.5 (use -h for usage)
make[2]: *** [Makefile:139: pipe/modules/ab/main.comp.spv] Error 1
make[2]: Leaving directory '/home/aresminos/Software/source/vkdt/src'
make[1]: *** [Makefile:30: src] Error 2
make[1]: Leaving directory '/home/aresminos/Software/source/vkdt'
make: *** [Makefile:6: all] Error 2

Still no executable here:

~/Software/source/vkdt/bin$ ls
config.mk  config.mk.example  darkroom.ui  data  default-darkroom.i-mlv  default-darkroom.i-raw  default.i-mlv  default.i-raw  examples  Makefile  noise-profile.sh  read-icc.py  thumb.cfg

ah i didn’t see that there’s more to the log… okay make aborts because of the vulkan version passed to the glsl compiler, so it doesn’t finish.

it would be good to update that.

i don’t use the vulkan sdk but get

libvulkan-dev/unstable,now 1.2.162.0-1 amd64 [installed]
  Vulkan loader library -- development files

glslang-tools/unstable 11.1.0-1 amd64 [upgradable from: 8.13.3743-1]
  OpenGL and OpenGL ES shader front end and validator -- tools

this package from std debian apt sources. is there no equivalent on ubuntu?

I have that installed from the Ubuntu repos but it’s an older version. You have the latest.

Full Text Search... Done
libvulkan-dev/focal,now 1.2.131.2-1 amd64 [installed]
  Vulkan loader library -- development files

Sorting... Done
Full Text Search... Done
glslang-tools/focal,now 8.13.3559-4 amd64 [installed]
  OpenGL and OpenGL ES shader front end and validator -- tools

(note to self: update your system, too :slight_smile: )

Ubuntu – Details of package libvulkan-dev in focal <= i believe this one should be good enough to give you 1.2 support. the glslang-tools also look promising.

would be great if you got it working… though i think i need to clean up a thing or two in the drawn raster masks before you can give valuable feedback on that…

hm. your

 glslangValidator -h | grep target-env

does it contain a line like

  --target-env {vulkan1.0 | vulkan1.1 | vulkan1.2 | opengl |

?

vulkan 1.2 is missing:

$ glslangValidator -h | grep "target-env {vulkan1".*
  --target-env {vulkan1.0 | vulkan1.1 | opengl |