From e2339a6acee23f05d8242e5eb90fcbc295e971e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=BCnther?= Date: Thu, 15 Oct 2026 15:02:58 +0200 Subject: [PATCH 1/2] WA for IGC-17746 miscompile --- .../devices/gpu/compute/vklComputeParticle.h | 4 +- .../gpu/compute/vklComputeUnstructured.h | 63 ++++++++++--------- 2 files changed, 36 insertions(+), 31 deletions(-) diff --git a/openvkl/devices/gpu/compute/vklComputeParticle.h b/openvkl/devices/gpu/compute/vklComputeParticle.h index 81f181cc..eee059e6 100644 --- a/openvkl/devices/gpu/compute/vklComputeParticle.h +++ b/openvkl/devices/gpu/compute/vklComputeParticle.h @@ -36,7 +36,7 @@ namespace ispc { uint64 numIds, uint64 *ids, vec3f &result, - vec3f samplePos) + const vec3f &samplePos) { const VKLParticleVolume *self = (const VKLParticleVolume *uniform)userData; @@ -59,7 +59,7 @@ namespace ispc { uint64 numIds, uint64 *ids, float &result, - vec3f samplePos) + const vec3f &samplePos) { const VKLParticleVolume *self = (const VKLParticleVolume *)userData; diff --git a/openvkl/devices/gpu/compute/vklComputeUnstructured.h b/openvkl/devices/gpu/compute/vklComputeUnstructured.h index 4ddd39a9..624a6b6f 100644 --- a/openvkl/devices/gpu/compute/vklComputeUnstructured.h +++ b/openvkl/devices/gpu/compute/vklComputeUnstructured.h @@ -6,6 +6,9 @@ #include "../../cpu/volume/UnstructuredBVH.ih" #include "../../cpu/volume/UnstructuredVolumeShared.h" +// WA for IGC-17746 miscompile: force inlining (and pass samplePos by const&) +#define VKL_WA_IGC17746_INLINE __attribute__((always_inline)) inline + namespace ispc { //////////////////////////////////////////////////////////////////////////// @@ -113,11 +116,11 @@ namespace ispc { // intersect / sampling functions ////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// - inline bool intersectAndSampleTet(const void *userData, - uint64_t id, - bool assumeInside, - float &result, - vec3f samplePos) + VKL_WA_IGC17746_INLINE bool intersectAndSampleTet(const void *userData, + uint64_t id, + bool assumeInside, + float &result, + const vec3f &samplePos) { const VKLUnstructuredVolume *self = (const VKLUnstructuredVolume *)userData; @@ -219,11 +222,11 @@ namespace ispc { static const float WEDGE_CONVERGED = 0.0001f; static const float WEDGE_OUTSIDE_CELL_TOLERANCE = 0.000001f; - inline bool intersectAndSampleWedge(const void *userData, - uint64_t id, - bool assumeInside, - float &result, - vec3f samplePos) + VKL_WA_IGC17746_INLINE bool intersectAndSampleWedge(const void *userData, + uint64_t id, + bool assumeInside, + float &result, + const vec3f &samplePos) { const VKLUnstructuredVolume *self = (const VKLUnstructuredVolume *)userData; @@ -359,11 +362,11 @@ namespace ispc { static const float PYRAMID_CONVERGED = 0.0001f; static const float PYRAMID_OUTSIDE_CELL_TOLERANCE = 0.000001f; - inline bool intersectAndSamplePyramid(const void *userData, - uint64_t id, - bool assumeInside, - float &result, - vec3f samplePos) + VKL_WA_IGC17746_INLINE bool intersectAndSamplePyramid(const void *userData, + uint64_t id, + bool assumeInside, + float &result, + const vec3f &samplePos) { const VKLUnstructuredVolume *self = (const VKLUnstructuredVolume *)userData; @@ -454,10 +457,10 @@ namespace ispc { return false; } - inline bool intersectAndSampleHexFast(const void *userData, - uint64_t id, - float &result, - vec3f samplePos) + VKL_WA_IGC17746_INLINE bool intersectAndSampleHexFast(const void *userData, + uint64_t id, + float &result, + const vec3f &samplePos) { const VKLUnstructuredVolume *self = (const VKLUnstructuredVolume *)userData; @@ -570,11 +573,12 @@ namespace ispc { static const float HEX_CONVERGED = 0.0001f; static const float HEX_OUTSIDE_CELL_TOLERANCE = 0.000001f; - inline bool intersectAndSampleHexIterative(const void *userData, - uint64_t id, - bool assumeInside, - float &result, - vec3f samplePos) + VKL_WA_IGC17746_INLINE bool intersectAndSampleHexIterative( + const void *userData, + uint64_t id, + bool assumeInside, + float &result, + const vec3f &samplePos) { const VKLUnstructuredVolume *self = (const VKLUnstructuredVolume *)userData; @@ -665,11 +669,12 @@ namespace ispc { return false; } - inline bool intersectAndSampleCell(const void *userData, - uint64_t id, - float &result, - vec3f samplePos, - const VKLFeatureFlags featureFlags) + VKL_WA_IGC17746_INLINE bool intersectAndSampleCell( + const void *userData, + uint64_t id, + float &result, + const vec3f &samplePos, + const VKLFeatureFlags featureFlags) { bool hit = false; From 59560149e8bcc6fb179844ed075fc4567a40759e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20G=C3=BCnther?= Date: Mon, 26 Oct 2026 09:12:22 +0100 Subject: [PATCH 2/2] CI and compiler updates - add `msvc-version` to jobs which need `cmake` - GPU tests run on Ubuntu 24.04 - bump GH action versions - add MSVC 2026 - bump dpcpp to v7.2 (benchmark needs WA for llvm-project#234701) - bump icx Windows to 2026.1 --- .github/deps/dpcpp-sycl-nightly.env | 3 +- .github/deps/dpcpp-windows-icx.env | 3 +- .github/workflows/external.ci.linux.yml | 12 ++-- .github/workflows/internal.ci.linux.gpu.yml | 12 ++-- .../workflows/internal.ci.windows.gpu.icx.yml | 8 --- .github/workflows/internal.ci.windows.gpu.yml | 8 --- .github/workflows/internal.ci.windows.yml | 62 +++++++++---------- .../workflows/internal.nightly.windows.yml | 1 + .github/workflows/internal.release.yml | 4 +- doc/compilation.md | 2 +- examples/interactive/vklBenchmark.cpp | 9 ++- 11 files changed, 56 insertions(+), 68 deletions(-) diff --git a/.github/deps/dpcpp-sycl-nightly.env b/.github/deps/dpcpp-sycl-nightly.env index 35bf2064..6c074316 100644 --- a/.github/deps/dpcpp-sycl-nightly.env +++ b/.github/deps/dpcpp-sycl-nightly.env @@ -1 +1,2 @@ -DPCPP_VERSION=intel-llvm/v7.0.0 +DPCPP_VERSION=intel-llvm/v7.2.0 +MSVC_VERSION=2022 diff --git a/.github/deps/dpcpp-windows-icx.env b/.github/deps/dpcpp-windows-icx.env index 77ec5b26..64b3c234 100644 --- a/.github/deps/dpcpp-windows-icx.env +++ b/.github/deps/dpcpp-windows-icx.env @@ -1 +1,2 @@ -DPCPP_VERSION=intel/2025.3 +DPCPP_VERSION=intel/2026.1 +MSVC_VERSION=2022 diff --git a/.github/workflows/external.ci.linux.yml b/.github/workflows/external.ci.linux.yml index 104608e8..5c705746 100644 --- a/.github/workflows/external.ci.linux.yml +++ b/.github/workflows/external.ci.linux.yml @@ -28,7 +28,7 @@ jobs: dnf group install "Development Tools" -y - name: Checkout Repository - uses: actions/checkout@v4 + uses: actions/checkout@v7 - name: Build OpenVKL run: | @@ -36,7 +36,7 @@ jobs: scl enable gcc-toolset-11 .github/scripts/build.sh - name: Upload Artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: build-rocky-8 path: build/install @@ -54,7 +54,7 @@ jobs: dnf install libglvnd-glx libglvnd-opengl -y - name: Download Artifact - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: build-rocky-8 @@ -84,13 +84,13 @@ jobs: apt-get install build-essential cmake ninja-build libglfw3-dev libgl1-mesa-dev git -y - name: Checkout Repository - uses: actions/checkout@v4 + uses: actions/checkout@v7 - name: Build OpenVKL run: .github/scripts/build.sh -G Ninja -D BUILD_GLFW=OFF - name: Upload Artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: build-ubuntu-2204 path: build/install @@ -110,7 +110,7 @@ jobs: apt-get install libglfw3 libopengl0 -y - name: Download Artifact - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: build-ubuntu-2204 diff --git a/.github/workflows/internal.ci.linux.gpu.yml b/.github/workflows/internal.ci.linux.gpu.yml index f7aa84d2..db59e69f 100644 --- a/.github/workflows/internal.ci.linux.gpu.yml +++ b/.github/workflows/internal.ci.linux.gpu.yml @@ -62,7 +62,7 @@ jobs: uses: intel-innersource/libraries.devops.renderkit.workflows/.github/workflows/docker.yml@main with: timeout-minutes: 45 - image: ubuntu:22.04 + image: ubuntu:24.04 runs-on: '[ "Linux", "docker", "dg2" ]' artifact-in: build-gpu env-from-files: .github/deps/dpcpp-sycl-nightly.env .github/deps/gfx-linux-public.env @@ -77,7 +77,7 @@ jobs: uses: intel-innersource/libraries.devops.renderkit.workflows/.github/workflows/docker.yml@main with: timeout-minutes: 45 - image: ubuntu:22.04 + image: ubuntu:24.04 runs-on: '[ "Linux", "docker", "pvc" ]' artifact-in: build-gpu env-from-files: .github/deps/dpcpp-sycl-nightly.env .github/deps/gfx-linux-public.env .github/env/pvc-runtime-options.env @@ -93,7 +93,7 @@ jobs: uses: intel-innersource/libraries.devops.renderkit.workflows/.github/workflows/docker.yml@main with: timeout-minutes: 45 - image: ubuntu:22.04 + image: ubuntu:24.04 runs-on: '[ "Linux", "docker", "pvc" ]' artifact-in: build-gpu artifact-out: test-examples-pvc @@ -111,7 +111,7 @@ jobs: uses: intel-innersource/libraries.devops.renderkit.workflows/.github/workflows/docker.yml@main with: timeout-minutes: 45 - image: ubuntu:22.04 + image: ubuntu:24.04 runs-on: '[ "Linux", "docker", "dg2" ]' artifact-in: build-gpu env-from-files: .github/deps/dpcpp-sycl-nightly.env .github/deps/gfx-linux-public.env @@ -127,7 +127,7 @@ jobs: uses: intel-innersource/libraries.devops.renderkit.workflows/.github/workflows/docker.yml@main with: timeout-minutes: 45 - image: ubuntu:22.04 + image: ubuntu:24.04 runs-on: '[ "Linux", "docker", "dg2" ]' artifact-in: build-gpu artifact-out: test-examples-dg2 @@ -145,7 +145,7 @@ jobs: uses: intel-innersource/libraries.devops.renderkit.workflows/.github/workflows/docker.yml@main with: timeout-minutes: 45 - image: ubuntu:22.04 + image: ubuntu:24.04 runs-on: '[ "Linux", "docker", "pvc" ]' artifact-in: build-gpu artifact-out: test-examples-big-volume-pvc diff --git a/.github/workflows/internal.ci.windows.gpu.icx.yml b/.github/workflows/internal.ci.windows.gpu.icx.yml index 6494bb09..50a9fc7e 100644 --- a/.github/workflows/internal.ci.windows.gpu.icx.yml +++ b/.github/workflows/internal.ci.windows.gpu.icx.yml @@ -21,7 +21,6 @@ jobs: force-delete: true # guarantees .gitattributes are respected in working dir runs-on: '[ "build", "x86_64" ]' env-from-files: .github/deps/dpcpp-windows-icx.env - msvc-version: 2022 artifact-out: build-windows-gpu artifact-path: ./build artifact-on-failure: true @@ -43,7 +42,6 @@ jobs: force-delete: true # guarantees .gitattributes are respected in working dir runs-on: '[ "build", "x86_64" ]' env-from-files: .github/deps/dpcpp-windows-icx.env - msvc-version: 2022 artifact-in: build-windows-gpu cmd: | cd ./build/install/bin @@ -60,7 +58,6 @@ jobs: force-delete: true # guarantees .gitattributes are respected in working dir runs-on: '[ "dg2" ]' env-from-files: .github/deps/dpcpp-windows-icx.env .github/deps/gfx-windows-public.env - msvc-version: 2022 artifact-in: build-windows-gpu cmd: | cd ./build/install/bin @@ -77,7 +74,6 @@ jobs: force-delete: true # guarantees .gitattributes are respected in working dir runs-on: '[ "bmg" ]' env-from-files: .github/deps/dpcpp-windows-icx.env .github/deps/gfx-windows-public.env - msvc-version: 2022 artifact-in: build-windows-gpu cmd: | cd ./build/install/bin @@ -94,7 +90,6 @@ jobs: force-delete: true # guarantees .gitattributes are respected in working dir runs-on: '[ "lnl" ]' env-from-files: .github/deps/dpcpp-windows-icx.env .github/deps/gfx-windows-public.env - msvc-version: 2022 artifact-in: build-windows-gpu cmd: | cd ./build/install/bin @@ -111,7 +106,6 @@ jobs: force-delete: true # guarantees .gitattributes are respected in working dir runs-on: '[ "dg2" ]' env-from-files: .github/deps/dpcpp-windows-icx.env .github/deps/gfx-windows-public.env - msvc-version: 2022 artifact-in: build-windows-gpu artifact-out: test-examples-dg2 artifact-path: ./build/install/bin/*.pfm @@ -129,7 +123,6 @@ jobs: force-delete: true # guarantees .gitattributes are respected in working dir runs-on: '[ "bmg" ]' env-from-files: .github/deps/dpcpp-windows-icx.env .github/deps/gfx-windows-public.env - msvc-version: 2022 artifact-in: build-windows-gpu artifact-out: test-examples-bmg artifact-path: ./build/install/bin/*.pfm @@ -147,7 +140,6 @@ jobs: force-delete: true # guarantees .gitattributes are respected in working dir runs-on: '[ "lnl" ]' env-from-files: .github/deps/dpcpp-windows-icx.env .github/deps/gfx-windows-public.env - msvc-version: 2022 artifact-in: build-windows-gpu artifact-out: test-examples-lnl artifact-path: ./build/install/bin/*.pfm diff --git a/.github/workflows/internal.ci.windows.gpu.yml b/.github/workflows/internal.ci.windows.gpu.yml index 35483d3a..1a70620d 100644 --- a/.github/workflows/internal.ci.windows.gpu.yml +++ b/.github/workflows/internal.ci.windows.gpu.yml @@ -21,7 +21,6 @@ jobs: force-delete: true # guarantees .gitattributes are respected in working dir runs-on: '[ "build", "x86_64" ]' env-from-files: ./.github/deps/dpcpp-sycl-nightly.env - msvc-version: 2022 artifact-out: build-windows-gpu artifact-path: ./build artifact-on-failure: true @@ -43,7 +42,6 @@ jobs: force-delete: true # guarantees .gitattributes are respected in working dir runs-on: '[ "build", "x86_64" ]' env-from-files: ./.github/deps/dpcpp-sycl-nightly.env - msvc-version: 2022 artifact-in: build-windows-gpu cmd: | cd ./build/install/bin @@ -60,7 +58,6 @@ jobs: force-delete: true # guarantees .gitattributes are respected in working dir runs-on: '[ "dg2" ]' env-from-files: ./.github/deps/dpcpp-sycl-nightly.env ./.github/deps/gfx-windows-public.env - msvc-version: 2022 artifact-in: build-windows-gpu cmd: | cd ./build/install/bin @@ -77,7 +74,6 @@ jobs: force-delete: true # guarantees .gitattributes are respected in working dir runs-on: '[ "bmg" ]' env-from-files: ./.github/deps/dpcpp-sycl-nightly.env ./.github/deps/gfx-windows-public.env - msvc-version: 2022 artifact-in: build-windows-gpu cmd: | cd ./build/install/bin @@ -94,7 +90,6 @@ jobs: force-delete: true # guarantees .gitattributes are respected in working dir runs-on: '[ "lnl" ]' env-from-files: ./.github/deps/dpcpp-sycl-nightly.env ./.github/deps/gfx-windows-public.env - msvc-version: 2022 artifact-in: build-windows-gpu cmd: | cd ./build/install/bin @@ -111,7 +106,6 @@ jobs: force-delete: true # guarantees .gitattributes are respected in working dir runs-on: '[ "dg2" ]' env-from-files: ./.github/deps/dpcpp-sycl-nightly.env ./.github/deps/gfx-windows-public.env - msvc-version: 2022 artifact-in: build-windows-gpu artifact-out: test-examples-dg2 artifact-path: ./build/install/bin/*.pfm @@ -129,7 +123,6 @@ jobs: force-delete: true # guarantees .gitattributes are respected in working dir runs-on: '[ "bmg" ]' env-from-files: ./.github/deps/dpcpp-sycl-nightly.env ./.github/deps/gfx-windows-public.env - msvc-version: 2022 artifact-in: build-windows-gpu artifact-out: test-examples-bmg artifact-path: ./build/install/bin/*.pfm @@ -147,7 +140,6 @@ jobs: force-delete: true # guarantees .gitattributes are respected in working dir runs-on: '[ "lnl" ]' env-from-files: ./.github/deps/dpcpp-sycl-nightly.env ./.github/deps/gfx-windows-public.env - msvc-version: 2022 artifact-in: build-windows-gpu artifact-out: test-examples-lnl artifact-path: ./build/install/bin/*.pfm diff --git a/.github/workflows/internal.ci.windows.yml b/.github/workflows/internal.ci.windows.yml index 18997e39..985f66f2 100644 --- a/.github/workflows/internal.ci.windows.yml +++ b/.github/workflows/internal.ci.windows.yml @@ -13,53 +13,49 @@ concurrency: permissions: read-all jobs: - build-windows-msvc16: + build-windows: + strategy: + fail-fast: false + matrix: + include: + - { vs: 16, msvc: 2019 } + - { vs: 17, msvc: 2022 } + - { vs: 18, msvc: 2026 } secrets: inherit uses: intel-innersource/libraries.devops.renderkit.workflows/.github/workflows/windows.yml@main with: force-delete: true # guarantees .gitattributes are respected in working dir runs-on: '[ "build", "x86_64" ]' - artifact-out: build-windows-msvc16 + msvc-version: ${{ matrix.msvc }} + artifact-out: build-windows-msvc${{ matrix.vs }} artifact-path: ./build/install - cmd: .github\scripts\build.bat "Visual Studio 16 2019" "Release" '"-DBUILD_EMBREE_FROM_SOURCE=OFF"' - - test-windows-msvc16: - needs: build-windows-msvc16 - secrets: inherit - uses: intel-innersource/libraries.devops.renderkit.workflows/.github/workflows/windows.yml@main - with: - runs-on: '[ "build", "x86_64" ]' - artifact-in: build-windows-msvc16 - cmd: | - .github\scripts\run_tests.bat - - - build-windows-msvc17: + cmd: .github\scripts\build.bat "Visual Studio ${{ matrix.vs }} ${{ matrix.msvc }}" "Release" '"-DBUILD_EMBREE_FROM_SOURCE=OFF"' + + build-windows-source: + strategy: + fail-fast: false + matrix: + include: + - { vs: 17, msvc: 2022 } + - { vs: 18, msvc: 2026 } secrets: inherit uses: intel-innersource/libraries.devops.renderkit.workflows/.github/workflows/windows.yml@main with: force-delete: true # guarantees .gitattributes are respected in working dir runs-on: '[ "build", "x86_64" ]' - artifact-out: build-windows-msvc17 - artifact-path: ./build/install - cmd: .github\scripts\build.bat "Visual Studio 17 2022" "Release" '"-DBUILD_EMBREE_FROM_SOURCE=OFF"' - - build-windows-msvc17-source: + msvc-version: ${{ matrix.msvc }} + cmd: .github\scripts\build.bat "Visual Studio ${{ matrix.vs }} ${{ matrix.msvc }}" "Release" + + test-windows: + needs: build-windows + strategy: + fail-fast: false + matrix: + vs: [16, 17] # TODO 18 when fix of https://developercommunity.visualstudio.com/t/MSVC-x64-O1-miscompiles-size_t-loop-aft/11163646 is released secrets: inherit uses: intel-innersource/libraries.devops.renderkit.workflows/.github/workflows/windows.yml@main with: - force-delete: true # guarantees .gitattributes are respected in working dir runs-on: '[ "build", "x86_64" ]' - cmd: .github\scripts\build.bat "Visual Studio 17 2022" "Release" - - test-windows-msvc17: - needs: build-windows-msvc17 - secrets: inherit - uses: intel-innersource/libraries.devops.renderkit.workflows/.github/workflows/windows.yml@main - with: - runs-on: '[ "build", "x86_64" ]' - artifact-in: build-windows-msvc17 + artifact-in: build-windows-msvc${{ matrix.vs }} cmd: | .github\scripts\run_tests.bat - -# TODO add msvc18, but VC 2026 v18.9 miscompiles diff --git a/.github/workflows/internal.nightly.windows.yml b/.github/workflows/internal.nightly.windows.yml index 6bfda7b1..a0f11fa3 100644 --- a/.github/workflows/internal.nightly.windows.yml +++ b/.github/workflows/internal.nightly.windows.yml @@ -20,6 +20,7 @@ jobs: with: force-delete: true # guarantees .gitattributes are respected in working dir runs-on: '[ "build", "x86_64" ]' + msvc-version: 2022 artifact-out: build-windows-msvc17-debug artifact-path: ./build/install cmd: .github\scripts\build.bat "Visual Studio 17 2022" "Debug" diff --git a/.github/workflows/internal.release.yml b/.github/workflows/internal.release.yml index c5f09f11..e051e9d5 100644 --- a/.github/workflows/internal.release.yml +++ b/.github/workflows/internal.release.yml @@ -74,6 +74,7 @@ jobs: timeout-minutes: 60 force-delete: true # guarantees .gitattributes are respected in working dir runs-on: '[ "build", "x86_64" ]' + msvc-version: 2022 artifact-out: windows artifact-path: ./*.zip cmd: | @@ -89,7 +90,6 @@ jobs: force-delete: true # guarantees .gitattributes are respected in working dir runs-on: '[ "build", "x86_64" ]' env-from-files: ./.github/deps/dpcpp-sycl-nightly.env - msvc-version: 2022 artifact-out: windows_sycl artifact-path: ./*.zip cmd: | @@ -155,6 +155,7 @@ jobs: uses: intel-innersource/libraries.devops.renderkit.workflows/.github/workflows/windows.yml@main with: runs-on: '[ "x86_64" ]' + msvc-version: 2022 artifact-in: windows cmd: | $env:OPENVKL_RELEASE_PACKAGE_VERSION="2.0.2" @@ -169,7 +170,6 @@ jobs: force-delete: true # guarantees .gitattributes are respected in working dir runs-on: '[ "bmg" ]' env-from-files: ./.github/deps/dpcpp-sycl-nightly.env ./.github/deps/gfx-windows-public.env - msvc-version: 2022 artifact-in: windows_sycl cmd: | $env:OPENVKL_RELEASE_PACKAGE_VERSION="2.0.2" diff --git a/doc/compilation.md b/doc/compilation.md index 6314e21e..ed2cf32a 100644 --- a/doc/compilation.md +++ b/doc/compilation.md @@ -74,7 +74,7 @@ Windows, you need the following additional prerequisites: - [CMake](http://www.cmake.org) version 3.25.3 or higher - Download the [oneAPI DPC++ Compiler - 2023-10-26](https://github.com/intel/llvm/releases/tag/v7.0.0); + v7.2.0](https://github.com/intel/llvm/releases/tag/v7.2.0); please note this specific version has been validated and used in our releases. diff --git a/examples/interactive/vklBenchmark.cpp b/examples/interactive/vklBenchmark.cpp index f5e91935..4c549d05 100644 --- a/examples/interactive/vklBenchmark.cpp +++ b/examples/interactive/vklBenchmark.cpp @@ -67,8 +67,13 @@ static bool rendererIsCompatibleWithDevice(const std::string &rendererType, std::cerr << "skipping benchmark capture: " << #FUNC << ", " \ << #TEST_CASE_NAME << "\n\t" << errorString << std::endl; \ } else { \ - BENCHMARK_CAPTURE( \ - FUNC, TEST_CASE_NAME, RENDERER_TYPE, WINDOW_SIZE, VOLUME_DIMENSION); \ + /* not BENCHMARK_CAPTURE: its lambdas in main() get same mangled name */ \ + /* with dpcpp 7.2, see https://github.com/intel/llvm/issues/23624 */ \ + benchmark::RegisterBenchmark(#FUNC "/" #TEST_CASE_NAME, \ + FUNC, \ + RENDERER_TYPE, \ + WINDOW_SIZE, \ + VOLUME_DIMENSION); \ } \ }