From 8ca1f19aa2c1ad980e6295531df84a7d0bd91d9a Mon Sep 17 00:00:00 2001 From: Recep Aslantas Date: Fri, 24 Jan 2025 22:20:57 +0300 Subject: [PATCH 1/8] arm: use glmm_div where possible to fix ARMv7 <-> ARM64 --- include/cglm/vec4.h | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/include/cglm/vec4.h b/include/cglm/vec4.h index c8bc15b..84fa25e 100644 --- a/include/cglm/vec4.h +++ b/include/cglm/vec4.h @@ -527,11 +527,7 @@ CGLM_INLINE void glm_vec4_divs(vec4 v, float s, vec4 dest) { #if defined(__wasm__) && defined(__wasm_simd128__) - glmm_store(dest, wasm_f32x4_div(glmm_load(v), wasm_f32x4_splat(s))); -#elif defined( __SSE__ ) || defined( __SSE2__ ) - glmm_store(dest, _mm_div_ps(glmm_load(v), _mm_set1_ps(s))); -#elif defined(CGLM_NEON_FP) - vst1q_f32(dest, vdivq_f32(vld1q_f32(v), vdupq_n_f32(s))); +#if defined(CGLM_SIMD) #else glm_vec4_scale(v, 1.0f / s, dest); #endif @@ -926,7 +922,7 @@ glm_vec4_normalize_to(vec4 v, vec4 dest) { return; } - glmm_store(dest, wasm_f32x4_div(x0, wasm_f32x4_sqrt(xdot))); + glmm_store(dest, glmm_div(x0, wasm_f32x4_sqrt(xdot))); #elif defined( __SSE__ ) || defined( __SSE2__ ) __m128 xdot, x0; float dot; @@ -940,7 +936,7 @@ glm_vec4_normalize_to(vec4 v, vec4 dest) { return; } - glmm_store(dest, _mm_div_ps(x0, _mm_sqrt_ps(xdot))); + glmm_store(dest, glmm_div(x0, _mm_sqrt_ps(xdot))); #else float norm; From 70a1a946ee223ef49f5908a4f14f7d53c3c03d92 Mon Sep 17 00:00:00 2001 From: Recep Aslantas Date: Fri, 24 Jan 2025 22:21:11 +0300 Subject: [PATCH 2/8] arm: use glmm_div where possible to fix ARMv7 <-> ARM64 --- include/cglm/vec4.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/cglm/vec4.h b/include/cglm/vec4.h index 84fa25e..c4ec27d 100644 --- a/include/cglm/vec4.h +++ b/include/cglm/vec4.h @@ -526,8 +526,8 @@ glm_vec4_div(vec4 a, vec4 b, vec4 dest) { CGLM_INLINE void glm_vec4_divs(vec4 v, float s, vec4 dest) { -#if defined(__wasm__) && defined(__wasm_simd128__) #if defined(CGLM_SIMD) + glmm_store(dest, glmm_div(glmm_load(v), glmm_set1(s))); #else glm_vec4_scale(v, 1.0f / s, dest); #endif From 042d84f058ce57beb8217ba116c4c20340980d1b Mon Sep 17 00:00:00 2001 From: Recep Aslantas Date: Sat, 25 Jan 2025 10:58:48 +0300 Subject: [PATCH 3/8] ci: add arm builds --- .github/workflows/ci.yml | 165 +++++++++++++++++++++++++++++++++++---- 1 file changed, 149 insertions(+), 16 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b4084a5..abdefb8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,8 +13,21 @@ jobs: strategy: fail-fast: false matrix: - os: [macos-13, macos-14, ubuntu-22.04, ubuntu-24.04] - simd: [none, sse, sse2, sse3, sse4, avx, avx2, neon] + include: + # x86/x64 builds + - os: macos-13 + simd: [none, sse, sse2, sse3, sse4, avx, avx2] + - os: macos-14 + simd: [none, sse, sse2, sse3, sse4, avx, avx2] + - os: ubuntu-22.04 + simd: [none, sse, sse2, sse3, sse4, avx, avx2] + - os: ubuntu-24.04 + simd: [none, sse, sse2, sse3, sse4, avx, avx2] + # ARM64 builds + - os: [ubuntu-22.04-arm64] + simd: [neon] + - os: [ubuntu-24.04-arm64] + simd: [neon] steps: - uses: actions/checkout@v4 @@ -81,18 +94,23 @@ jobs: run: cmake --build build build_cmake_ubuntu: - name: CMake / ${{ matrix.target.os }} / ${{ matrix.target.cc }} / ${{ matrix.simd }} - runs-on: ${{ matrix.target.os }} + name: CMake / ${{ matrix.target.os }} / ${{ matrix.target.cc }} / ${{ matrix.arch }} / ${{ matrix.simd }} + runs-on: ${{ matrix.target.arch == 'arm64' && 'ubuntu-latest-arm64' || matrix.target.os }} strategy: fail-fast: false matrix: target: - - { os: ubuntu-20.04, cc: gcc-11 } - - { os: ubuntu-22.04, cc: gcc-12 } - - { os: ubuntu-24.04, cc: gcc-13 } - - { os: ubuntu-20.04, cc: clang-12 } - - { os: ubuntu-22.04, cc: clang-15 } - simd: [none, sse, sse2, sse3, sse4, avx, avx2, neon] + # x86/x64 builds + - { os: ubuntu-20.04, cc: gcc-11, arch: x64 } + - { os: ubuntu-22.04, cc: gcc-12, arch: x64 } + - { os: ubuntu-24.04, cc: gcc-13, arch: x64 } + - { os: ubuntu-20.04, cc: clang-12, arch: x64 } + - { os: ubuntu-22.04, cc: clang-15, arch: x64 } + # ARM64 builds + - { os: ubuntu-latest, cc: gcc-12, arch: arm64 } + - { os: ubuntu-latest, cc: gcc-13, arch: arm64 } + simd: + - ${{ (matrix.target.arch == 'arm64' || matrix.target.arch == 'armv7') && 'neon' || matrix.target.arch == 'x64' && ['none', 'sse', 'sse2', 'sse3', 'sse4', 'avx', 'avx2'] }} steps: - uses: actions/checkout@v4 @@ -130,7 +148,36 @@ jobs: fi - name: Configure CMake - run: cmake -B build -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=${{ matrix.target.cc }} -DCMAKE_C_FLAGS="$CFLAGS" -DCGLM_STATIC=ON -DCGLM_USE_TEST=ON + run: | + if [ "${{ matrix.target.arch }}" == "armv7" ]; then + # Build for ARMv7 + neon_flags="" + if [ "${{ matrix.simd }}" == "neon" ]; then + neon_flags="-mfpu=neon -mfloat-abi=hard" + fi + cmake -B build -GNinja -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_C_COMPILER=${{ matrix.target.cc }} \ + -DCMAKE_C_FLAGS="$CFLAGS -m32 -march=armv7-a ${neon_flags}" \ + -DCGLM_STATIC=ON -DCGLM_USE_TEST=ON + elif [ "${{ matrix.target.arch }}" == "arm64" ]; then + # Build for ARM64 (AArch64) + neon_flags="" + if [ "${{ matrix.simd }}" == "neon" ]; then + neon_flags="+simd" # Enable SIMD/NEON features on ARM64 + else + neon_flags="+nosimd" # Explicitly disable SIMD/NEON + fi + cmake -B build -GNinja -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_C_COMPILER=${{ matrix.target.cc }} \ + -DCMAKE_C_FLAGS="$CFLAGS -march=armv8-a${neon_flags}" \ + -DCGLM_STATIC=ON -DCGLM_USE_TEST=ON + else + # Normal build (x86/x64) + cmake -B build -GNinja -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_C_COMPILER=${{ matrix.target.cc }} \ + -DCMAKE_C_FLAGS="$CFLAGS" \ + -DCGLM_STATIC=ON -DCGLM_USE_TEST=ON + fi - name: Build run: cmake --build build @@ -176,8 +223,13 @@ jobs: strategy: fail-fast: false matrix: - os: [macos-13, macos-14, windows-2022] - simd: [none, sse, sse2, sse3, sse4, avx, avx2, neon] + include: + # x86/x64 builds + - os: [macos-13, macos-14, windows-2022] + simd: [none, sse, sse2, sse3, sse4, avx, avx2] + # ARM64 builds + - os: [macos-14-arm64] + simd: [neon] steps: - uses: actions/checkout@v4 @@ -258,12 +310,17 @@ jobs: build_meson: name: Meson / ${{ matrix.os }} / ${{ matrix.simd }} - runs-on: ${{ matrix.os }} + runs-on: ${{ contains(matrix.os, 'arm64') && 'ubuntu-latest-arm64' || matrix.os }} strategy: fail-fast: false matrix: - os: [macos-14, ubuntu-22.04, ubuntu-24.04, windows-2022] - simd: [none, sse, sse2, sse3, sse4, avx, avx2, neon] + include: + # x86/x64 builds + - os: [macos-14, ubuntu-22.04, ubuntu-24.04, windows-2022] + simd: [none, sse, sse2, sse3, sse4, avx, avx2] + # ARM64 builds + - os: ubuntu-latest-arm64 + simd: [neon] steps: - uses: actions/checkout@v4 @@ -415,3 +472,79 @@ jobs: - name: Build run: swift build + + build_cmake_arm: + name: CMake / ARM / ${{ matrix.os }} / ${{ matrix.arch }} / ${{ matrix.simd }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + include: + # Linux ARM builds + - os: ubuntu-latest-arm64 + arch: arm64 + simd: neon + - os: ubuntu-latest-arm64 + arch: armv7 + simd: neon + - os: ubuntu-latest-arm64 + arch: armv7 + simd: none + # Windows ARM builds + - os: windows-latest-arm64 + arch: arm64 + simd: neon + - os: windows-latest-arm64 + arch: arm + simd: neon + - os: windows-latest-arm64 + arch: arm + simd: none + + steps: + - uses: actions/checkout@v4 + + - name: Configure CMake (Windows) + if: runner.os == 'Windows' + shell: pwsh + run: | + $flags = "" + if ("${{ matrix.arch }}" -eq "arm") { + $flags = "-m32 -march=armv7-a" + if ("${{ matrix.simd }}" -eq "neon") { + $flags += " -mfpu=neon" + } + } + elseif ("${{ matrix.simd }}" -eq "neon") { + $flags = "-march=armv8-a+simd" + } + + cmake -B build -G "Visual Studio 17 2022" -A ${{ matrix.arch == 'arm64' && 'ARM64' || 'ARM' }} ` + -DCMAKE_BUILD_TYPE=Release ` + -DCMAKE_C_FLAGS="$flags" ` + -DCGLM_STATIC=ON -DCGLM_USE_TEST=ON + + - name: Configure CMake (Unix) + if: runner.os != 'Windows' + shell: bash + run: | + flags="" + if [ "${{ matrix.arch }}" = "armv7" ]; then + flags="-m32 -march=armv7-a" + if [ "${{ matrix.simd }}" = "neon" ]; then + flags="$flags -mfpu=neon -mfloat-abi=hard" + fi + elif [ "${{ matrix.simd }}" = "neon" ]; then + flags="-march=armv8-a+simd" + fi + + cmake -B build -GNinja -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_C_FLAGS="$flags" \ + -DCGLM_STATIC=ON -DCGLM_USE_TEST=ON + + - name: Build + run: cmake --build build + + - name: Test + working-directory: build + run: ./tests From 5770fdb336c3df81de9410fd10344e8215bf1c32 Mon Sep 17 00:00:00 2001 From: Recep Aslantas Date: Sat, 25 Jan 2025 11:08:06 +0300 Subject: [PATCH 4/8] ci: add arm builds --- .github/workflows/ci.yml | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index abdefb8..cf0f498 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -94,23 +94,24 @@ jobs: run: cmake --build build build_cmake_ubuntu: - name: CMake / ${{ matrix.target.os }} / ${{ matrix.target.cc }} / ${{ matrix.arch }} / ${{ matrix.simd }} + name: CMake / ${{ matrix.target.os }} / ${{ matrix.target.cc }} / ${{ matrix.target.arch }} / ${{ matrix.simd }} runs-on: ${{ matrix.target.arch == 'arm64' && 'ubuntu-latest-arm64' || matrix.target.os }} strategy: fail-fast: false matrix: target: # x86/x64 builds - - { os: ubuntu-20.04, cc: gcc-11, arch: x64 } - - { os: ubuntu-22.04, cc: gcc-12, arch: x64 } - - { os: ubuntu-24.04, cc: gcc-13, arch: x64 } - - { os: ubuntu-20.04, cc: clang-12, arch: x64 } - - { os: ubuntu-22.04, cc: clang-15, arch: x64 } + - { os: ubuntu-20.04, cc: gcc-11, arch: x64, simd: [none, sse, sse2, sse3, sse4, avx, avx2] } + - { os: ubuntu-22.04, cc: gcc-12, arch: x64, simd: [none, sse, sse2, sse3, sse4, avx, avx2] } + - { os: ubuntu-24.04, cc: gcc-13, arch: x64, simd: [none, sse, sse2, sse3, sse4, avx, avx2] } + - { os: ubuntu-20.04, cc: clang-12, arch: x64, simd: [none, sse, sse2, sse3, sse4, avx, avx2] } + - { os: ubuntu-22.04, cc: clang-15, arch: x64, simd: [none, sse, sse2, sse3, sse4, avx, avx2] } # ARM64 builds - - { os: ubuntu-latest, cc: gcc-12, arch: arm64 } - - { os: ubuntu-latest, cc: gcc-13, arch: arm64 } - simd: - - ${{ (matrix.target.arch == 'arm64' || matrix.target.arch == 'armv7') && 'neon' || matrix.target.arch == 'x64' && ['none', 'sse', 'sse2', 'sse3', 'sse4', 'avx', 'avx2'] }} + - { os: ubuntu-latest, cc: gcc-12, arch: arm64, simd: neon } + - { os: ubuntu-latest, cc: gcc-13, arch: arm64, simd: neon } + # ARMv7 builds + - { os: ubuntu-latest-arm64, cc: gcc-12, arch: armv7, simd: neon } + - { os: ubuntu-latest-arm64, cc: gcc-12, arch: armv7, simd: none } steps: - uses: actions/checkout@v4 From 365d43bef45fc783ff0e7b2d490a2607be6d12a4 Mon Sep 17 00:00:00 2001 From: Recep Aslantas Date: Sat, 25 Jan 2025 11:47:32 +0300 Subject: [PATCH 5/8] Update ci.yml --- .github/workflows/ci.yml | 100 +++++++++++++++++++++++++++++++-------- 1 file changed, 80 insertions(+), 20 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cf0f498..92dffaa 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,19 +15,36 @@ jobs: matrix: include: # x86/x64 builds - - os: macos-13 - simd: [none, sse, sse2, sse3, sse4, avx, avx2] - - os: macos-14 - simd: [none, sse, sse2, sse3, sse4, avx, avx2] - - os: ubuntu-22.04 - simd: [none, sse, sse2, sse3, sse4, avx, avx2] - - os: ubuntu-24.04 - simd: [none, sse, sse2, sse3, sse4, avx, avx2] + - { os: macos-13, simd: none } + - { os: macos-13, simd: sse } + - { os: macos-13, simd: sse2 } + - { os: macos-13, simd: sse3 } + - { os: macos-13, simd: sse4 } + - { os: macos-13, simd: avx } + - { os: macos-13, simd: avx2 } + - { os: macos-14, simd: none } + - { os: macos-14, simd: sse } + - { os: macos-14, simd: sse2 } + - { os: macos-14, simd: sse3 } + - { os: macos-14, simd: sse4 } + - { os: macos-14, simd: avx } + - { os: macos-14, simd: avx2 } + - { os: ubuntu-22.04, simd: none } + - { os: ubuntu-22.04, simd: sse } + - { os: ubuntu-22.04, simd: sse2 } + - { os: ubuntu-22.04, simd: sse3 } + - { os: ubuntu-22.04, simd: sse4 } + - { os: ubuntu-22.04, simd: avx } + - { os: ubuntu-22.04, simd: avx2 } + - { os: ubuntu-24.04, simd: none } + - { os: ubuntu-24.04, simd: sse } + - { os: ubuntu-24.04, simd: sse2 } + - { os: ubuntu-24.04, simd: sse3 } + - { os: ubuntu-24.04, simd: sse4 } + - { os: ubuntu-24.04, simd: avx } + - { os: ubuntu-24.04, simd: avx2 } # ARM64 builds - - os: [ubuntu-22.04-arm64] - simd: [neon] - - os: [ubuntu-24.04-arm64] - simd: [neon] + - { os: ubuntu-latest-arm64, simd: neon } steps: - uses: actions/checkout@v4 @@ -226,11 +243,29 @@ jobs: matrix: include: # x86/x64 builds - - os: [macos-13, macos-14, windows-2022] - simd: [none, sse, sse2, sse3, sse4, avx, avx2] + - { os: macos-13, simd: none } + - { os: macos-13, simd: sse } + - { os: macos-13, simd: sse2 } + - { os: macos-13, simd: sse3 } + - { os: macos-13, simd: sse4 } + - { os: macos-13, simd: avx } + - { os: macos-13, simd: avx2 } + - { os: macos-14, simd: none } + - { os: macos-14, simd: sse } + - { os: macos-14, simd: sse2 } + - { os: macos-14, simd: sse3 } + - { os: macos-14, simd: sse4 } + - { os: macos-14, simd: avx } + - { os: macos-14, simd: avx2 } + - { os: windows-2022, simd: none } + - { os: windows-2022, simd: sse } + - { os: windows-2022, simd: sse2 } + - { os: windows-2022, simd: sse3 } + - { os: windows-2022, simd: sse4 } + - { os: windows-2022, simd: avx } + - { os: windows-2022, simd: avx2 } # ARM64 builds - - os: [macos-14-arm64] - simd: [neon] + - { os: macos-14-arm64, simd: neon } steps: - uses: actions/checkout@v4 @@ -317,11 +352,36 @@ jobs: matrix: include: # x86/x64 builds - - os: [macos-14, ubuntu-22.04, ubuntu-24.04, windows-2022] - simd: [none, sse, sse2, sse3, sse4, avx, avx2] + - { os: macos-14, simd: none } + - { os: macos-14, simd: sse } + - { os: macos-14, simd: sse2 } + - { os: macos-14, simd: sse3 } + - { os: macos-14, simd: sse4 } + - { os: macos-14, simd: avx } + - { os: macos-14, simd: avx2 } + - { os: ubuntu-22.04, simd: none } + - { os: ubuntu-22.04, simd: sse } + - { os: ubuntu-22.04, simd: sse2 } + - { os: ubuntu-22.04, simd: sse3 } + - { os: ubuntu-22.04, simd: sse4 } + - { os: ubuntu-22.04, simd: avx } + - { os: ubuntu-22.04, simd: avx2 } + - { os: ubuntu-24.04, simd: none } + - { os: ubuntu-24.04, simd: sse } + - { os: ubuntu-24.04, simd: sse2 } + - { os: ubuntu-24.04, simd: sse3 } + - { os: ubuntu-24.04, simd: sse4 } + - { os: ubuntu-24.04, simd: avx } + - { os: ubuntu-24.04, simd: avx2 } + - { os: windows-2022, simd: none } + - { os: windows-2022, simd: sse } + - { os: windows-2022, simd: sse2 } + - { os: windows-2022, simd: sse3 } + - { os: windows-2022, simd: sse4 } + - { os: windows-2022, simd: avx } + - { os: windows-2022, simd: avx2 } # ARM64 builds - - os: ubuntu-latest-arm64 - simd: [neon] + - { os: ubuntu-latest-arm64, simd: neon } steps: - uses: actions/checkout@v4 From d42bff777368c56aeebdb89fa680c52068b57ed9 Mon Sep 17 00:00:00 2001 From: Recep Aslantas Date: Sat, 25 Jan 2025 11:53:27 +0300 Subject: [PATCH 6/8] Update ci.yml --- .github/workflows/ci.yml | 48 ++++++++++++++++++++++++++++++++++------ 1 file changed, 41 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 92dffaa..f4a0f6b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -111,18 +111,52 @@ jobs: run: cmake --build build build_cmake_ubuntu: - name: CMake / ${{ matrix.target.os }} / ${{ matrix.target.cc }} / ${{ matrix.target.arch }} / ${{ matrix.simd }} + name: CMake / ${{ matrix.target.os }} / ${{ matrix.target.cc }} / ${{ matrix.target.arch }} / ${{ matrix.target.simd }} runs-on: ${{ matrix.target.arch == 'arm64' && 'ubuntu-latest-arm64' || matrix.target.os }} strategy: fail-fast: false matrix: target: - # x86/x64 builds - - { os: ubuntu-20.04, cc: gcc-11, arch: x64, simd: [none, sse, sse2, sse3, sse4, avx, avx2] } - - { os: ubuntu-22.04, cc: gcc-12, arch: x64, simd: [none, sse, sse2, sse3, sse4, avx, avx2] } - - { os: ubuntu-24.04, cc: gcc-13, arch: x64, simd: [none, sse, sse2, sse3, sse4, avx, avx2] } - - { os: ubuntu-20.04, cc: clang-12, arch: x64, simd: [none, sse, sse2, sse3, sse4, avx, avx2] } - - { os: ubuntu-22.04, cc: clang-15, arch: x64, simd: [none, sse, sse2, sse3, sse4, avx, avx2] } + # GCC 11 builds + - { os: ubuntu-20.04, cc: gcc-11, arch: x64, simd: none } + - { os: ubuntu-20.04, cc: gcc-11, arch: x64, simd: sse } + - { os: ubuntu-20.04, cc: gcc-11, arch: x64, simd: sse2 } + - { os: ubuntu-20.04, cc: gcc-11, arch: x64, simd: sse3 } + - { os: ubuntu-20.04, cc: gcc-11, arch: x64, simd: sse4 } + - { os: ubuntu-20.04, cc: gcc-11, arch: x64, simd: avx } + - { os: ubuntu-20.04, cc: gcc-11, arch: x64, simd: avx2 } + # GCC 12 builds + - { os: ubuntu-22.04, cc: gcc-12, arch: x64, simd: none } + - { os: ubuntu-22.04, cc: gcc-12, arch: x64, simd: sse } + - { os: ubuntu-22.04, cc: gcc-12, arch: x64, simd: sse2 } + - { os: ubuntu-22.04, cc: gcc-12, arch: x64, simd: sse3 } + - { os: ubuntu-22.04, cc: gcc-12, arch: x64, simd: sse4 } + - { os: ubuntu-22.04, cc: gcc-12, arch: x64, simd: avx } + - { os: ubuntu-22.04, cc: gcc-12, arch: x64, simd: avx2 } + # GCC 13 builds + - { os: ubuntu-24.04, cc: gcc-13, arch: x64, simd: none } + - { os: ubuntu-24.04, cc: gcc-13, arch: x64, simd: sse } + - { os: ubuntu-24.04, cc: gcc-13, arch: x64, simd: sse2 } + - { os: ubuntu-24.04, cc: gcc-13, arch: x64, simd: sse3 } + - { os: ubuntu-24.04, cc: gcc-13, arch: x64, simd: sse4 } + - { os: ubuntu-24.04, cc: gcc-13, arch: x64, simd: avx } + - { os: ubuntu-24.04, cc: gcc-13, arch: x64, simd: avx2 } + # Clang 12 builds + - { os: ubuntu-20.04, cc: clang-12, arch: x64, simd: none } + - { os: ubuntu-20.04, cc: clang-12, arch: x64, simd: sse } + - { os: ubuntu-20.04, cc: clang-12, arch: x64, simd: sse2 } + - { os: ubuntu-20.04, cc: clang-12, arch: x64, simd: sse3 } + - { os: ubuntu-20.04, cc: clang-12, arch: x64, simd: sse4 } + - { os: ubuntu-20.04, cc: clang-12, arch: x64, simd: avx } + - { os: ubuntu-20.04, cc: clang-12, arch: x64, simd: avx2 } + # Clang 15 builds + - { os: ubuntu-22.04, cc: clang-15, arch: x64, simd: none } + - { os: ubuntu-22.04, cc: clang-15, arch: x64, simd: sse } + - { os: ubuntu-22.04, cc: clang-15, arch: x64, simd: sse2 } + - { os: ubuntu-22.04, cc: clang-15, arch: x64, simd: sse3 } + - { os: ubuntu-22.04, cc: clang-15, arch: x64, simd: sse4 } + - { os: ubuntu-22.04, cc: clang-15, arch: x64, simd: avx } + - { os: ubuntu-22.04, cc: clang-15, arch: x64, simd: avx2 } # ARM64 builds - { os: ubuntu-latest, cc: gcc-12, arch: arm64, simd: neon } - { os: ubuntu-latest, cc: gcc-13, arch: arm64, simd: neon } From 8cdf496baf53af56c2e4247f5dccdb6dca43b196 Mon Sep 17 00:00:00 2001 From: Ellis Date: Thu, 30 Jan 2025 21:39:17 +1000 Subject: [PATCH 7/8] Fix numbering --- docs/source/opengl.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/opengl.rst b/docs/source/opengl.rst index d7fb8cc..7cc8559 100644 --- a/docs/source/opengl.rst +++ b/docs/source/opengl.rst @@ -34,7 +34,7 @@ array of matrices: /* ... */ glUniformMatrix4fv(location, count, GL_FALSE, matrix[0][0]); -1. Cast matrix to pointer +2. Cast matrix to pointer -------------------------- .. code-block:: c From 3bfd31af99690e4f1eeab2e983ccbcfc5beb6591 Mon Sep 17 00:00:00 2001 From: Recep Aslantas Date: Sun, 9 Feb 2025 15:01:55 +0300 Subject: [PATCH 8/8] build, win: add missing files --- win/cglm-test.vcxproj | 2 ++ win/cglm-test.vcxproj.filters | 6 ++++++ win/cglm.vcxproj | 6 +++++- win/cglm.vcxproj.filters | 12 ++++++++++++ 4 files changed, 25 insertions(+), 1 deletion(-) diff --git a/win/cglm-test.vcxproj b/win/cglm-test.vcxproj index 5749a41..b9e1cf3 100644 --- a/win/cglm-test.vcxproj +++ b/win/cglm-test.vcxproj @@ -53,6 +53,7 @@ + @@ -76,6 +77,7 @@ + diff --git a/win/cglm-test.vcxproj.filters b/win/cglm-test.vcxproj.filters index 15fb11a..a3c4634 100644 --- a/win/cglm-test.vcxproj.filters +++ b/win/cglm-test.vcxproj.filters @@ -130,5 +130,11 @@ src + + src + + + src + \ No newline at end of file diff --git a/win/cglm.vcxproj b/win/cglm.vcxproj index dcca926..88574ca 100644 --- a/win/cglm.vcxproj +++ b/win/cglm.vcxproj @@ -80,6 +80,7 @@ + @@ -137,6 +138,7 @@ + @@ -183,6 +185,7 @@ + @@ -250,6 +253,7 @@ + @@ -278,7 +282,7 @@ {CA8BCAF9-CD25-4133-8F62-3D1449B5D2FC} Win32Proj cglm - 10.0.17763.0 + 10.0 diff --git a/win/cglm.vcxproj.filters b/win/cglm.vcxproj.filters index f200fb2..b14df86 100644 --- a/win/cglm.vcxproj.filters +++ b/win/cglm.vcxproj.filters @@ -184,6 +184,9 @@ src + + src + @@ -732,5 +735,14 @@ include\cglm\struct + + include\cglm + + + include\cglm\call + + + include\cglm\struct + \ No newline at end of file