@@ -380,18 +380,21 @@ IF (EMBREE_MAX_ISA STREQUAL "NONE")
380380 OPTION (EMBREE_ISA_NEON2X "Enables NEON ISA double pumped." OFF )
381381 ENDIF ()
382382 ELSE ()
383- TRY_COMPILE (COMPILER_SUPPORTS_AVX "${CMAKE_BINARY_DIR} " "${PROJECT_SOURCE_DIR} /common/cmake/check_isa.cpp" COMPILE_DEFINITIONS ${FLAGS_AVX} )
384- TRY_COMPILE (COMPILER_SUPPORTS_AVX2 "${CMAKE_BINARY_DIR} " "${PROJECT_SOURCE_DIR} /common/cmake/check_isa.cpp" COMPILE_DEFINITIONS ${FLAGS_AVX2} )
385- TRY_COMPILE (COMPILER_SUPPORTS_AVX512 "${CMAKE_BINARY_DIR} " "${PROJECT_SOURCE_DIR} /common/cmake/check_isa.cpp" COMPILE_DEFINITIONS ${FLAGS_AVX512} )
383+ TRY_COMPILE (COMPILER_SUPPORTS_AVX "${CMAKE_BINARY_DIR} " "${PROJECT_SOURCE_DIR} /common/cmake/check_isa.cpp" COMPILE_DEFINITIONS ${FLAGS_AVX} )
384+ TRY_COMPILE (COMPILER_SUPPORTS_AVX2 "${CMAKE_BINARY_DIR} " "${PROJECT_SOURCE_DIR} /common/cmake/check_isa.cpp" COMPILE_DEFINITIONS ${FLAGS_AVX2} )
385+ TRY_COMPILE (COMPILER_SUPPORTS_AVX512 "${CMAKE_BINARY_DIR} " "${PROJECT_SOURCE_DIR} /common/cmake/check_isa.cpp" COMPILE_DEFINITIONS ${FLAGS_AVX512} )
386+ TRY_COMPILE (COMPILER_SUPPORTS_AVX10_1 "${CMAKE_BINARY_DIR} " "${PROJECT_SOURCE_DIR} /common/cmake/check_isa.cpp" COMPILE_DEFINITIONS ${FLAGS_AVX10_1} )
386387
387388 OPTION (EMBREE_ISA_SSE2 "Enables SSE2 ISA." ON )
388389 OPTION (EMBREE_ISA_SSE42 "Enables SSE4.2 ISA." ON )
389390 OPTION (EMBREE_ISA_AVX "Enables AVX ISA." ${COMPILER_SUPPORTS_AVX} )
390391 OPTION (EMBREE_ISA_AVX2 "Enables AVX2 ISA." ${COMPILER_SUPPORTS_AVX2} )
391392 IF (APPLE )
392393 OPTION (EMBREE_ISA_AVX512 "Enables AVX512 ISA." OFF )
394+ OPTION (EMBREE_ISA_AVX10_1 "Enables AVX10.1 ISA." OFF )
393395 ELSE ()
394396 OPTION (EMBREE_ISA_AVX512 "Enables AVX512 ISA." ${COMPILER_SUPPORTS_AVX512} )
397+ OPTION (EMBREE_ISA_AVX10_1 "Enables AVX10.1 ISA." ${COMPILER_SUPPORTS_AVX10_1} )
395398 ENDIF ()
396399 # Don't use OPTION, but still set them to OFF, so that embree-config.cmake is consisten with its definitions
397400 SET (EMBREE_ISA_NEON OFF )
@@ -406,13 +409,15 @@ ELSEIF (EMBREE_MAX_ISA STREQUAL "DEFAULT")
406409 UNSET (EMBREE_ISA_AVX CACHE )
407410 UNSET (EMBREE_ISA_AVX2 CACHE )
408411 UNSET (EMBREE_ISA_AVX512 CACHE )
412+ UNSET (EMBREE_ISA_AVX10_1 CACHE )
409413 SET (EMBREE_ISA_NEON OFF )
410414 SET (EMBREE_ISA_NEON2X OFF )
411415 SET (EMBREE_ISA_SSE2 OFF )
412416 SET (EMBREE_ISA_SSE42 OFF )
413417 SET (EMBREE_ISA_AVX OFF )
414418 SET (EMBREE_ISA_AVX2 OFF )
415419 SET (EMBREE_ISA_AVX512 OFF )
420+ SET (EMBREE_ISA_AVX10_1 OFF )
416421 MESSAGE (STATUS "Detecting default ISA..." )
417422 INCLUDE (check_isa_default )
418423 CHECK_ISA_DEFAULT (EMBREE_ISA_DEFAULT )
@@ -427,6 +432,7 @@ ELSE()
427432 UNSET (EMBREE_ISA_AVX CACHE )
428433 UNSET (EMBREE_ISA_AVX2 CACHE )
429434 UNSET (EMBREE_ISA_AVX512 CACHE )
435+ UNSET (EMBREE_ISA_AVX10_1 CACHE )
430436
431437 IF (EMBREE_MAX_ISA STREQUAL "NEON" )
432438 SET (ISA 1)
@@ -444,6 +450,8 @@ ELSE()
444450 SET (ISA 5)
445451 ELSEIF (EMBREE_MAX_ISA STREQUAL "AVX512SKX" ) # just for compatibility
446452 SET (ISA 5)
453+ ELSEIF (EMBREE_MAX_ISA STREQUAL "AVX10.1" )
454+ SET (ISA 6)
447455 ELSE ()
448456 MESSAGE (FATAL_ERROR "Unsupported ISA specified: " ${EMBREE_MAX_ISA} )
449457 ENDIF ()
@@ -455,6 +463,7 @@ ELSE()
455463 SET (EMBREE_ISA_AVX OFF )
456464 SET (EMBREE_ISA_AVX2 OFF )
457465 SET (EMBREE_ISA_AVX512 OFF )
466+ SET (EMBREE_ISA_AVX10_1 OFF )
458467
459468 IF (EMBREE_ARM)
460469 IF (ISA GREATER 0)
@@ -479,6 +488,9 @@ ELSE()
479488 IF (ISA GREATER 4)
480489 SET (EMBREE_ISA_AVX512 ON )
481490 ENDIF ()
491+ IF (ISA GREATER 5)
492+ SET (EMBREE_ISA_AVX10_1 ON )
493+ ENDIF ()
482494 ENDIF ()
483495ENDIF ()
484496
@@ -511,6 +523,9 @@ IF (APPLE AND EMBREE_STATIC_LIB)
511523 IF (EMBREE_ISA_AVX512)
512524 MATH (EXPR NUMISA "${NUMISA} +1" )
513525 ENDIF ()
526+ IF (EMBREE_ISA_AVX10_1)
527+ MATH (EXPR NUMISA "${NUMISA} +1" )
528+ ENDIF ()
514529
515530 IF (NUMISA GREATER 1)
516531 IF (${CMAKE_CXX_COMPILER_ID} MATCHES "Clang" )
@@ -530,6 +545,7 @@ SET(SSE42 1)
530545SET (AVX 2)
531546SET (AVX2 3)
532547SET (AVX512 4)
548+ SET (AVX10_1 5)
533549
534550UNSET (FLAGS_LOWEST)
535551SET (ISA_LOWEST -1)
@@ -612,6 +628,19 @@ IF (EMBREE_ISA_AVX512)
612628 ENDIF ()
613629ENDIF ()
614630
631+ IF (EMBREE_ISA_AVX10_1)
632+ ADD_DEFINITIONS (-DEMBREE_TARGET_AVX10_1 )
633+ IF (NOT EMBREE_ARM)
634+ # AVX 10.1 support in ISPC?
635+ # LIST(APPEND ISPC_TARGETS "")
636+ ENDIF ()
637+ IF (NOT FLAGS_LOWEST)
638+ SET (ISA_LOWEST ${AVX10_1} )
639+ SET (ISA_LOWEST_AVX ${AVX10_1} )
640+ SET (FLAGS_LOWEST ${FLAGS_AVX10_1} )
641+ ENDIF ()
642+ ENDIF ()
643+
615644IF (ISA_LOWEST EQUAL -1)
616645 MESSAGE (FATAL_ERROR "You have to enable at least one ISA!" )
617646ENDIF ()
0 commit comments