From 3513e3bffe4badb760a1d0dc775e8bc879ca9b19 Mon Sep 17 00:00:00 2001 From: Swung0x48 Date: Mon, 25 Aug 2025 15:46:59 +0800 Subject: [PATCH 01/10] [Refactor] (buildsystem, 3rdparty): link test and benchmark to MobileGL library --- .github/workflows/benchmark.yml | 5 +- .github/workflows/test.yml | 13 ++- .gitmodules | 6 + CMakeLists.txt | 54 +++++++-- MobileGL/MG_Benchmark/CMakeLists.txt | 11 +- MobileGL/MG_Benchmark/Program/CMakeLists.txt | 110 +++++++++---------- MobileGL/MG_Test/Buffer/CMakeLists.txt | 72 ++++++------ MobileGL/MG_Test/CMakeLists.txt | 38 ++++--- MobileGL/MG_Test/Program/CMakeLists.txt | 76 ++++++------- MobileGL/MG_Test/VertexArray/CMakeLists.txt | 72 ++++++------ 10 files changed, 259 insertions(+), 198 deletions(-) diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index 38975456..2a6228fa 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -8,7 +8,8 @@ jobs: benchmark: runs-on: ubuntu-latest env: - BENCH_ROOT: ${{github.workspace}}/MobileGL/MG_Benchmark + # BENCH_ROOT: ${{github.workspace}}/MobileGL/MG_Benchmark + BENCH_ROOT: ${{github.workspace}} steps: - name: Set Swap Space @@ -40,7 +41,7 @@ jobs: - name: Configure CMake working-directory: ${{env.BENCH_ROOT}} - run: cmake -S . -B build-bench -DCMAKE_BUILD_TYPE=Release -DBENCHMARK_DOWNLOAD_DEPENDENCIES=ON -DBENCHMARK_ENABLE_TESTING=OFF + run: cmake -S . -B build-bench -DCMAKE_BUILD_TYPE=Release -DBENCHMARK_DOWNLOAD_DEPENDENCIES=ON -DBENCHMARK_ENABLE_TESTING=OFF -DBUILD_TEST=OFF -DBUILD_BENCHMARK=ON - name: Build working-directory: ${{env.BENCH_ROOT}}/build-bench diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index db49cd8f..19ff0bf7 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -8,7 +8,8 @@ jobs: test: runs-on: ubuntu-latest env: - TEST_ROOT: ${{github.workspace}}/MobileGL/MG_Test + # TEST_ROOT: ${{github.workspace}}/MobileGL/MG_Test + TEST_ROOT: ${{github.workspace}} steps: - name: Set Swap Space @@ -40,8 +41,14 @@ jobs: - name: Configure CMake working-directory: ${{env.TEST_ROOT}} - run: cmake -S . -B build-test -DCMAKE_BUILD_TYPE=Debug - + run: | + | + if [ "${{ secrets.ACTIONS_STEP_DEBUG }}" == "true" ]; then + cmake -S . -B build-test -DCMAKE_BUILD_TYPE=Debug -DBUILD_TEST=ON -DBUILD_BENCHMARK=OFF + else + cmake -S . -B build-test -DCMAKE_BUILD_TYPE=Release -DBUILD_TEST=ON -DBUILD_BENCHMARK=OFF + fi + - name: Build working-directory: ${{env.TEST_ROOT}}/build-test run: cmake --build . --parallel 4 diff --git a/.gitmodules b/.gitmodules index 69311e33..7e4c4c53 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,9 @@ [submodule "3rdparty/DiligentCore"] path = 3rdparty/DiligentCore url = https://github.com/DiligentGraphics/DiligentCore.git +[submodule "3rdparty/glslang"] + path = 3rdparty/glslang + url = https://github.com/KhronosGroup/glslang.git +[submodule "3rdparty/SPIRV-Cross"] + path = 3rdparty/SPIRV-Cross + url = https://github.com/KhronosGroup/SPIRV-Cross.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 32b68dd3..47652a5b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,6 +10,13 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) +set(SPIRV_CROSS_STATIC ON CACHE BOOL "Build SPIRV-Cross as static library") +set(SPIRV_CROSS_CLI OFF CACHE BOOL "Build SPIRV-Cross command line tool") + +# add_subdirectory(3rdparty/DiligentCore) +add_subdirectory(3rdparty/glslang) +add_subdirectory(3rdparty/SPIRV-Cross) + set(SOURCE_FILES MobileGL/Init.cpp @@ -79,28 +86,55 @@ set_target_properties(${CMAKE_PROJECT_NAME} PROPERTIES VISIBILITY_INLINES_HIDDEN ON ) -# add_subdirectory(3rdparty/DiligentCore) - target_include_directories(${CMAKE_PROJECT_NAME} PUBLIC ${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/MobileGL ) -target_link_libraries(MobileGL +target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE # Diligent-Common # Diligent-GraphicsEngineOpenGL-shared # Diligent-GraphicsEngineVk-shared ) -set(SPIRV_CROSS_STATIC ON CACHE BOOL "Build SPIRV-Cross as static library") -set(SPIRV_CROSS_CLI OFF CACHE BOOL "Build SPIRV-Cross command line tool") - -add_subdirectory(3rdparty/glslang) -add_subdirectory(3rdparty/SPIRV-Cross) - -target_link_libraries(MobileGL +target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE glslang::glslang spirv-cross-c ) + +add_library(${CMAKE_PROJECT_NAME}_s STATIC + ${SOURCE_FILES} +) + +set_target_properties(${CMAKE_PROJECT_NAME}_s PROPERTIES + C_VISIBILITY_PRESET hidden + CXX_VISIBILITY_PRESET hidden + VISIBILITY_INLINES_HIDDEN ON +) + +target_include_directories(${CMAKE_PROJECT_NAME}_s PUBLIC + ${CMAKE_SOURCE_DIR}/include + ${CMAKE_SOURCE_DIR}/MobileGL +) + +target_link_libraries(${CMAKE_PROJECT_NAME}_s + PRIVATE + # Diligent-Common + # Diligent-GraphicsEngineOpenGL-shared + # Diligent-GraphicsEngineVk-shared +) + +target_link_libraries(${CMAKE_PROJECT_NAME}_s + PRIVATE + glslang::glslang + spirv-cross-c +) + + +set(BUILD_TEST ON CACHE BOOL "Build the tests") +set(BUILD_BENCHMARK ON CACHE BOOL "Build the benchmarks") + +add_subdirectory(MobileGL/MG_Test) +add_subdirectory(MobileGL/MG_Benchmark) diff --git a/MobileGL/MG_Benchmark/CMakeLists.txt b/MobileGL/MG_Benchmark/CMakeLists.txt index 2e6df4d7..1067b219 100644 --- a/MobileGL/MG_Benchmark/CMakeLists.txt +++ b/MobileGL/MG_Benchmark/CMakeLists.txt @@ -1,6 +1,8 @@ cmake_minimum_required(VERSION 3.14) project(MobileGLBenchmark) +message(STATUS "Generating build files for MobileGL Benchmark...") + set(CMAKE_CXX_STANDARD 23) set(CMAKE_CXX_STANDARD_REQUIRED ON) @@ -9,6 +11,10 @@ set(BENCHMARK_DOWNLOAD_DEPENDENCIES ON CACHE BOOL "Allow downloading benchmark d set(BENCHMARK_ENABLE_GTEST_TESTS OFF CACHE BOOL "Disable GTest tests") set(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "Disable testing") +set(LINK_LIBRARIES + MobileGL_s +) + include(FetchContent) FetchContent_Declare( benchmark @@ -26,8 +32,9 @@ add_executable(SanityBench SanityBench.cpp ) -target_link_libraries(SanityBench - PRIVATE benchmark::benchmark +target_link_libraries( + SanityBench PRIVATE + benchmark::benchmark ) add_test(NAME SanityBench COMMAND SanityBench --benchmark_counters_tabular=true) diff --git a/MobileGL/MG_Benchmark/Program/CMakeLists.txt b/MobileGL/MG_Benchmark/Program/CMakeLists.txt index f2fc3012..9c7ee078 100644 --- a/MobileGL/MG_Benchmark/Program/CMakeLists.txt +++ b/MobileGL/MG_Benchmark/Program/CMakeLists.txt @@ -1,71 +1,71 @@ cmake_minimum_required(VERSION 3.24) -# Add the directory containing our custom Find modules -list(APPEND CMAKE_MODULE_PATH "${MGL_ROOT}/buildsystem/cmake") +# # Add the directory containing our custom Find modules +# list(APPEND CMAKE_MODULE_PATH "${MGL_ROOT}/buildsystem/cmake") -# Find the required libraries using our custom Find modules -find_package(glslang REQUIRED) -find_package(SPIRVCross REQUIRED) -find_package(SPIRVTools) +# # Find the required libraries using our custom Find modules +# find_package(glslang REQUIRED) +# find_package(SPIRVCross REQUIRED) +# find_package(SPIRVTools) -message(STATUS "glslang_LIBRARIES: ${glslang_LIBRARIES}") -message(STATUS "SPIRVTools_LIBRARIES: ${SPIRVTools_LIBRARIES}") -message(STATUS "SPIRVCross_LIBRARIES: ${SPIRVCross_LIBRARIES}") +# message(STATUS "glslang_LIBRARIES: ${glslang_LIBRARIES}") +# message(STATUS "SPIRVTools_LIBRARIES: ${SPIRVTools_LIBRARIES}") +# message(STATUS "SPIRVCross_LIBRARIES: ${SPIRVCross_LIBRARIES}") -# Set the libraries to link against -set(LINK_LIBRARIES - ${glslang_LIBRARIES} - ${SPIRVCross_LIBRARIES} -) +# # Set the libraries to link against +# set(LINK_LIBRARIES +# ${glslang_LIBRARIES} +# ${SPIRVCross_LIBRARIES} +# ) -if (SPIRVTools_FOUND) - list(APPEND LINK_LIBRARIES ${SPIRVTools_LIBRARIES}) -endif() +# if (SPIRVTools_FOUND) +# list(APPEND LINK_LIBRARIES ${SPIRVTools_LIBRARIES}) +# endif() add_executable( ProgramBench ProgramBench.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/ProgramState/ProgramObject.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/ProgramState/ShaderObject.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/ProgramState/ProgramState.cpp - ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/Program/GL_Program.cpp +# ${MGL_ROOT}/MobileGL/MG_State/GLState/ProgramState/ProgramObject.cpp +# ${MGL_ROOT}/MobileGL/MG_State/GLState/ProgramState/ShaderObject.cpp +# ${MGL_ROOT}/MobileGL/MG_State/GLState/ProgramState/ProgramState.cpp +# ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/Program/GL_Program.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToStr/GLEnumConverter.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToGlslang/GLShaderLangConverter.cpp - ${MGL_ROOT}/MobileGL/MG_Util/ShaderTranspiler/ShaderCompiler.cpp - ${MGL_ROOT}/MobileGL/MG_Util/ShaderTranspiler/SpvcSession.cpp +# ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToStr/GLEnumConverter.cpp +# ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToGlslang/GLShaderLangConverter.cpp +# ${MGL_ROOT}/MobileGL/MG_Util/ShaderTranspiler/ShaderCompiler.cpp +# ${MGL_ROOT}/MobileGL/MG_Util/ShaderTranspiler/SpvcSession.cpp - ${MGL_ROOT}/MobileGL/MG_Util/ShaderTranspiler/glslang/UniformTraverser.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/SPIRVCrossToGL/SpvcTypeConverter.cpp +# ${MGL_ROOT}/MobileGL/MG_Util/ShaderTranspiler/glslang/UniformTraverser.cpp +# ${MGL_ROOT}/MobileGL/MG_Util/Converters/SPIRVCrossToGL/SpvcTypeConverter.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/Core.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/BufferState/BufferState.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/BufferState/BufferObject.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/VertexArrayState/VertexArrayObject.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/VertexArrayState/VertexArrayState.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/TextureState/TextureObject.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/TextureState/TextureUnit.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/TextureState/TextureState.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/ErrorState/Error.cpp - ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/Buffer/GL_Buffer.cpp - ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/Getter/GL_Getter.cpp - ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/Buffer/Validators.cpp - ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/VertexArray/Validators.cpp - ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/VertexArray/GL_VertexArray.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToStr/GLEnumConverter.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToStr/GLExtensionConverter.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToStr/BufferEnumConverter.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToStr/DataTypeConverter.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToGlslang/GLShaderLangConverter.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToGL/ErrorCodeConverter.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToGL/BufferEnumConverter.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToGL/DataTypeConverter.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToMG/BufferEnumConverter.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToMG/DataTypeConverter.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Metrics/BufferMetrics.cpp - ${MGL_ROOT}/MobileGL/MG_Backend/Init.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Debug/Log.cpp +# ${MGL_ROOT}/MobileGL/MG_State/GLState/Core.cpp +# ${MGL_ROOT}/MobileGL/MG_State/GLState/BufferState/BufferState.cpp +# ${MGL_ROOT}/MobileGL/MG_State/GLState/BufferState/BufferObject.cpp +# ${MGL_ROOT}/MobileGL/MG_State/GLState/VertexArrayState/VertexArrayObject.cpp +# ${MGL_ROOT}/MobileGL/MG_State/GLState/VertexArrayState/VertexArrayState.cpp +# ${MGL_ROOT}/MobileGL/MG_State/GLState/TextureState/TextureObject.cpp +# ${MGL_ROOT}/MobileGL/MG_State/GLState/TextureState/TextureUnit.cpp +# ${MGL_ROOT}/MobileGL/MG_State/GLState/TextureState/TextureState.cpp +# ${MGL_ROOT}/MobileGL/MG_State/GLState/ErrorState/Error.cpp +# ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/Buffer/GL_Buffer.cpp +# ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/Getter/GL_Getter.cpp +# ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/Buffer/Validators.cpp +# ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/VertexArray/Validators.cpp +# ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/VertexArray/GL_VertexArray.cpp +# ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToStr/GLEnumConverter.cpp +# ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToStr/GLExtensionConverter.cpp +# ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToStr/BufferEnumConverter.cpp +# ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToStr/DataTypeConverter.cpp +# ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToGlslang/GLShaderLangConverter.cpp +# ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToGL/ErrorCodeConverter.cpp +# ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToGL/BufferEnumConverter.cpp +# ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToGL/DataTypeConverter.cpp +# ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToMG/BufferEnumConverter.cpp +# ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToMG/DataTypeConverter.cpp +# ${MGL_ROOT}/MobileGL/MG_Util/Metrics/BufferMetrics.cpp +# ${MGL_ROOT}/MobileGL/MG_Backend/Init.cpp +# ${MGL_ROOT}/MobileGL/MG_Util/Debug/Log.cpp ) target_include_directories(ProgramBench PRIVATE @@ -74,7 +74,7 @@ target_include_directories(ProgramBench PRIVATE ) target_link_libraries( - ProgramBench + ProgramBench PRIVATE benchmark::benchmark ${LINK_LIBRARIES} ) diff --git a/MobileGL/MG_Test/Buffer/CMakeLists.txt b/MobileGL/MG_Test/Buffer/CMakeLists.txt index 16c18571..92f3f754 100644 --- a/MobileGL/MG_Test/Buffer/CMakeLists.txt +++ b/MobileGL/MG_Test/Buffer/CMakeLists.txt @@ -4,41 +4,41 @@ add_executable( BufferTest BufferTest.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/Core.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/BufferState/BufferState.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/BufferState/BufferObject.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/VertexArrayState/VertexArrayObject.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/VertexArrayState/VertexArrayState.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/TextureState/TextureObject.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/TextureState/TextureUnit.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/TextureState/TextureState.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/ErrorState/Error.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/ProgramState/ProgramObject.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/ProgramState/ShaderObject.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/ProgramState/ProgramState.cpp - ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/Program/GL_Program.cpp - ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/Buffer/GL_Buffer.cpp - ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/Getter/GL_Getter.cpp - ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/Buffer/Validators.cpp - ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/VertexArray/Validators.cpp - ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/VertexArray/GL_VertexArray.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToStr/GLEnumConverter.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToStr/GLExtensionConverter.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToStr/BufferEnumConverter.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToStr/DataTypeConverter.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToGlslang/GLShaderLangConverter.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToGL/ErrorCodeConverter.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToGL/BufferEnumConverter.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToGL/DataTypeConverter.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToMG/BufferEnumConverter.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToMG/DataTypeConverter.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Metrics/BufferMetrics.cpp - ${MGL_ROOT}/MobileGL/MG_Util/ShaderTranspiler/ShaderCompiler.cpp - ${MGL_ROOT}/MobileGL/MG_Util/ShaderTranspiler/SpvcSession.cpp - ${MGL_ROOT}/MobileGL/MG_Backend/Init.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Debug/Log.cpp - ${MGL_ROOT}/MobileGL/MG_Util/ShaderTranspiler/glslang/UniformTraverser.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/SPIRVCrossToGL/SpvcTypeConverter.cpp + # ${MGL_ROOT}/MobileGL/MG_State/GLState/Core.cpp + # ${MGL_ROOT}/MobileGL/MG_State/GLState/BufferState/BufferState.cpp + # ${MGL_ROOT}/MobileGL/MG_State/GLState/BufferState/BufferObject.cpp + # ${MGL_ROOT}/MobileGL/MG_State/GLState/VertexArrayState/VertexArrayObject.cpp + # ${MGL_ROOT}/MobileGL/MG_State/GLState/VertexArrayState/VertexArrayState.cpp + # ${MGL_ROOT}/MobileGL/MG_State/GLState/TextureState/TextureObject.cpp + # ${MGL_ROOT}/MobileGL/MG_State/GLState/TextureState/TextureUnit.cpp + # ${MGL_ROOT}/MobileGL/MG_State/GLState/TextureState/TextureState.cpp + # ${MGL_ROOT}/MobileGL/MG_State/GLState/ErrorState/Error.cpp + # ${MGL_ROOT}/MobileGL/MG_State/GLState/ProgramState/ProgramObject.cpp + # ${MGL_ROOT}/MobileGL/MG_State/GLState/ProgramState/ShaderObject.cpp + # ${MGL_ROOT}/MobileGL/MG_State/GLState/ProgramState/ProgramState.cpp + # ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/Program/GL_Program.cpp + # ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/Buffer/GL_Buffer.cpp + # ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/Getter/GL_Getter.cpp + # ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/Buffer/Validators.cpp + # ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/VertexArray/Validators.cpp + # ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/VertexArray/GL_VertexArray.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToStr/GLEnumConverter.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToStr/GLExtensionConverter.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToStr/BufferEnumConverter.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToStr/DataTypeConverter.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToGlslang/GLShaderLangConverter.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToGL/ErrorCodeConverter.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToGL/BufferEnumConverter.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToGL/DataTypeConverter.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToMG/BufferEnumConverter.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToMG/DataTypeConverter.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/Metrics/BufferMetrics.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/ShaderTranspiler/ShaderCompiler.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/ShaderTranspiler/SpvcSession.cpp + # ${MGL_ROOT}/MobileGL/MG_Backend/Init.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/Debug/Log.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/ShaderTranspiler/glslang/UniformTraverser.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/Converters/SPIRVCrossToGL/SpvcTypeConverter.cpp ) target_include_directories(BufferTest PRIVATE @@ -47,7 +47,7 @@ target_include_directories(BufferTest PRIVATE ) target_link_libraries( - BufferTest + BufferTest PRIVATE GTest::gtest_main ${LINK_LIBRARIES} ) diff --git a/MobileGL/MG_Test/CMakeLists.txt b/MobileGL/MG_Test/CMakeLists.txt index ff8235ef..e97816d0 100644 --- a/MobileGL/MG_Test/CMakeLists.txt +++ b/MobileGL/MG_Test/CMakeLists.txt @@ -1,13 +1,15 @@ cmake_minimum_required(VERSION 3.14) project(MobileGLTest) +message(STATUS "Generating build files for MobileGL Test...") + set(CMAKE_CXX_STANDARD 23) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(MGL_ROOT ${CMAKE_CURRENT_LIST_DIR}/../..) -# Add the directory containing our custom Find modules -list(APPEND CMAKE_MODULE_PATH "${MGL_ROOT}/buildsystem/cmake") +# # Add the directory containing our custom Find modules +# list(APPEND CMAKE_MODULE_PATH "${MGL_ROOT}/buildsystem/cmake") include(FetchContent) FetchContent_Declare( @@ -21,10 +23,10 @@ FetchContent_MakeAvailable(googletest) enable_testing() -# Find the required libraries using our custom Find modules -find_package(glslang REQUIRED) -find_package(SPIRVCross REQUIRED) -find_package(SPIRVTools) +# # Find the required libraries using our custom Find modules +# find_package(glslang REQUIRED) +# find_package(SPIRVCross REQUIRED) +# find_package(SPIRVTools) add_executable( SanityTest @@ -35,20 +37,24 @@ target_link_libraries( GTest::gtest_main ) -message(STATUS "glslang_LIBRARIES: ${glslang_LIBRARIES}") -message(STATUS "SPIRVTools_LIBRARIES: ${SPIRVTools_LIBRARIES}") -message(STATUS "SPIRVCross_LIBRARIES: ${SPIRVCross_LIBRARIES}") +# message(STATUS "glslang_LIBRARIES: ${glslang_LIBRARIES}") +# message(STATUS "SPIRVTools_LIBRARIES: ${SPIRVTools_LIBRARIES}") +# message(STATUS "SPIRVCross_LIBRARIES: ${SPIRVCross_LIBRARIES}") + +# # Set the libraries to link against +# set(LINK_LIBRARIES +# ${glslang_LIBRARIES} +# ${SPIRVCross_LIBRARIES} +# ) + +# if (SPIRVTools_FOUND) +# list(APPEND LINK_LIBRARIES ${SPIRVTools_LIBRARIES}) +# endif() -# Set the libraries to link against set(LINK_LIBRARIES - ${glslang_LIBRARIES} - ${SPIRVCross_LIBRARIES} + MobileGL_s ) -if (SPIRVTools_FOUND) - list(APPEND LINK_LIBRARIES ${SPIRVTools_LIBRARIES}) -endif() - include(GoogleTest) gtest_discover_tests(SanityTest) diff --git a/MobileGL/MG_Test/Program/CMakeLists.txt b/MobileGL/MG_Test/Program/CMakeLists.txt index 9b2aa5d2..85f43c9e 100644 --- a/MobileGL/MG_Test/Program/CMakeLists.txt +++ b/MobileGL/MG_Test/Program/CMakeLists.txt @@ -26,46 +26,46 @@ add_executable( ProgramTest ProgramTest.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/ProgramState/ProgramObject.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/ProgramState/ShaderObject.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/ProgramState/ProgramState.cpp - ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/Program/GL_Program.cpp + # ${MGL_ROOT}/MobileGL/MG_State/GLState/ProgramState/ProgramObject.cpp + # ${MGL_ROOT}/MobileGL/MG_State/GLState/ProgramState/ShaderObject.cpp + # ${MGL_ROOT}/MobileGL/MG_State/GLState/ProgramState/ProgramState.cpp + # ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/Program/GL_Program.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToStr/GLEnumConverter.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToGlslang/GLShaderLangConverter.cpp - ${MGL_ROOT}/MobileGL/MG_Util/ShaderTranspiler/ShaderCompiler.cpp - ${MGL_ROOT}/MobileGL/MG_Util/ShaderTranspiler/SpvcSession.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToStr/GLEnumConverter.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToGlslang/GLShaderLangConverter.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/ShaderTranspiler/ShaderCompiler.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/ShaderTranspiler/SpvcSession.cpp - ${MGL_ROOT}/MobileGL/MG_Util/ShaderTranspiler/glslang/UniformTraverser.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/SPIRVCrossToGL/SpvcTypeConverter.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/ShaderTranspiler/glslang/UniformTraverser.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/Converters/SPIRVCrossToGL/SpvcTypeConverter.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/Core.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/BufferState/BufferState.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/BufferState/BufferObject.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/VertexArrayState/VertexArrayObject.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/VertexArrayState/VertexArrayState.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/TextureState/TextureObject.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/TextureState/TextureUnit.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/TextureState/TextureState.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/ErrorState/Error.cpp - ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/Buffer/GL_Buffer.cpp - ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/Getter/GL_Getter.cpp - ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/Buffer/Validators.cpp - ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/VertexArray/Validators.cpp - ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/VertexArray/GL_VertexArray.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToStr/GLEnumConverter.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToStr/GLExtensionConverter.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToStr/BufferEnumConverter.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToStr/DataTypeConverter.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToGlslang/GLShaderLangConverter.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToGL/ErrorCodeConverter.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToGL/BufferEnumConverter.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToGL/DataTypeConverter.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToMG/BufferEnumConverter.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToMG/DataTypeConverter.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Metrics/BufferMetrics.cpp - ${MGL_ROOT}/MobileGL/MG_Backend/Init.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Debug/Log.cpp + # ${MGL_ROOT}/MobileGL/MG_State/GLState/Core.cpp + # ${MGL_ROOT}/MobileGL/MG_State/GLState/BufferState/BufferState.cpp + # ${MGL_ROOT}/MobileGL/MG_State/GLState/BufferState/BufferObject.cpp + # ${MGL_ROOT}/MobileGL/MG_State/GLState/VertexArrayState/VertexArrayObject.cpp + # ${MGL_ROOT}/MobileGL/MG_State/GLState/VertexArrayState/VertexArrayState.cpp + # ${MGL_ROOT}/MobileGL/MG_State/GLState/TextureState/TextureObject.cpp + # ${MGL_ROOT}/MobileGL/MG_State/GLState/TextureState/TextureUnit.cpp + # ${MGL_ROOT}/MobileGL/MG_State/GLState/TextureState/TextureState.cpp + # ${MGL_ROOT}/MobileGL/MG_State/GLState/ErrorState/Error.cpp + # ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/Buffer/GL_Buffer.cpp + # ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/Getter/GL_Getter.cpp + # ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/Buffer/Validators.cpp + # ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/VertexArray/Validators.cpp + # ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/VertexArray/GL_VertexArray.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToStr/GLEnumConverter.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToStr/GLExtensionConverter.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToStr/BufferEnumConverter.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToStr/DataTypeConverter.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToGlslang/GLShaderLangConverter.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToGL/ErrorCodeConverter.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToGL/BufferEnumConverter.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToGL/DataTypeConverter.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToMG/BufferEnumConverter.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToMG/DataTypeConverter.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/Metrics/BufferMetrics.cpp + # ${MGL_ROOT}/MobileGL/MG_Backend/Init.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/Debug/Log.cpp ) target_include_directories(ProgramTest PRIVATE @@ -74,7 +74,7 @@ target_include_directories(ProgramTest PRIVATE ) target_link_libraries( - ProgramTest + ProgramTest PRIVATE GTest::gtest_main ${LINK_LIBRARIES} ) diff --git a/MobileGL/MG_Test/VertexArray/CMakeLists.txt b/MobileGL/MG_Test/VertexArray/CMakeLists.txt index dcbdd056..5bca8ff7 100644 --- a/MobileGL/MG_Test/VertexArray/CMakeLists.txt +++ b/MobileGL/MG_Test/VertexArray/CMakeLists.txt @@ -4,41 +4,41 @@ add_executable( VertexArrayTest VertexArrayTest.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/Core.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/BufferState/BufferState.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/BufferState/BufferObject.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/VertexArrayState/VertexArrayObject.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/VertexArrayState/VertexArrayState.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/TextureState/TextureObject.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/TextureState/TextureUnit.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/TextureState/TextureState.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/ErrorState/Error.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/ProgramState/ProgramObject.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/ProgramState/ShaderObject.cpp - ${MGL_ROOT}/MobileGL/MG_State/GLState/ProgramState/ProgramState.cpp - ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/Program/GL_Program.cpp - ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/Buffer/GL_Buffer.cpp - ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/Getter/GL_Getter.cpp - ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/Buffer/Validators.cpp - ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/VertexArray/Validators.cpp - ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/VertexArray/GL_VertexArray.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToStr/GLEnumConverter.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToStr/GLExtensionConverter.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToStr/BufferEnumConverter.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToStr/DataTypeConverter.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToGlslang/GLShaderLangConverter.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToGL/ErrorCodeConverter.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToGL/BufferEnumConverter.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToGL/DataTypeConverter.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToMG/BufferEnumConverter.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToMG/DataTypeConverter.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Metrics/BufferMetrics.cpp - ${MGL_ROOT}/MobileGL/MG_Util/ShaderTranspiler/ShaderCompiler.cpp - ${MGL_ROOT}/MobileGL/MG_Util/ShaderTranspiler/SpvcSession.cpp - ${MGL_ROOT}/MobileGL/MG_Backend/Init.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Debug/Log.cpp - ${MGL_ROOT}/MobileGL/MG_Util/ShaderTranspiler/glslang/UniformTraverser.cpp - ${MGL_ROOT}/MobileGL/MG_Util/Converters/SPIRVCrossToGL/SpvcTypeConverter.cpp + # ${MGL_ROOT}/MobileGL/MG_State/GLState/Core.cpp + # ${MGL_ROOT}/MobileGL/MG_State/GLState/BufferState/BufferState.cpp + # ${MGL_ROOT}/MobileGL/MG_State/GLState/BufferState/BufferObject.cpp + # ${MGL_ROOT}/MobileGL/MG_State/GLState/VertexArrayState/VertexArrayObject.cpp + # ${MGL_ROOT}/MobileGL/MG_State/GLState/VertexArrayState/VertexArrayState.cpp + # ${MGL_ROOT}/MobileGL/MG_State/GLState/TextureState/TextureObject.cpp + # ${MGL_ROOT}/MobileGL/MG_State/GLState/TextureState/TextureUnit.cpp + # ${MGL_ROOT}/MobileGL/MG_State/GLState/TextureState/TextureState.cpp + # ${MGL_ROOT}/MobileGL/MG_State/GLState/ErrorState/Error.cpp + # ${MGL_ROOT}/MobileGL/MG_State/GLState/ProgramState/ProgramObject.cpp + # ${MGL_ROOT}/MobileGL/MG_State/GLState/ProgramState/ShaderObject.cpp + # ${MGL_ROOT}/MobileGL/MG_State/GLState/ProgramState/ProgramState.cpp + # ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/Program/GL_Program.cpp + # ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/Buffer/GL_Buffer.cpp + # ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/Getter/GL_Getter.cpp + # ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/Buffer/Validators.cpp + # ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/VertexArray/Validators.cpp + # ${MGL_ROOT}/MobileGL/MG_Impl/GLImpl/VertexArray/GL_VertexArray.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToStr/GLEnumConverter.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToStr/GLExtensionConverter.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToStr/BufferEnumConverter.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToStr/DataTypeConverter.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToGlslang/GLShaderLangConverter.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToGL/ErrorCodeConverter.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToGL/BufferEnumConverter.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/Converters/MGToGL/DataTypeConverter.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToMG/BufferEnumConverter.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/Converters/GLToMG/DataTypeConverter.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/Metrics/BufferMetrics.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/ShaderTranspiler/ShaderCompiler.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/ShaderTranspiler/SpvcSession.cpp + # ${MGL_ROOT}/MobileGL/MG_Backend/Init.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/Debug/Log.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/ShaderTranspiler/glslang/UniformTraverser.cpp + # ${MGL_ROOT}/MobileGL/MG_Util/Converters/SPIRVCrossToGL/SpvcTypeConverter.cpp ) target_include_directories(VertexArrayTest PRIVATE @@ -47,7 +47,7 @@ target_include_directories(VertexArrayTest PRIVATE ) target_link_libraries( - VertexArrayTest + VertexArrayTest PRIVATE GTest::gtest_main ${LINK_LIBRARIES} ) From 5354ff04c62b6f67128f7cb8286fd0c7e766e695 Mon Sep 17 00:00:00 2001 From: Swung0x48 Date: Mon, 25 Aug 2025 15:49:18 +0800 Subject: [PATCH 02/10] [Fix] (workflow): fix typo --- .github/workflows/test.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 19ff0bf7..1ead8bf7 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -42,7 +42,6 @@ jobs: - name: Configure CMake working-directory: ${{env.TEST_ROOT}} run: | - | if [ "${{ secrets.ACTIONS_STEP_DEBUG }}" == "true" ]; then cmake -S . -B build-test -DCMAKE_BUILD_TYPE=Debug -DBUILD_TEST=ON -DBUILD_BENCHMARK=OFF else From d9e7b9c975328010ffb4df9c1942abbec0ef40db Mon Sep 17 00:00:00 2001 From: Swung0x48 Date: Mon, 25 Aug 2025 15:53:20 +0800 Subject: [PATCH 03/10] [Fix] (workflow): Update glslang external sources --- .github/workflows/benchmark.yml | 16 +++------------- .github/workflows/test.yml | 16 +++------------- 2 files changed, 6 insertions(+), 26 deletions(-) diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index 2a6228fa..03dc1c16 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -25,19 +25,9 @@ jobs: - name: Get CMake uses: lukka/get-cmake@latest - - name: Prepare Vulkan SDK - uses: humbletim/setup-vulkan-sdk@v1.2.1 - with: - vulkan-query-version: 1.4.304.1 - vulkan-components: Glslang, SPIRV-Cross, SPIRV-Tools, SPIRV-Reflect, SPIRV-Headers - vulkan-use-cache: true - - - name: Test Vulkan SDK Install - run: | - echo "Vulkan SDK Version=='$VULKAN_SDK_VERSION'" - echo "VULKAN_SDK=='$VULKAN_SDK'" - test -n "$VULKAN_SDK_VERSION" || exit 4 - ls $VULKAN_SDK/lib + - name: Update glslang external sources + working-directory: ${{env.TEST_ROOT}}/3rdparty/glslang + run: python update_glslang_sources.py - name: Configure CMake working-directory: ${{env.BENCH_ROOT}} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1ead8bf7..bbef55d4 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -25,19 +25,9 @@ jobs: - name: Get CMake uses: lukka/get-cmake@latest - - name: Prepare Vulkan SDK - uses: humbletim/setup-vulkan-sdk@v1.2.1 - with: - vulkan-query-version: 1.4.321.1 - vulkan-components: Glslang, SPIRV-Cross, SPIRV-Tools, SPIRV-Reflect, SPIRV-Headers - vulkan-use-cache: true - - - name: Test Vulkan SDK Install - run: | - echo "Vulkan SDK Version=='$VULKAN_SDK_VERSION'" - echo "VULKAN_SDK=='$VULKAN_SDK'" - test -n "$VULKAN_SDK_VERSION" || exit 4 - ls $VULKAN_SDK/lib + - name: Update glslang external sources + working-directory: ${{env.TEST_ROOT}}/3rdparty/glslang + run: python update_glslang_sources.py - name: Configure CMake working-directory: ${{env.TEST_ROOT}} From c723d1c9b95b904eb84afd7360843659697ab14b Mon Sep 17 00:00:00 2001 From: Swung0x48 Date: Mon, 25 Aug 2025 15:58:01 +0800 Subject: [PATCH 04/10] [Fix] (workflow): fix typo --- .github/workflows/benchmark.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index 03dc1c16..4282c0b5 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -26,7 +26,7 @@ jobs: uses: lukka/get-cmake@latest - name: Update glslang external sources - working-directory: ${{env.TEST_ROOT}}/3rdparty/glslang + working-directory: ${{env.BENCH_ROOT}}/3rdparty/glslang run: python update_glslang_sources.py - name: Configure CMake From 281a28f901f793943c3c95a4923b80f1cab7a527 Mon Sep 17 00:00:00 2001 From: Swung0x48 Date: Mon, 25 Aug 2025 16:00:35 +0800 Subject: [PATCH 05/10] [Fix] (workflow): add -DCMAKE_POLICY_VERSION_MINIMUM=3.5 to silence cmake version check --- .github/workflows/benchmark.yml | 2 +- .github/workflows/test.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index 4282c0b5..534999b0 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -31,7 +31,7 @@ jobs: - name: Configure CMake working-directory: ${{env.BENCH_ROOT}} - run: cmake -S . -B build-bench -DCMAKE_BUILD_TYPE=Release -DBENCHMARK_DOWNLOAD_DEPENDENCIES=ON -DBENCHMARK_ENABLE_TESTING=OFF -DBUILD_TEST=OFF -DBUILD_BENCHMARK=ON + run: cmake -S . -B build-bench -DCMAKE_BUILD_TYPE=Release -DBENCHMARK_DOWNLOAD_DEPENDENCIES=ON -DBENCHMARK_ENABLE_TESTING=OFF -DBUILD_TEST=OFF -DBUILD_BENCHMARK=ON -DCMAKE_POLICY_VERSION_MINIMUM=3.5 - name: Build working-directory: ${{env.BENCH_ROOT}}/build-bench diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index bbef55d4..3a595469 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -33,9 +33,9 @@ jobs: working-directory: ${{env.TEST_ROOT}} run: | if [ "${{ secrets.ACTIONS_STEP_DEBUG }}" == "true" ]; then - cmake -S . -B build-test -DCMAKE_BUILD_TYPE=Debug -DBUILD_TEST=ON -DBUILD_BENCHMARK=OFF + cmake -S . -B build-test -DCMAKE_BUILD_TYPE=Debug -DBUILD_TEST=ON -DBUILD_BENCHMARK=OFF -DCMAKE_POLICY_VERSION_MINIMUM=3.5 else - cmake -S . -B build-test -DCMAKE_BUILD_TYPE=Release -DBUILD_TEST=ON -DBUILD_BENCHMARK=OFF + cmake -S . -B build-test -DCMAKE_BUILD_TYPE=Release -DBUILD_TEST=ON -DBUILD_BENCHMARK=OFF -DCMAKE_POLICY_VERSION_MINIMUM=3.5 fi - name: Build From c8e46fb6e2d76e912f67dcf20caeceba0e0a6b91 Mon Sep 17 00:00:00 2001 From: Swung0x48 Date: Mon, 25 Aug 2025 16:04:31 +0800 Subject: [PATCH 06/10] [Chore] (workflow): let's build with all the cores available --- .github/workflows/benchmark.yml | 2 +- .github/workflows/test.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index 534999b0..0dd6bb75 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -35,7 +35,7 @@ jobs: - name: Build working-directory: ${{env.BENCH_ROOT}}/build-bench - run: cmake --build . --parallel 4 + run: cmake --build . --parallel ${nproc} - name: Benchmark working-directory: ${{env.BENCH_ROOT}}/build-bench diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3a595469..779d8a59 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -40,7 +40,7 @@ jobs: - name: Build working-directory: ${{env.TEST_ROOT}}/build-test - run: cmake --build . --parallel 4 + run: cmake --build . --parallel ${nproc} - name: Test working-directory: ${{env.TEST_ROOT}}/build-test From f5c3f1274639cd10a983983e1fe036a756c50782 Mon Sep 17 00:00:00 2001 From: Swung0x48 Date: Mon, 25 Aug 2025 16:08:25 +0800 Subject: [PATCH 07/10] [Chore] (workflow): attempt to get rid of swap --- .github/workflows/benchmark.yml | 8 ++++---- .github/workflows/test.yml | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index 0dd6bb75..d5aaec7f 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -12,10 +12,10 @@ jobs: BENCH_ROOT: ${{github.workspace}} steps: - - name: Set Swap Space - uses: pierotofy/set-swap-space@master - with: - swap-size-gb: 32 + # - name: Set Swap Space + # uses: pierotofy/set-swap-space@master + # with: + # swap-size-gb: 32 - name: Checkout repo uses: actions/checkout@v4 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 779d8a59..d2609e04 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -12,10 +12,10 @@ jobs: TEST_ROOT: ${{github.workspace}} steps: - - name: Set Swap Space - uses: pierotofy/set-swap-space@master - with: - swap-size-gb: 32 + # - name: Set Swap Space + # uses: pierotofy/set-swap-space@master + # with: + # swap-size-gb: 32 - name: Checkout repo uses: actions/checkout@v4 From e5b91eaebab628dd3fa8645c5f89c51151e60b05 Mon Sep 17 00:00:00 2001 From: Swung0x48 Date: Mon, 25 Aug 2025 16:13:39 +0800 Subject: [PATCH 08/10] [Fix] (buildsystem): enable PIC --- CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 47652a5b..7a684afa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,6 +10,8 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) +set(CMAKE_POSITION_INDEPENDENT_CODE ON) + set(SPIRV_CROSS_STATIC ON CACHE BOOL "Build SPIRV-Cross as static library") set(SPIRV_CROSS_CLI OFF CACHE BOOL "Build SPIRV-Cross command line tool") From c601169b842ea1b105580e817adb2a4b7e7845b0 Mon Sep 17 00:00:00 2001 From: Swung0x48 Date: Mon, 25 Aug 2025 16:15:32 +0800 Subject: [PATCH 09/10] [Fix] (buildsystem): revert back to use 4 threads to compile --- .github/workflows/benchmark.yml | 10 +++++----- .github/workflows/test.yml | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index d5aaec7f..534999b0 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -12,10 +12,10 @@ jobs: BENCH_ROOT: ${{github.workspace}} steps: - # - name: Set Swap Space - # uses: pierotofy/set-swap-space@master - # with: - # swap-size-gb: 32 + - name: Set Swap Space + uses: pierotofy/set-swap-space@master + with: + swap-size-gb: 32 - name: Checkout repo uses: actions/checkout@v4 @@ -35,7 +35,7 @@ jobs: - name: Build working-directory: ${{env.BENCH_ROOT}}/build-bench - run: cmake --build . --parallel ${nproc} + run: cmake --build . --parallel 4 - name: Benchmark working-directory: ${{env.BENCH_ROOT}}/build-bench diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index d2609e04..3a595469 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -12,10 +12,10 @@ jobs: TEST_ROOT: ${{github.workspace}} steps: - # - name: Set Swap Space - # uses: pierotofy/set-swap-space@master - # with: - # swap-size-gb: 32 + - name: Set Swap Space + uses: pierotofy/set-swap-space@master + with: + swap-size-gb: 32 - name: Checkout repo uses: actions/checkout@v4 @@ -40,7 +40,7 @@ jobs: - name: Build working-directory: ${{env.TEST_ROOT}}/build-test - run: cmake --build . --parallel ${nproc} + run: cmake --build . --parallel 4 - name: Test working-directory: ${{env.TEST_ROOT}}/build-test From 7b9c154f857c5cfe0e885f816fc7ff6c0629fd4b Mon Sep 17 00:00:00 2001 From: Swung0x48 Date: Mon, 25 Aug 2025 16:27:33 +0800 Subject: [PATCH 10/10] [Fix] (workflow): fix wrong run path --- .github/workflows/benchmark.yml | 2 +- .github/workflows/test.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index 534999b0..7f185ba6 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -38,5 +38,5 @@ jobs: run: cmake --build . --parallel 4 - name: Benchmark - working-directory: ${{env.BENCH_ROOT}}/build-bench + working-directory: ${{env.BENCH_ROOT}}/build-bench/MobileGL/MG_Benchmark run: ctest -V -C Release \ No newline at end of file diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3a595469..f6d339ee 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -43,7 +43,7 @@ jobs: run: cmake --build . --parallel 4 - name: Test - working-directory: ${{env.TEST_ROOT}}/build-test + working-directory: ${{env.TEST_ROOT}}/build-test/MobileGL/MG_Test run: | if [ "${{ secrets.ACTIONS_STEP_DEBUG }}" == "true" ]; then ctest -V