Skip to content

Commit 1bcfb82

Browse files
committed
Merge branch 'next_release'
2 parents 5bdc462 + 5d60e86 commit 1bcfb82

File tree

102 files changed

+29374
-1745
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

102 files changed

+29374
-1745
lines changed

CMakeLists.txt

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/cmake)
2828

2929
## Establish project
3030

31-
project(anari VERSION 0.9.1 LANGUAGES C CXX)
31+
project(anari VERSION 0.10.0 LANGUAGES C CXX)
3232

3333
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
3434
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
@@ -51,9 +51,27 @@ cmake_dependent_option(BUILD_VIEWER
5151
"BUILD_EXAMPLES"
5252
OFF
5353
)
54+
cmake_dependent_option(BUILD_SCENES_LIB
55+
"Enable anari_test_scenes library"
56+
ON
57+
"NOT BUILD_TESTING;NOT BUILD_EXAMPLES;NOT BUILD_CTS"
58+
ON
59+
)
5460
option(INSTALL_VIEWER_LIBRARY "Install anari::anari_viewer library target" ON)
5561
option(INSTALL_VIEWER "Install anariViewer app" OFF)
5662
mark_as_advanced(INSTALL_VIEWER)
63+
cmake_dependent_option(VIEWER_ENABLE_GLTF
64+
"Enable glTF support in viewer"
65+
OFF
66+
"BUILD_VIEWER"
67+
OFF
68+
)
69+
cmake_dependent_option(VIEWER_ENABLE_KTX
70+
"Enable KTX support in viewer"
71+
OFF
72+
"BUILD_VIEWER"
73+
OFF
74+
)
5775

5876
## The generate_all targets collects all offline code generation targets
5977

@@ -78,7 +96,7 @@ if (BUILD_TESTING)
7896
add_subdirectory(tests)
7997
endif()
8098

81-
if (BUILD_CTS AND (BUILD_TESTING OR BUILD_EXAMPLES))
99+
if (BUILD_CTS)
82100
add_subdirectory(cts)
83101
endif()
84102

cmake/anariConfig.cmake.in

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,14 @@
55

66
include(CMakeFindDependencyMacro)
77

8+
if (@VIEWER_ENABLE_GLTF@)
9+
find_dependency(draco)
10+
find_dependency(WebP)
11+
endif()
12+
if (@VIEWER_ENABLE_KTX@)
13+
find_dependency(Ktx)
14+
endif()
15+
816
include(${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@_Exports.cmake)
917

1018
if (NOT TARGET anari::anari)

cmake/anari_generate_codegen.cmake

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,17 @@ function(anari_generate_queries)
1919
${ARGN}
2020
)
2121

22-
find_package(Python3 REQUIRED COMPONENTS Interpreter)
22+
find_package(Python3 OPTIONAL_COMPONENTS Interpreter)
23+
if (NOT TARGET Python3::Interpreter)
24+
message(WARNING "Unable to find python interpreter, skipping code-gen targets")
25+
return()
26+
endif()
2327

2428
if (DEFINED GENERATE_JSON_ROOT_LOCATION)
2529
set(EXTRA_JSON_OPTION --json ${GENERATE_JSON_ROOT_LOCATION})
2630
endif()
2731

