diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index eac53a99e..880dfa48c 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -96,7 +96,7 @@ jobs: - name: Install deps run: | source ./util/ci/common.sh - install_linux_deps clang-11 + install_linux_deps clang-11 xvfb - name: Build run: | @@ -104,13 +104,17 @@ jobs: env: CC: clang-11 CXX: clang++-11 - # Test fallback SHA implementations - CMAKE_FLAGS: '-DENABLE_OPENSSL=0' + # Test fallback SHA implementations, add GLES for the test + CMAKE_FLAGS: '-DENABLE_OPENSSL=0 -DENABLE_GLES2=ON' - name: Test run: | ./bin/luanti --run-unittests + - name: Singleplayer test (GLES) + run: | + clientconf="video_driver=ogles2" xvfb-run ./util/test_singleplayer.sh + # Current clang version clang_18: runs-on: ubuntu-24.04 @@ -136,9 +140,9 @@ jobs: run: | ./util/test_multiplayer.sh - - name: Singleplayer test + - name: Singleplayer test (GL3) run: | - xvfb-run ./util/test_singleplayer.sh + clientconf="video_driver=opengl3" xvfb-run ./util/test_singleplayer.sh # Build with prometheus-cpp (server-only), also runs on ARM64 clang_prometheus_arm: diff --git a/.github/workflows/lua.yml b/.github/workflows/lua.yml index 8a1d840bc..0816c3957 100644 --- a/.github/workflows/lua.yml +++ b/.github/workflows/lua.yml @@ -37,9 +37,9 @@ jobs: run: | serverconf="profiler.load=true" ./util/test_multiplayer.sh - - name: Singleplayer test (GL3) + - name: Singleplayer test run: | - clientconf="video_driver=opengl3" xvfb-run ./util/test_singleplayer.sh + xvfb-run ./util/test_singleplayer.sh luacheck: name: "Builtin Luacheck and Unit Tests" diff --git a/util/test_singleplayer.sh b/util/test_singleplayer.sh index 63bbd5195..eeb7592ac 100755 --- a/util/test_singleplayer.sh +++ b/util/test_singleplayer.sh @@ -14,13 +14,20 @@ rm -rf "$worldpath" mkdir -p "$worldpath/worldmods" # enable a lot of visual effects so we can catch shader errors and other obvious bugs -printf '%s\n' >"$conf_client" \ - screen_w=384 screen_h=256 fps_max=5 \ - active_block_range=1 viewing_range=40 helper_mode=devtest \ - opengl_debug=true mip_map=true enable_waving_{leaves,plants,water}=true \ - enable_{auto_exposure,bloom,dynamic_shadows,translucent_foliage,volumetric_lighting}=true \ - shadow_map_color=true antialiasing=ssaa \ - "${clientconf:-}" +opts1=( + screen_w=384 screen_h=256 fps_max=5 + active_block_range=1 viewing_range=40 helper_mode=devtest + opengl_debug=true mip_map=true enable_waving_{leaves,plants,water}=true + antialiasing=ssaa node_highlighting=halo +) +opts2=( + enable_{auto_exposure,bloom,dynamic_shadows,translucent_foliage,volumetric_lighting,water_reflections}=true + shadow_map_color=true +) +printf '%s\n' "${opts1[@]}" "${clientconf:-}" >"$conf_client" +if ! grep -q 'video_driver *= *ogles2' "$conf_client"; then # no shadows on GLES + printf '%s\n' "${opts2[@]}" >>"$conf_client" +fi ln -s "$dir/helper_mod" "$worldpath/worldmods/"