gmbeard / shadow-cast

GPU accelerated screen and audio recording for Linux
GNU General Public License v2.0
36 stars 0 forks source link

Incorrect color/pixel format on some Wayland compositors #39

Closed gmbeard closed 1 month ago

gmbeard commented 1 month ago

It appears that some Wayland compositors don't always use a linear RGBA pixel format for their DRM planes. For example, KDE Plasma 5 can use a "30bit" ABGR 2:10:10:20 format. Shadow Cast currently (and rather naively) assumes a format of ARGB 8:8:8:8, which means frames are encoded incorrectly.

The following still is taken from a H264 video captured on KDE Plasma 5...

test-frame

For reference, the above video frame is displaying this image in the center of the screen...

ai-render-1024x1024

SleepingPanda commented 1 month ago

Continued from #36, @gmbeard asked me to try the fix/drm-color-conversion branch but building it fails:

$ cmake --build .
[  1%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/av/buffer.cpp.o
[  3%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/av/buffer_pool.cpp.o
[  5%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/av/codec.cpp.o
[  7%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/av/format.cpp.o
[  9%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/av/frame.cpp.o
[ 10%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/av/media_chunk.cpp.o
[ 12%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/av/packet.cpp.o
[ 14%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/av/sample_format.cpp.o
[ 16%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/display/display.cpp.o
[ 18%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/drm/messaging.cpp.o
[ 20%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/drm/planes.cpp.o
[ 21%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/gl/buffer.cpp.o
[ 23%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/gl/core.cpp.o
[ 25%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/gl/error.cpp.o
[ 27%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/gl/framebuffer.cpp.o
[ 29%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/gl/program.cpp.o
[ 30%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/gl/shader.cpp.o
[ 32%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/gl/texture.cpp.o
[ 34%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/gl/vertex_array_object.cpp.o
[ 36%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/handlers/audio_chunk_writer.cpp.o
[ 38%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/handlers/drm_video_frame_writer.cpp.o
[ 40%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/handlers/stream_finalizer.cpp.o
[ 41%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/handlers/video_frame_writer.cpp.o
[ 43%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/io/accept_handler.cpp.o
[ 45%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/io/process.cpp.o
[ 47%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/io/signals.cpp.o
[ 49%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/io/unix_socket.cpp.o
[ 50%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/platform/egl.cpp.o
[ 52%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/platform/opengl.cpp.o
[ 54%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/platform/wayland.cpp.o
[ 56%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/services/audio_service.cpp.o
[ 58%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/services/color_converter.cpp.o
[ 60%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/services/context.cpp.o
[ 61%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/services/drm_video_service.cpp.o
[ 63%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/services/encoder.cpp.o
[ 65%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/services/encoder_service.cpp.o
[ 67%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/services/metrics_service.cpp.o
[ 69%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/services/readiness.cpp.o
[ 70%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/services/service.cpp.o
[ 72%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/services/service_registry.cpp.o
[ 74%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/services/signal_service.cpp.o
[ 76%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/services/video_service.cpp.o
[ 78%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/utils/base64.cpp.o
[ 80%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/utils/cmd_line.cpp.o
[ 81%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/utils/contracts.cpp.o
[ 83%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/utils/elapsed.cpp.o
[ 85%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/utils/frame_time.cpp.o
[ 87%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/utils/result.cpp.o
[ 89%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/error.cpp.o
[ 90%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/logging.cpp.o
[ 92%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/nvidia.cpp.o
[ 92%] Built target shadow-cast-obj
/bin/sh: line 1: -b: command not found
gmake[2]: *** [src/glsl/CMakeFiles/embedded_glsl_generator.dir/build.make:70: src/glsl/CMakeFiles/embedded_glsl_generator] Error 127
gmake[1]: *** [CMakeFiles/Makefile2:199: src/glsl/CMakeFiles/embedded_glsl_generator.dir/all] Error 2
gmake: *** [Makefile:136: all] Error 2

How should I proceed?

gmbeard commented 1 month ago

@SleepingPanda could you post the output of the following commands...

SleepingPanda commented 1 month ago

Here's the output:

$ VERBOSE=1 cmake --build .
Change Dir: '/mnt/git/shadow-cast-fix-drm-color-conversion/build'

Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile
/usr/bin/cmake -S/mnt/git/shadow-cast-fix-drm-color-conversion -B/mnt/git/shadow-cast-fix-drm-color-conversion/build --check-build-system CMakeFiles/Makefile.cmake 0
/usr/bin/cmake -E cmake_progress_start /mnt/git/shadow-cast-fix-drm-color-conversion/build/CMakeFiles /mnt/git/shadow-cast-fix-drm-color-conversion/build//CMakeFiles/progress.marks
/usr/bin/gmake  -f CMakeFiles/Makefile2 all
gmake[1]: Entering directory '/mnt/git/shadow-cast-fix-drm-color-conversion/build'
/usr/bin/gmake  -f src/CMakeFiles/shadow-cast-obj.dir/build.make src/CMakeFiles/shadow-cast-obj.dir/depend
gmake[2]: Entering directory '/mnt/git/shadow-cast-fix-drm-color-conversion/build'
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /mnt/git/shadow-cast-fix-drm-color-conversion /mnt/git/shadow-cast-fix-drm-color-conversion/src /mnt/git/shadow-cast-fix-drm-color-conversion/build /mnt/git/shadow-cast-fix-drm-color-conversion/build/src /mnt/git/shadow-cast-fix-drm-color-conversion/build/src/CMakeFiles/shadow-cast-obj.dir/DependInfo.cmake "--color="
gmake[2]: Leaving directory '/mnt/git/shadow-cast-fix-drm-color-conversion/build'
/usr/bin/gmake  -f src/CMakeFiles/shadow-cast-obj.dir/build.make src/CMakeFiles/shadow-cast-obj.dir/build
gmake[2]: Entering directory '/mnt/git/shadow-cast-fix-drm-color-conversion/build'
[  1%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/av/buffer.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/av/buffer.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/av/buffer.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/av/buffer.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/av/buffer.cpp
[  3%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/av/buffer_pool.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/av/buffer_pool.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/av/buffer_pool.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/av/buffer_pool.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/av/buffer_pool.cpp
[  5%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/av/codec.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/av/codec.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/av/codec.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/av/codec.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/av/codec.cpp
[  7%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/av/format.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/av/format.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/av/format.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/av/format.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/av/format.cpp
[  9%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/av/frame.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/av/frame.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/av/frame.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/av/frame.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/av/frame.cpp
[ 10%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/av/media_chunk.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/av/media_chunk.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/av/media_chunk.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/av/media_chunk.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/av/media_chunk.cpp
[ 12%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/av/packet.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/av/packet.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/av/packet.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/av/packet.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/av/packet.cpp
[ 14%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/av/sample_format.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/av/sample_format.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/av/sample_format.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/av/sample_format.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/av/sample_format.cpp
[ 16%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/display/display.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/display/display.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/display/display.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/display/display.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/display/display.cpp
[ 18%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/drm/messaging.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/drm/messaging.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/drm/messaging.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/drm/messaging.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/drm/messaging.cpp
[ 20%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/drm/planes.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/drm/planes.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/drm/planes.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/drm/planes.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/drm/planes.cpp
[ 21%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/gl/buffer.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/gl/buffer.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/gl/buffer.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/gl/buffer.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/gl/buffer.cpp
[ 23%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/gl/core.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/gl/core.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/gl/core.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/gl/core.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/gl/core.cpp
[ 25%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/gl/error.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/gl/error.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/gl/error.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/gl/error.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/gl/error.cpp
[ 27%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/gl/framebuffer.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/gl/framebuffer.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/gl/framebuffer.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/gl/framebuffer.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/gl/framebuffer.cpp
[ 29%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/gl/program.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/gl/program.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/gl/program.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/gl/program.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/gl/program.cpp
[ 30%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/gl/shader.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/gl/shader.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/gl/shader.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/gl/shader.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/gl/shader.cpp
[ 32%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/gl/texture.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/gl/texture.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/gl/texture.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/gl/texture.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/gl/texture.cpp
[ 34%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/gl/vertex_array_object.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/gl/vertex_array_object.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/gl/vertex_array_object.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/gl/vertex_array_object.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/gl/vertex_array_object.cpp
[ 36%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/handlers/audio_chunk_writer.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/handlers/audio_chunk_writer.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/handlers/audio_chunk_writer.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/handlers/audio_chunk_writer.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/handlers/audio_chunk_writer.cpp
[ 38%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/handlers/drm_video_frame_writer.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/handlers/drm_video_frame_writer.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/handlers/drm_video_frame_writer.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/handlers/drm_video_frame_writer.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/handlers/drm_video_frame_writer.cpp
[ 40%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/handlers/stream_finalizer.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/handlers/stream_finalizer.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/handlers/stream_finalizer.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/handlers/stream_finalizer.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/handlers/stream_finalizer.cpp
[ 41%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/handlers/video_frame_writer.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/handlers/video_frame_writer.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/handlers/video_frame_writer.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/handlers/video_frame_writer.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/handlers/video_frame_writer.cpp
[ 43%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/io/accept_handler.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/io/accept_handler.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/io/accept_handler.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/io/accept_handler.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/io/accept_handler.cpp
[ 45%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/io/process.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/io/process.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/io/process.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/io/process.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/io/process.cpp
[ 47%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/io/signals.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/io/signals.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/io/signals.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/io/signals.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/io/signals.cpp
[ 49%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/io/unix_socket.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/io/unix_socket.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/io/unix_socket.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/io/unix_socket.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/io/unix_socket.cpp
[ 50%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/platform/egl.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/platform/egl.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/platform/egl.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/platform/egl.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/platform/egl.cpp
[ 52%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/platform/opengl.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/platform/opengl.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/platform/opengl.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/platform/opengl.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/platform/opengl.cpp
[ 54%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/platform/wayland.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/platform/wayland.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/platform/wayland.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/platform/wayland.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/platform/wayland.cpp
[ 56%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/services/audio_service.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/services/audio_service.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/services/audio_service.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/services/audio_service.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/services/audio_service.cpp
[ 58%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/services/color_converter.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/services/color_converter.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/services/color_converter.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/services/color_converter.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/services/color_converter.cpp
[ 60%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/services/context.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/services/context.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/services/context.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/services/context.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/services/context.cpp
[ 61%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/services/drm_video_service.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/services/drm_video_service.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/services/drm_video_service.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/services/drm_video_service.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/services/drm_video_service.cpp
[ 63%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/services/encoder.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/services/encoder.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/services/encoder.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/services/encoder.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/services/encoder.cpp
[ 65%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/services/encoder_service.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/services/encoder_service.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/services/encoder_service.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/services/encoder_service.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/services/encoder_service.cpp
[ 67%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/services/metrics_service.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/services/metrics_service.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/services/metrics_service.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/services/metrics_service.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/services/metrics_service.cpp
[ 69%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/services/readiness.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/services/readiness.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/services/readiness.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/services/readiness.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/services/readiness.cpp
[ 70%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/services/service.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/services/service.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/services/service.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/services/service.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/services/service.cpp
[ 72%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/services/service_registry.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/services/service_registry.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/services/service_registry.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/services/service_registry.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/services/service_registry.cpp
[ 74%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/services/signal_service.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/services/signal_service.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/services/signal_service.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/services/signal_service.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/services/signal_service.cpp
[ 76%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/services/video_service.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/services/video_service.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/services/video_service.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/services/video_service.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/services/video_service.cpp
[ 78%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/utils/base64.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/utils/base64.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/utils/base64.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/utils/base64.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/utils/base64.cpp
[ 80%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/utils/cmd_line.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/utils/cmd_line.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/utils/cmd_line.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/utils/cmd_line.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/utils/cmd_line.cpp
[ 81%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/utils/contracts.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/utils/contracts.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/utils/contracts.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/utils/contracts.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/utils/contracts.cpp
[ 83%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/utils/elapsed.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/utils/elapsed.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/utils/elapsed.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/utils/elapsed.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/utils/elapsed.cpp
[ 85%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/utils/frame_time.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/utils/frame_time.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/utils/frame_time.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/utils/frame_time.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/utils/frame_time.cpp
[ 87%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/utils/result.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/utils/result.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/utils/result.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/utils/result.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/utils/result.cpp
[ 89%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/error.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/error.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/error.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/error.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/error.cpp
[ 90%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/logging.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/logging.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/logging.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/logging.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/logging.cpp
[ 92%] Building CXX object src/CMakeFiles/shadow-cast-obj.dir/nvidia.cpp.o
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build/src && /usr/bin/c++  -I/mnt/git/shadow-cast-fix-drm-color-conversion/src -I/mnt/git/shadow-cast-fix-drm-color-conversion/build/src -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/ffmpeg -O3 -DNDEBUG -std=gnu++20 -flto=auto -fno-fat-lto-objects -Wall -Werror -Wextra -Wshadow -MD -MT src/CMakeFiles/shadow-cast-obj.dir/nvidia.cpp.o -MF CMakeFiles/shadow-cast-obj.dir/nvidia.cpp.o.d -o CMakeFiles/shadow-cast-obj.dir/nvidia.cpp.o -c /mnt/git/shadow-cast-fix-drm-color-conversion/src/nvidia.cpp
gmake[2]: Leaving directory '/mnt/git/shadow-cast-fix-drm-color-conversion/build'
[ 92%] Built target shadow-cast-obj
/usr/bin/gmake  -f src/glsl/CMakeFiles/embedded_glsl_generator.dir/build.make src/glsl/CMakeFiles/embedded_glsl_generator.dir/depend
gmake[2]: Entering directory '/mnt/git/shadow-cast-fix-drm-color-conversion/build'
cd /mnt/git/shadow-cast-fix-drm-color-conversion/build && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /mnt/git/shadow-cast-fix-drm-color-conversion /mnt/git/shadow-cast-fix-drm-color-conversion/src/glsl /mnt/git/shadow-cast-fix-drm-color-conversion/build /mnt/git/shadow-cast-fix-drm-color-conversion/build/src/glsl /mnt/git/shadow-cast-fix-drm-color-conversion/build/src/glsl/CMakeFiles/embedded_glsl_generator.dir/DependInfo.cmake "--color="
gmake[2]: Leaving directory '/mnt/git/shadow-cast-fix-drm-color-conversion/build'
/usr/bin/gmake  -f src/glsl/CMakeFiles/embedded_glsl_generator.dir/build.make src/glsl/CMakeFiles/embedded_glsl_generator.dir/build
gmake[2]: Entering directory '/mnt/git/shadow-cast-fix-drm-color-conversion/build'
cd /mnt/git/shadow-cast-fix-drm-color-conversion/src/glsl && -b binary -r -o /mnt/git/shadow-cast-fix-drm-color-conversion/build/src/glsl/embedded_glsl.o default_vertex.glsl default_fragment.glsl
/bin/sh: line 1: -b: command not found
gmake[2]: *** [src/glsl/CMakeFiles/embedded_glsl_generator.dir/build.make:70: src/glsl/CMakeFiles/embedded_glsl_generator] Error 127
gmake[2]: Leaving directory '/mnt/git/shadow-cast-fix-drm-color-conversion/build'
gmake[1]: *** [CMakeFiles/Makefile2:199: src/glsl/CMakeFiles/embedded_glsl_generator.dir/all] Error 2
gmake[1]: Leaving directory '/mnt/git/shadow-cast-fix-drm-color-conversion/build'
gmake: *** [Makefile:136: all] Error 2
gmbeard commented 1 month ago

Thanks, @SleepingPanda. I was able to reproduce the issue when building with Clang. This was due to how I'm embedding the new GLSL shader sources in the binary.

I've pushed commit c455ac1 that should hopefully resolve it for you.

You can pull the latest commit from feat/drm-color-conversion.

SleepingPanda commented 1 month ago

Beautiful work @gmbeard ! shadow-cast built just fine now and works perfectly.

https://github.com/user-attachments/assets/1cd313f6-f3e0-4aa5-ac31-e9a376bc40fe

gmbeard commented 1 month ago

Ah, great news! I'd be interested to hear how it performs :smile: I recorded some game play footage as a test - https://youtu.be/pKpLNewh3Ew - and it seems ok to me initially. There are a couple of jumpy frames, but I think that might be down to the janky Wayland nvidia driver I'm using TBH

SleepingPanda commented 1 month ago

Sorry, I tried attaching the video output through github but it seems unable to embed the file. Here's a direct link to the file.