28-
add_custom_target(generate_${GENERATE_NAME}_device
32+
add_custom_target(generate_${GENERATE_NAME}
2933
COMMAND ${Python3_EXECUTABLE} ${ANARI_CODE_GEN_ROOT}/generate_queries.py
3034
--json ${ANARI_CODE_GEN_ROOT}
3135
${EXTRA_JSON_OPTION}
@@ -37,6 +41,6 @@ function(anari_generate_queries)
3741
)
3842

3943
if (TARGET generate_all)
40-
add_dependencies(generate_all generate_${GENERATE_NAME}_device)
44+
add_dependencies(generate_all generate_${GENERATE_NAME})
4145
endif()
4246
endfunction()

code_gen/CMakeLists.txt

Lines changed: 85 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,72 +1,98 @@
11
## Copyright 2021-2024 The Khronos Group
22
## SPDX-License-Identifier: Apache-2.0
33

4-
if(CMAKE_VERSION VERSION_GREATER_EQUAL "3.12")
4+
## Installation of scripts (independent of code-gen targets) ##
55

6-
option(INSTALL_CODE_GEN_SCRIPTS "Install scripts in code_gen/" ON)
6+
option(INSTALL_CODE_GEN_SCRIPTS "Install scripts in code_gen/" ON)
7+
if (INSTALL_CODE_GEN_SCRIPTS)
8+
install(DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
9+
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/anari
10+
COMPONENT code_gen
11+
FILES_MATCHING
12+
PATTERN *.py
13+
PATTERN *.h
14+
PATTERN *.cpp
15+
PATTERN *.json
16+
PATTERN templates/CMakeLists.txt
17+
PATTERN ./CMakeLists.txt EXCLUDE
18+
)
19+
endif()
720

8-
find_package(Python3 REQUIRED COMPONENTS Interpreter)
21+
## Local targets for code-gen + API bindings ##
922

10-
set(API_JSON api/anari_core_1_0.json api/khr_frame_completion_callback.json)
23+
if(CMAKE_VERSION VERSION_LESS "3.12")
24+
return()
25+
endif()
1126

12-
add_custom_target(generate_type_utility
13-
COMMAND ${Python3_EXECUTABLE} generate_headers.py ${CMAKE_SOURCE_DIR}/libs/anari/include/anari/frontend/type_utility.h ${API_JSON}
14-
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
15-
DEPENDS ${API_JSON} generate_headers.py
16-
)
27+
find_package(Python3 OPTIONAL_COMPONENTS Interpreter)
1728

18-
add_custom_target(generate_extension_utility
19-
COMMAND ${Python3_EXECUTABLE} generate_extension_utility.py
20-
-j ${CMAKE_CURRENT_SOURCE_DIR}/api/
21-
-d devices/experimental_device.json
22-
-o ${CMAKE_SOURCE_DIR}/libs/anari/include/anari/frontend
23-
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
24-
DEPENDS devices/experimental_device.json generate_extension_utility.py
25-
)
29+
if (NOT TARGET Python3::Interpreter)
30+
message(WARNING "Unable to find python interpreter, skipping code-gen + API bindings")
31+
return()
32+
endif()
2633

27-
add_custom_target(generate_anari_h
28-
COMMAND ${Python3_EXECUTABLE} generate_headers.py ${CMAKE_SOURCE_DIR}/libs/anari/include/anari/anari.h ${API_JSON}
29-
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
30-
DEPENDS ${API_JSON} generate_headers.py
31-
)
34+
option(INSTALL_PYTHON_BINDINGS "Install python bindings" OFF) # If turned on, draws in all the custom targets below (generate_all)
3235

33-
add_custom_target(generate_anari_enums_h
34-
COMMAND ${Python3_EXECUTABLE} generate_headers.py ${CMAKE_SOURCE_DIR}/libs/anari/include/anari/frontend/anari_enums.h ${API_JSON}
35-
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
36-
DEPENDS ${API_JSON} generate_headers.py
37-
)
38-
add_custom_target(generate_headers DEPENDS
39-
generate_type_utility
40-
generate_extension_utility
41-
generate_anari_h
42-
generate_anari_enums_h
43-
)
36+
set(API_JSON api/anari_core_1_0.json api/khr_frame_completion_callback.json)
4437

45-
add_dependencies(generate_all generate_headers)
46-
47-
add_custom_target(python_bindings
48-
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/pyanari_build.py
49-
-d ${CMAKE_CURRENT_SOURCE_DIR}/devices/generic_device.json
50-
-j ${CMAKE_CURRENT_SOURCE_DIR}/api/
51-
-I ${CMAKE_SOURCE_DIR}/libs/anari/include/
52-
-I ${CMAKE_BINARY_DIR}/libs/anari/include/anari/
53-
-L ${CMAKE_BINARY_DIR}
54-
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
55-
DEPENDS pyanari_build.py anari ${API_JSON} devices/generic_device.json
56-
)
38+
add_custom_target(generate_type_utility
39+
COMMAND ${Python3_EXECUTABLE} generate_headers.py ${CMAKE_SOURCE_DIR}/src/anari/include/anari/frontend/type_utility.h ${API_JSON}
40+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
41+
DEPENDS ${API_JSON} generate_headers.py
42+
)
5743

58-
if (INSTALL_CODE_GEN_SCRIPTS)
59-
install(DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
60-
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/anari
61-
COMPONENT code_gen
62-
FILES_MATCHING
63-
PATTERN *.py
64-
PATTERN *.h
65-
PATTERN *.cpp
66-
PATTERN *.json
67-
PATTERN templates/CMakeLists.txt
68-
PATTERN ./CMakeLists.txt EXCLUDE
69-
)
70-
endif()
44+
add_custom_target(generate_extension_utility
45+
COMMAND ${Python3_EXECUTABLE} generate_extension_utility.py
46+
-j ${CMAKE_CURRENT_SOURCE_DIR}/api/
47+
-d devices/experimental_device.json
48+
-o ${CMAKE_SOURCE_DIR}/src/anari/include/anari/frontend
49+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
50+
DEPENDS devices/experimental_device.json generate_extension_utility.py
51+
)
52+
53+
add_custom_target(generate_anari_h
54+
COMMAND ${Python3_EXECUTABLE} generate_headers.py ${CMAKE_SOURCE_DIR}/src/anari/include/anari/anari.h ${API_JSON}
55+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
56+
DEPENDS ${API_JSON} generate_headers.py
57+
)
58+
59+
add_custom_target(generate_anari_enums_h
60+
COMMAND ${Python3_EXECUTABLE} generate_headers.py ${CMAKE_SOURCE_DIR}/src/anari/include/anari/frontend/anari_enums.h ${API_JSON}
61+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
62+
DEPENDS ${API_JSON} generate_headers.py
63+
)
64+
add_custom_target(generate_headers DEPENDS
65+
generate_type_utility
66+
generate_extension_utility
67+
generate_anari_h
68+
generate_anari_enums_h
69+
)
70+
71+
add_dependencies(generate_all generate_headers)
7172

72-
endif()
73+
if (INSTALL_PYTHON_BINDINGS)
74+
set(BUILD_PYTHON_BINDINGS_BY_DEFAULT ALL)
75+
endif()
76+
77+
add_custom_target(python_bindings ${BUILD_PYTHON_BINDINGS_BY_DEFAULT}
78+
COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/pyanari_build.py
79+
-d ${CMAKE_CURRENT_SOURCE_DIR}/devices/generic_device.json
80+
-j ${CMAKE_CURRENT_SOURCE_DIR}/api/
81+
-I ${CMAKE_SOURCE_DIR}/src/anari/include/
82+
-I ${CMAKE_BINARY_DIR}/src/anari/include/anari/
83+
-L ${CMAKE_BINARY_DIR}
84+
-L ${CMAKE_BINARY_DIR}/$<CONFIG>
85+
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
86+
DEPENDS pyanari_build.py anari ${API_JSON} devices/generic_device.json
87+
)
88+
89+
if (INSTALL_PYTHON_BINDINGS)
90+
if (WIN32)
91+
set(PYANARI_LIB_FILE pyanari.pyd)
92+
else()
93+
set(PYANARI_LIB_FILE pyanari.so)
94+
endif()
95+
install(
96+
FILES ${CMAKE_CURRENT_BINARY_DIR}/anari.py ${CMAKE_CURRENT_BINARY_DIR}/${PYANARI_LIB_FILE}
97+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/python_bindings)
98+
endif()

code_gen/api/anari_core_1_0.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
{"name" : "ANARI_DATA_TYPE", "value" : 100, "baseType" : "int32_t", "elements" : 1, "normalized" : false},
1414
{"name" : "ANARI_STRING", "value" : 101, "baseType" : "const char*", "elements" : 1, "normalized" : false},
1515
{"name" : "ANARI_VOID_POINTER", "value" : 102, "baseType" : "void*", "elements" : 1, "normalized" : false},
16-
{"name" : "ANARI_BOOL", "value" : 103, "baseType" : "int32_t", "elements" : 1, "normalized" : false},
16+
{"name" : "ANARI_BOOL", "value" : 103, "baseType" : "int8_t", "elements" : 1, "normalized" : false},
1717

1818
{"name" : "ANARI_STRING_LIST", "value" : 150, "baseType" : "const char**", "elements" : 1, "normalized" : false},
1919
{"name" : "ANARI_DATA_TYPE_LIST", "value" : 151, "baseType" : "ANARIDataType*", "elements" : 1, "normalized" : false},
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
{
2+
"info" : {
3+
"name" : "EXT_SAMPLER_COMPRESSED_FORMAT_ASTC",
4+
"type" : "extension",
5+
"dependencies" : []
6+
},
7+
8+
"objects" : [
9+
{
10+
"type" : "ANARI_SAMPLER",
11+
"name" : "compressedImage2D",
12+
"parameters" : [
13+
{
14+
"name" : "format",
15+
"values" : [
16+
"ASTC_4x4",
17+
"ASTC_4x4_SRGB",
18+
"ASTC_5x4",
19+
"ASTC_5x4_SRGB",
20+
"ASTC_5x5",
21+
"ASTC_5x5_SRGB",
22+
"ASTC_6x5",
23+
"ASTC_6x5_SRGB",
24+
"ASTC_6x6",
25+
"ASTC_6x6_SRGB",
26+
"ASTC_8x5",
27+
"ASTC_8x5_SRGB",
28+
"ASTC_8x6",
29+
"ASTC_8x6_SRGB",
30+
"ASTC_8x8",
31+
"ASTC_8x8_SRGB",
32+
"ASTC_10x5",
33+
"ASTC_10x5_SRGB",
34+
"ASTC_10x6",
35+
"ASTC_10x6_SRGB",
36+
"ASTC_10x8",
37+
"ASTC_10x8_SRGB",
38+
"ASTC_10x10",
39+
"ASTC_10x10_SRGB",
40+
"ASTC_12x10",
41+
"ASTC_12x10_SRGB",
42+
"ASTC_12x12",
43+
"ASTC_12x12_SRGB"
44+
]
45+
}
46+
]
47+
}
48+
]
49+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
{
2+
"info" : {
3+
"name" : "EXT_SAMPLER_COMPRESSED_FORMAT_BC123",
4+
"type" : "extension",
5+
"dependencies" : []
6+
},
7+
8+
"objects" : [
9+
{
10+
"type" : "ANARI_SAMPLER",
11+
"name" : "compressedImage2D",
12+
"parameters" : [
13+
{
14+
"name" : "format",
15+
"values" : [
16+
"BC1_RGB",
17+
"BC1_RGB_SRGB",
18+
"BC1_RGBA",
19+
"BC1_RGBA_SRGB",
20+
"BC2",
21+
"BC2_SRGB",
22+
"BC3",
23+
"BC3_SRGB"
24+
]
25+
}
26+
]
27+
}
28+
]
29+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
{
2+
"info" : {
3+
"name" : "EXT_SAMPLER_COMPRESSED_FORMAT_BC45",
4+
"type" : "extension",
5+
"dependencies" : []
6+
},
7+
8+
"objects" : [
9+
{
10+
"type" : "ANARI_SAMPLER",
11+
"name" : "compressedImage2D",
12+
"parameters" : [
13+
{
14+
"name" : "format",
15+
"values" : [
16+
"BC4",
17+
"BC4_SNORM",
18+
"BC5",
19+
"BC5_SNORM"
20+
]
21+
}
22+
]
23+
}
24+
]
25+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
{
2+
"info" : {
3+
"name" : "EXT_SAMPLER_COMPRESSED_FORMAT_BC67",
4+
"type" : "extension",
5+
"dependencies" : []
6+
},
7+
8+
"objects" : [
9+
{
10+
"type" : "ANARI_SAMPLER",
11+
"name" : "compressedImage2D",
12+
"parameters" : [
13+
{
14+
"name" : "format",
15+
"values" : [
16+
"BC6H_UFLOAT",
17+
"BC6H_SFLOAT",
18+
"BC7",
19+
"BC7_SRGB"
20+
]
21+
}
22+
]
23+
}
24+
]
25+
}

0 commit comments

Comments
 (0)