ernie-renderer 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- ernie_renderer-0.1.0/.clang-format +16 -0
- ernie_renderer-0.1.0/.clang-tidy +30 -0
- ernie_renderer-0.1.0/.dockerignore +9 -0
- ernie_renderer-0.1.0/.gersemirc +5 -0
- ernie_renderer-0.1.0/.gitattributes +11 -0
- ernie_renderer-0.1.0/.github/actions/msvc/action.yml +27 -0
- ernie_renderer-0.1.0/.github/actions/vulkan-validation/action.yml +42 -0
- ernie_renderer-0.1.0/.github/workflows/build.yml +180 -0
- ernie_renderer-0.1.0/.github/workflows/ci.yml +106 -0
- ernie_renderer-0.1.0/.github/workflows/coverage.yml +97 -0
- ernie_renderer-0.1.0/.github/workflows/docker.yml +34 -0
- ernie_renderer-0.1.0/.github/workflows/docs.yml +24 -0
- ernie_renderer-0.1.0/.github/workflows/lint.yml +25 -0
- ernie_renderer-0.1.0/.github/workflows/packages.yml +139 -0
- ernie_renderer-0.1.0/.github/workflows/release.yml +40 -0
- ernie_renderer-0.1.0/.github/workflows/version.yml +22 -0
- ernie_renderer-0.1.0/.github/workflows/wheels.yml +71 -0
- ernie_renderer-0.1.0/.gitignore +16 -0
- ernie_renderer-0.1.0/.gitmodules +5 -0
- ernie_renderer-0.1.0/.pre-commit-config.yaml +35 -0
- ernie_renderer-0.1.0/AGENTS.md +1 -0
- ernie_renderer-0.1.0/CHANGELOG.md +33 -0
- ernie_renderer-0.1.0/CITATION.cff +22 -0
- ernie_renderer-0.1.0/CLAUDE.md +19 -0
- ernie_renderer-0.1.0/CMakeLists.txt +86 -0
- ernie_renderer-0.1.0/CMakePresets.json +206 -0
- ernie_renderer-0.1.0/CONTRIBUTING.md +1 -0
- ernie_renderer-0.1.0/Dockerfile +41 -0
- ernie_renderer-0.1.0/LICENSE +28 -0
- ernie_renderer-0.1.0/PKG-INFO +242 -0
- ernie_renderer-0.1.0/README.md +225 -0
- ernie_renderer-0.1.0/benchmarks/.gitignore +9 -0
- ernie_renderer-0.1.0/benchmarks/README.md +119 -0
- ernie_renderer-0.1.0/benchmarks/configs/scenes/hide_and_seek.toml +9 -0
- ernie_renderer-0.1.0/benchmarks/configs/suites/compare-full.toml +19 -0
- ernie_renderer-0.1.0/benchmarks/configs/suites/compare.toml +19 -0
- ernie_renderer-0.1.0/benchmarks/configs/suites/quality.toml +24 -0
- ernie_renderer-0.1.0/benchmarks/configs/suites/smoke.toml +21 -0
- ernie_renderer-0.1.0/benchmarks/configs/workloads/throughput.toml +20 -0
- ernie_renderer-0.1.0/benchmarks/envs/ernie/requirements.txt +3 -0
- ernie_renderer-0.1.0/benchmarks/envs/madrona/paths.txt +1 -0
- ernie_renderer-0.1.0/benchmarks/envs/madrona/requirements.txt +2 -0
- ernie_renderer-0.1.0/benchmarks/envs/mitsuba/requirements.txt +3 -0
- ernie_renderer-0.1.0/benchmarks/envs/newton/requirements.txt +3 -0
- ernie_renderer-0.1.0/benchmarks/envs/ovrtx/requirements.txt +4 -0
- ernie_renderer-0.1.0/benchmarks/ernie_bench/__init__.py +2 -0
- ernie_renderer-0.1.0/benchmarks/ernie_bench/analysis.py +144 -0
- ernie_renderer-0.1.0/benchmarks/ernie_bench/backends/__init__.py +33 -0
- ernie_renderer-0.1.0/benchmarks/ernie_bench/backends/base.py +111 -0
- ernie_renderer-0.1.0/benchmarks/ernie_bench/backends/ernie.py +213 -0
- ernie_renderer-0.1.0/benchmarks/ernie_bench/backends/madrona.py +167 -0
- ernie_renderer-0.1.0/benchmarks/ernie_bench/backends/mitsuba.py +144 -0
- ernie_renderer-0.1.0/benchmarks/ernie_bench/backends/newton.py +139 -0
- ernie_renderer-0.1.0/benchmarks/ernie_bench/backends/null.py +42 -0
- ernie_renderer-0.1.0/benchmarks/ernie_bench/backends/ovrtx.py +255 -0
- ernie_renderer-0.1.0/benchmarks/ernie_bench/cli.py +388 -0
- ernie_renderer-0.1.0/benchmarks/ernie_bench/config.py +173 -0
- ernie_renderer-0.1.0/benchmarks/ernie_bench/datasets/__init__.py +16 -0
- ernie_renderer-0.1.0/benchmarks/ernie_bench/datasets/hide_and_seek.py +175 -0
- ernie_renderer-0.1.0/benchmarks/ernie_bench/datasets/shapes.py +58 -0
- ernie_renderer-0.1.0/benchmarks/ernie_bench/harness.py +493 -0
- ernie_renderer-0.1.0/benchmarks/ernie_bench/media.py +279 -0
- ernie_renderer-0.1.0/benchmarks/ernie_bench/paper.py +135 -0
- ernie_renderer-0.1.0/benchmarks/ernie_bench/profile.py +136 -0
- ernie_renderer-0.1.0/benchmarks/ernie_bench/quality.py +179 -0
- ernie_renderer-0.1.0/benchmarks/ernie_bench/reference.py +125 -0
- ernie_renderer-0.1.0/benchmarks/ernie_bench/report.py +376 -0
- ernie_renderer-0.1.0/benchmarks/ernie_bench/results.py +85 -0
- ernie_renderer-0.1.0/benchmarks/ernie_bench/scene.py +171 -0
- ernie_renderer-0.1.0/benchmarks/ernie_bench/stats.py +47 -0
- ernie_renderer-0.1.0/benchmarks/ernie_bench/system/__init__.py +1 -0
- ernie_renderer-0.1.0/benchmarks/ernie_bench/system/cuda.py +159 -0
- ernie_renderer-0.1.0/benchmarks/ernie_bench/system/load.py +68 -0
- ernie_renderer-0.1.0/benchmarks/ernie_bench/system/machine.py +154 -0
- ernie_renderer-0.1.0/benchmarks/ernie_bench/system/monitor.py +95 -0
- ernie_renderer-0.1.0/benchmarks/ernie_bench/system/nvml.py +26 -0
- ernie_renderer-0.1.0/benchmarks/ernie_bench/system/perf.py +135 -0
- ernie_renderer-0.1.0/benchmarks/ernie_bench/system/process.py +61 -0
- ernie_renderer-0.1.0/benchmarks/ernie_bench/system/sampler.py +80 -0
- ernie_renderer-0.1.0/benchmarks/ernie_bench/system/tuning.py +140 -0
- ernie_renderer-0.1.0/benchmarks/ernie_bench/worker.py +45 -0
- ernie_renderer-0.1.0/benchmarks/native/madrona/CMakeLists.txt +23 -0
- ernie_renderer-0.1.0/benchmarks/native/madrona/patches/0001-header-updates-for-cuda-12.8.patch +37 -0
- ernie_renderer-0.1.0/benchmarks/native/madrona/patches/0002-rt-depth-conversion-for-last-stack-node.patch +24 -0
- ernie_renderer-0.1.0/benchmarks/native/madrona/src/CMakeLists.txt +61 -0
- ernie_renderer-0.1.0/benchmarks/native/madrona/src/bindings.cpp +94 -0
- ernie_renderer-0.1.0/benchmarks/native/madrona/src/mgr.cpp +252 -0
- ernie_renderer-0.1.0/benchmarks/native/madrona/src/mgr.hpp +67 -0
- ernie_renderer-0.1.0/benchmarks/native/madrona/src/sim.cpp +76 -0
- ernie_renderer-0.1.0/benchmarks/native/madrona/src/sim.hpp +58 -0
- ernie_renderer-0.1.0/benchmarks/native/madrona/src/sim.inl +9 -0
- ernie_renderer-0.1.0/benchmarks/native/madrona/src/types.hpp +25 -0
- ernie_renderer-0.1.0/benchmarks/pyproject.toml +28 -0
- ernie_renderer-0.1.0/benchmarks/scripts/make-env +35 -0
- ernie_renderer-0.1.0/benchmarks/scripts/setup-madrona +37 -0
- ernie_renderer-0.1.0/benchmarks/scripts/system-prep +268 -0
- ernie_renderer-0.1.0/benchmarks/tests/conftest.py +148 -0
- ernie_renderer-0.1.0/benchmarks/tests/test_accuracy.py +170 -0
- ernie_renderer-0.1.0/benchmarks/tests/test_analysis.py +147 -0
- ernie_renderer-0.1.0/benchmarks/tests/test_backends.py +92 -0
- ernie_renderer-0.1.0/benchmarks/tests/test_config.py +45 -0
- ernie_renderer-0.1.0/benchmarks/tests/test_counters.py +317 -0
- ernie_renderer-0.1.0/benchmarks/tests/test_device.py +59 -0
- ernie_renderer-0.1.0/benchmarks/tests/test_ernie.py +67 -0
- ernie_renderer-0.1.0/benchmarks/tests/test_harness.py +150 -0
- ernie_renderer-0.1.0/benchmarks/tests/test_hide_and_seek.py +74 -0
- ernie_renderer-0.1.0/benchmarks/tests/test_media.py +155 -0
- ernie_renderer-0.1.0/benchmarks/tests/test_paper.py +70 -0
- ernie_renderer-0.1.0/benchmarks/tests/test_profile.py +56 -0
- ernie_renderer-0.1.0/benchmarks/tests/test_quality.py +85 -0
- ernie_renderer-0.1.0/benchmarks/tests/test_reference.py +126 -0
- ernie_renderer-0.1.0/benchmarks/tests/test_stats.py +57 -0
- ernie_renderer-0.1.0/benchmarks/tests/test_system.py +134 -0
- ernie_renderer-0.1.0/benchmarks/tests/test_worker.py +171 -0
- ernie_renderer-0.1.0/benchmarks/tests/worker_backends.py +89 -0
- ernie_renderer-0.1.0/cmake/ErnieBuildInfo.cmake +68 -0
- ernie_renderer-0.1.0/cmake/ErnieConfig.cmake.in +84 -0
- ernie_renderer-0.1.0/cmake/ErnieEmbed.cmake +104 -0
- ernie_renderer-0.1.0/cmake/ErnieInstall.cmake +395 -0
- ernie_renderer-0.1.0/cmake/ErnieLibraries.cmake +251 -0
- ernie_renderer-0.1.0/cmake/ErniePackaging.cmake +148 -0
- ernie_renderer-0.1.0/cmake/ErniePrelude.cmake +113 -0
- ernie_renderer-0.1.0/cmake/ErnieSchema.cmake +2203 -0
- ernie_renderer-0.1.0/cmake/ernie.pc.in +11 -0
- ernie_renderer-0.1.0/cmake/third_party/basisu.cmake +109 -0
- ernie_renderer-0.1.0/cmake/third_party/bc7enc.cmake +24 -0
- ernie_renderer-0.1.0/cmake/third_party/cgltf.cmake +24 -0
- ernie_renderer-0.1.0/cmake/third_party/dear_imgui.cmake +114 -0
- ernie_renderer-0.1.0/cmake/third_party/dlpack.cmake +24 -0
- ernie_renderer-0.1.0/cmake/third_party/fonts.cmake +73 -0
- ernie_renderer-0.1.0/cmake/third_party/glfw.cmake +13 -0
- ernie_renderer-0.1.0/cmake/third_party/google_benchmark.cmake +13 -0
- ernie_renderer-0.1.0/cmake/third_party/google_test.cmake +10 -0
- ernie_renderer-0.1.0/cmake/third_party/imguizmo.cmake +15 -0
- ernie_renderer-0.1.0/cmake/third_party/json.cmake +12 -0
- ernie_renderer-0.1.0/cmake/third_party/meshoptimizer.cmake +20 -0
- ernie_renderer-0.1.0/cmake/third_party/mikktspace.cmake +18 -0
- ernie_renderer-0.1.0/cmake/third_party/nanobind.cmake +24 -0
- ernie_renderer-0.1.0/cmake/third_party/nvtx.cmake +13 -0
- ernie_renderer-0.1.0/cmake/third_party/openexr.cmake +75 -0
- ernie_renderer-0.1.0/cmake/third_party/openxr.cmake +21 -0
- ernie_renderer-0.1.0/cmake/third_party/slang.cmake +56 -0
- ernie_renderer-0.1.0/cmake/third_party/stb.cmake +31 -0
- ernie_renderer-0.1.0/cmake/third_party/tinyobjloader.cmake +18 -0
- ernie_renderer-0.1.0/cmake/third_party/vma.cmake +29 -0
- ernie_renderer-0.1.0/cmake/third_party/volk.cmake +9 -0
- ernie_renderer-0.1.0/cmake/third_party/vulkan_headers.cmake +8 -0
- ernie_renderer-0.1.0/docs/Makefile +14 -0
- ernie_renderer-0.1.0/docs/_src/acknowledgements.md +3 -0
- ernie_renderer-0.1.0/docs/_src/changelog.md +1 -0
- ernie_renderer-0.1.0/docs/_src/citing.md +7 -0
- ernie_renderer-0.1.0/docs/_src/concepts/index.md +1 -0
- ernie_renderer-0.1.0/docs/_src/coverage.md +5 -0
- ernie_renderer-0.1.0/docs/_src/gallery/index.md +1 -0
- ernie_renderer-0.1.0/docs/_src/guides/index.md +1 -0
- ernie_renderer-0.1.0/docs/_src/images/readme_front_DistanceToCamera.png +0 -0
- ernie_renderer-0.1.0/docs/_src/images/readme_front_LdrColor.png +0 -0
- ernie_renderer-0.1.0/docs/_src/images/readme_front_Normal.png +0 -0
- ernie_renderer-0.1.0/docs/_src/images/readme_front_SemanticSegmentation.png +0 -0
- ernie_renderer-0.1.0/docs/_src/images/readme_top_DistanceToCamera.png +0 -0
- ernie_renderer-0.1.0/docs/_src/images/readme_top_LdrColor.png +0 -0
- ernie_renderer-0.1.0/docs/_src/images/readme_top_Normal.png +0 -0
- ernie_renderer-0.1.0/docs/_src/images/readme_top_SemanticSegmentation.png +0 -0
- ernie_renderer-0.1.0/docs/_src/index.md +13 -0
- ernie_renderer-0.1.0/docs/_src/installation.md +228 -0
- ernie_renderer-0.1.0/docs/_src/license.md +7 -0
- ernie_renderer-0.1.0/docs/_src/quickstart.md +1 -0
- ernie_renderer-0.1.0/docs/_src/reference/index.md +1 -0
- ernie_renderer-0.1.0/docs/overrides/css/extra.css +596 -0
- ernie_renderer-0.1.0/docs/overrides/js/katex.js +12 -0
- ernie_renderer-0.1.0/docs/overrides/partials/header.html +45 -0
- ernie_renderer-0.1.0/docs/overrides/partials/nav.html +34 -0
- ernie_renderer-0.1.0/docs/requirements.txt +2 -0
- ernie_renderer-0.1.0/docs/snippets/readme.py +20 -0
- ernie_renderer-0.1.0/ernie/CMakeLists.txt +68 -0
- ernie_renderer-0.1.0/ernie/algorithms/CMakeLists.txt +23 -0
- ernie_renderer-0.1.0/ernie/algorithms/kernels/group.slang +132 -0
- ernie_renderer-0.1.0/ernie/algorithms/kernels/radix_sort.h +31 -0
- ernie_renderer-0.1.0/ernie/algorithms/kernels/radix_sort.slang +180 -0
- ernie_renderer-0.1.0/ernie/algorithms/kernels/scan.h +23 -0
- ernie_renderer-0.1.0/ernie/algorithms/kernels/scan.slang +79 -0
- ernie_renderer-0.1.0/ernie/algorithms/radix_sort.cpp +117 -0
- ernie_renderer-0.1.0/ernie/algorithms/radix_sort.h +50 -0
- ernie_renderer-0.1.0/ernie/algorithms/scan.cpp +96 -0
- ernie_renderer-0.1.0/ernie/algorithms/scan.h +57 -0
- ernie_renderer-0.1.0/ernie/app/CMakeLists.txt +39 -0
- ernie_renderer-0.1.0/ernie/app/cli.cpp +323 -0
- ernie_renderer-0.1.0/ernie/app/cli.h +51 -0
- ernie_renderer-0.1.0/ernie/app/main.cpp +9 -0
- ernie_renderer-0.1.0/ernie/app/render.cpp +244 -0
- ernie_renderer-0.1.0/ernie/app/render.h +20 -0
- ernie_renderer-0.1.0/ernie/app/viewer/CMakeLists.txt +146 -0
- ernie_renderer-0.1.0/ernie/app/viewer/imgui_config.h +6 -0
- ernie_renderer-0.1.0/ernie/app/viewer/overlays/hud.cpp +67 -0
- ernie_renderer-0.1.0/ernie/app/viewer/overlays/hud.h +28 -0
- ernie_renderer-0.1.0/ernie/app/viewer/overlays/toolbar.cpp +643 -0
- ernie_renderer-0.1.0/ernie/app/viewer/overlays/toolbar.h +68 -0
- ernie_renderer-0.1.0/ernie/app/viewer/panels/capture.cpp +120 -0
- ernie_renderer-0.1.0/ernie/app/viewer/panels/help.cpp +139 -0
- ernie_renderer-0.1.0/ernie/app/viewer/panels/memory.cpp +132 -0
- ernie_renderer-0.1.0/ernie/app/viewer/panels/panels.h +48 -0
- ernie_renderer-0.1.0/ernie/app/viewer/panels/profiler.cpp +467 -0
- ernie_renderer-0.1.0/ernie/app/viewer/panels/properties.cpp +820 -0
- ernie_renderer-0.1.0/ernie/app/viewer/panels/stage.cpp +549 -0
- ernie_renderer-0.1.0/ernie/app/viewer/panels/status.cpp +196 -0
- ernie_renderer-0.1.0/ernie/app/viewer/presenter/presenter.h +40 -0
- ernie_renderer-0.1.0/ernie/app/viewer/presenter/vulkan_presenter.cpp +762 -0
- ernie_renderer-0.1.0/ernie/app/viewer/shell/capture.cpp +283 -0
- ernie_renderer-0.1.0/ernie/app/viewer/shell/capture.h +92 -0
- ernie_renderer-0.1.0/ernie/app/viewer/shell/editor.cpp +319 -0
- ernie_renderer-0.1.0/ernie/app/viewer/shell/editor.h +55 -0
- ernie_renderer-0.1.0/ernie/app/viewer/shell/history.h +75 -0
- ernie_renderer-0.1.0/ernie/app/viewer/shell/selection.h +35 -0
- ernie_renderer-0.1.0/ernie/app/viewer/theme/theme.cpp +333 -0
- ernie_renderer-0.1.0/ernie/app/viewer/theme/theme.h +101 -0
- ernie_renderer-0.1.0/ernie/app/viewer/viewer.cpp +1720 -0
- ernie_renderer-0.1.0/ernie/app/viewer/viewer.h +324 -0
- ernie_renderer-0.1.0/ernie/app/viewer/viewport/gizmo.cpp +581 -0
- ernie_renderer-0.1.0/ernie/app/viewer/viewport/gizmo.h +110 -0
- ernie_renderer-0.1.0/ernie/app/viewer/viewport/orbit_camera.cpp +55 -0
- ernie_renderer-0.1.0/ernie/app/viewer/viewport/orbit_camera.h +27 -0
- ernie_renderer-0.1.0/ernie/app/viewer/viewport/viewport.cpp +1710 -0
- ernie_renderer-0.1.0/ernie/app/viewer/viewport/viewport.h +455 -0
- ernie_renderer-0.1.0/ernie/app/viewer/viewport/viewport.slang +29 -0
- ernie_renderer-0.1.0/ernie/app/viewer/widgets/asset_path.cpp +65 -0
- ernie_renderer-0.1.0/ernie/app/viewer/widgets/asset_path.h +24 -0
- ernie_renderer-0.1.0/ernie/app/viewer/widgets/file_dialog.cpp +379 -0
- ernie_renderer-0.1.0/ernie/app/viewer/widgets/file_dialog.h +89 -0
- ernie_renderer-0.1.0/ernie/app/viewer/widgets/widgets.cpp +61 -0
- ernie_renderer-0.1.0/ernie/app/viewer/widgets/widgets.h +18 -0
- ernie_renderer-0.1.0/ernie/bvh/CMakeLists.txt +28 -0
- ernie_renderer-0.1.0/ernie/bvh/builder.cpp +59 -0
- ernie_renderer-0.1.0/ernie/bvh/builder.h +108 -0
- ernie_renderer-0.1.0/ernie/bvh/common.cpp +107 -0
- ernie_renderer-0.1.0/ernie/bvh/common.h +68 -0
- ernie_renderer-0.1.0/ernie/bvh/hardware_builder.cpp +278 -0
- ernie_renderer-0.1.0/ernie/bvh/inspect.cpp +295 -0
- ernie_renderer-0.1.0/ernie/bvh/inspect.h +27 -0
- ernie_renderer-0.1.0/ernie/bvh/kernels/bvh.h +376 -0
- ernie_renderer-0.1.0/ernie/bvh/kernels/common.slang +56 -0
- ernie_renderer-0.1.0/ernie/bvh/kernels/instances.h +37 -0
- ernie_renderer-0.1.0/ernie/bvh/kernels/instances.slang +34 -0
- ernie_renderer-0.1.0/ernie/bvh/kernels/lbvh.h +87 -0
- ernie_renderer-0.1.0/ernie/bvh/kernels/lbvh.slang +461 -0
- ernie_renderer-0.1.0/ernie/bvh/kernels/refit.h +30 -0
- ernie_renderer-0.1.0/ernie/bvh/kernels/refit.slang +192 -0
- ernie_renderer-0.1.0/ernie/bvh/lbvh.cpp +271 -0
- ernie_renderer-0.1.0/ernie/bvh/lbvh.h +70 -0
- ernie_renderer-0.1.0/ernie/bvh/reference.cpp +321 -0
- ernie_renderer-0.1.0/ernie/bvh/reference.h +21 -0
- ernie_renderer-0.1.0/ernie/bvh/software_builder.cpp +319 -0
- ernie_renderer-0.1.0/ernie/bvh/software_builder.h +58 -0
- ernie_renderer-0.1.0/ernie/device/CMakeLists.txt +96 -0
- ernie_renderer-0.1.0/ernie/device/accel.h +116 -0
- ernie_renderer-0.1.0/ernie/device/adapter.h +85 -0
- ernie_renderer-0.1.0/ernie/device/buffer.cpp +47 -0
- ernie_renderer-0.1.0/ernie/device/buffer.h +162 -0
- ernie_renderer-0.1.0/ernie/device/commands.cpp +390 -0
- ernie_renderer-0.1.0/ernie/device/commands.h +218 -0
- ernie_renderer-0.1.0/ernie/device/compute/compute.h +784 -0
- ernie_renderer-0.1.0/ernie/device/compute/prelude.cuh +24 -0
- ernie_renderer-0.1.0/ernie/device/compute/runtime_compiler.cpp +154 -0
- ernie_renderer-0.1.0/ernie/device/compute/runtime_compiler.h +87 -0
- ernie_renderer-0.1.0/ernie/device/cuda/adapters.cpp +69 -0
- ernie_renderer-0.1.0/ernie/device/cuda/api.cpp +198 -0
- ernie_renderer-0.1.0/ernie/device/cuda/api.h +352 -0
- ernie_renderer-0.1.0/ernie/device/cuda/device.cpp +341 -0
- ernie_renderer-0.1.0/ernie/device/cuda/device.h +138 -0
- ernie_renderer-0.1.0/ernie/device/device.cpp +839 -0
- ernie_renderer-0.1.0/ernie/device/device.h +277 -0
- ernie_renderer-0.1.0/ernie/device/hip/adapters.cpp +70 -0
- ernie_renderer-0.1.0/ernie/device/hip/api.cpp +180 -0
- ernie_renderer-0.1.0/ernie/device/hip/api.h +357 -0
- ernie_renderer-0.1.0/ernie/device/hip/device.cpp +337 -0
- ernie_renderer-0.1.0/ernie/device/hip/device.h +132 -0
- ernie_renderer-0.1.0/ernie/device/hip/prelude.hip +150 -0
- ernie_renderer-0.1.0/ernie/device/kernels/device.h +38 -0
- ernie_renderer-0.1.0/ernie/device/kernels/device.slang +153 -0
- ernie_renderer-0.1.0/ernie/device/kernels/shared.h +56 -0
- ernie_renderer-0.1.0/ernie/device/kernels/texture.h +137 -0
- ernie_renderer-0.1.0/ernie/device/operation.h +49 -0
- ernie_renderer-0.1.0/ernie/device/program.cpp +406 -0
- ernie_renderer-0.1.0/ernie/device/program.h +144 -0
- ernie_renderer-0.1.0/ernie/device/queue.cpp +796 -0
- ernie_renderer-0.1.0/ernie/device/queue.h +142 -0
- ernie_renderer-0.1.0/ernie/device/ref.h +112 -0
- ernie_renderer-0.1.0/ernie/device/resource.h +38 -0
- ernie_renderer-0.1.0/ernie/device/slang/compiler.cpp +504 -0
- ernie_renderer-0.1.0/ernie/device/slang/compiler.h +57 -0
- ernie_renderer-0.1.0/ernie/device/slang/debug.cpp +151 -0
- ernie_renderer-0.1.0/ernie/device/slang/debug.h +56 -0
- ernie_renderer-0.1.0/ernie/device/slang/dispatch.h +24 -0
- ernie_renderer-0.1.0/ernie/device/slang/kernel_library.h +20 -0
- ernie_renderer-0.1.0/ernie/device/stream.h +55 -0
- ernie_renderer-0.1.0/ernie/device/tensor.cpp +179 -0
- ernie_renderer-0.1.0/ernie/device/tensor.h +119 -0
- ernie_renderer-0.1.0/ernie/device/texture.h +54 -0
- ernie_renderer-0.1.0/ernie/device/vulkan/adapters.cpp +229 -0
- ernie_renderer-0.1.0/ernie/device/vulkan/api.cpp +236 -0
- ernie_renderer-0.1.0/ernie/device/vulkan/api.h +63 -0
- ernie_renderer-0.1.0/ernie/device/vulkan/device.cpp +1144 -0
- ernie_renderer-0.1.0/ernie/device/vulkan/device.h +338 -0
- ernie_renderer-0.1.0/ernie/device/vulkan/interop.cpp +675 -0
- ernie_renderer-0.1.0/ernie/device/vulkan/interop.h +49 -0
- ernie_renderer-0.1.0/ernie/device/vulkan/native.cpp +68 -0
- ernie_renderer-0.1.0/ernie/device/vulkan/native.h +52 -0
- ernie_renderer-0.1.0/ernie/device/vulkan/queue.cpp +516 -0
- ernie_renderer-0.1.0/ernie/ernie.h +18 -0
- ernie_renderer-0.1.0/ernie/import/CMakeLists.txt +16 -0
- ernie_renderer-0.1.0/ernie/import/importer.cpp +454 -0
- ernie_renderer-0.1.0/ernie/import/importer.h +137 -0
- ernie_renderer-0.1.0/ernie/import/obj.cpp +396 -0
- ernie_renderer-0.1.0/ernie/import/obj.h +12 -0
- ernie_renderer-0.1.0/ernie/io/CMakeLists.txt +34 -0
- ernie_renderer-0.1.0/ernie/io/ies.cpp +158 -0
- ernie_renderer-0.1.0/ernie/io/ies.h +16 -0
- ernie_renderer-0.1.0/ernie/io/image.cpp +736 -0
- ernie_renderer-0.1.0/ernie/io/image.h +150 -0
- ernie_renderer-0.1.0/ernie/io/kernels/colorize.h +175 -0
- ernie_renderer-0.1.0/ernie/io/kernels/colorize.slang +88 -0
- ernie_renderer-0.1.0/ernie/io/kernels/encoding.h +63 -0
- ernie_renderer-0.1.0/ernie/io/kernels/encoding.slang +3 -0
- ernie_renderer-0.1.0/ernie/io/kernels/ies.h +11 -0
- ernie_renderer-0.1.0/ernie/python/CMakeLists.txt +184 -0
- ernie_renderer-0.1.0/ernie/python/ernie/__init__.py +153 -0
- ernie_renderer-0.1.0/ernie/python/ernie/__main__.py +12 -0
- ernie_renderer-0.1.0/ernie/python/ernie/_typed.py +151 -0
- ernie_renderer-0.1.0/ernie/python/ernie/py.typed +0 -0
- ernie_renderer-0.1.0/ernie/python/ernie/viewer.py +188 -0
- ernie_renderer-0.1.0/ernie/python/src/bindings.h +132 -0
- ernie_renderer-0.1.0/ernie/python/src/device.cpp +244 -0
- ernie_renderer-0.1.0/ernie/python/src/dlpack.cpp +283 -0
- ernie_renderer-0.1.0/ernie/python/src/imgui.cpp +251 -0
- ernie_renderer-0.1.0/ernie/python/src/importer.cpp +269 -0
- ernie_renderer-0.1.0/ernie/python/src/io.cpp +177 -0
- ernie_renderer-0.1.0/ernie/python/src/module.cpp +27 -0
- ernie_renderer-0.1.0/ernie/python/src/render.cpp +982 -0
- ernie_renderer-0.1.0/ernie/python/src/rotation.cpp +56 -0
- ernie_renderer-0.1.0/ernie/python/src/scene.cpp +990 -0
- ernie_renderer-0.1.0/ernie/python/src/values.cpp +141 -0
- ernie_renderer-0.1.0/ernie/python/src/values.h +64 -0
- ernie_renderer-0.1.0/ernie/python/src/viewer.cpp +570 -0
- ernie_renderer-0.1.0/ernie/render/CMakeLists.txt +43 -0
- ernie_renderer-0.1.0/ernie/render/kernels/background/background.slang +22 -0
- ernie_renderer-0.1.0/ernie/render/kernels/background/color.slang +22 -0
- ernie_renderer-0.1.0/ernie/render/kernels/background/gradient.slang +25 -0
- ernie_renderer-0.1.0/ernie/render/kernels/background/ibackground.slang +11 -0
- ernie_renderer-0.1.0/ernie/render/kernels/basis.slang +27 -0
- ernie_renderer-0.1.0/ernie/render/kernels/light/area.slang +373 -0
- ernie_renderer-0.1.0/ernie/render/kernels/light/distant.slang +79 -0
- ernie_renderer-0.1.0/ernie/render/kernels/light/dome.slang +188 -0
- ernie_renderer-0.1.0/ernie/render/kernels/light/ilight.slang +28 -0
- ernie_renderer-0.1.0/ernie/render/kernels/light/scatter.slang +91 -0
- ernie_renderer-0.1.0/ernie/render/kernels/material/diffuse.slang +55 -0
- ernie_renderer-0.1.0/ernie/render/kernels/material/ggx.slang +69 -0
- ernie_renderer-0.1.0/ernie/render/kernels/material/ibsdf.slang +46 -0
- ernie_renderer-0.1.0/ernie/render/kernels/material/imaterial.slang +28 -0
- ernie_renderer-0.1.0/ernie/render/kernels/material/imedium.slang +28 -0
- ernie_renderer-0.1.0/ernie/render/kernels/material/lambert.slang +42 -0
- ernie_renderer-0.1.0/ernie/render/kernels/material/mapping.slang +311 -0
- ernie_renderer-0.1.0/ernie/render/kernels/material/preview.slang +280 -0
- ernie_renderer-0.1.0/ernie/render/kernels/overlay/overlay.h +383 -0
- ernie_renderer-0.1.0/ernie/render/kernels/overlay/overlay.slang +1815 -0
- ernie_renderer-0.1.0/ernie/render/kernels/overlay/style.h +36 -0
- ernie_renderer-0.1.0/ernie/render/kernels/query/hit.slang +145 -0
- ernie_renderer-0.1.0/ernie/render/kernels/query/material.slang +50 -0
- ernie_renderer-0.1.0/ernie/render/kernels/query/ray_cast.h +36 -0
- ernie_renderer-0.1.0/ernie/render/kernels/query/ray_cast.slang +101 -0
- ernie_renderer-0.1.0/ernie/render/kernels/random.slang +42 -0
- ernie_renderer-0.1.0/ernie/render/kernels/render/irender.slang +39 -0
- ernie_renderer-0.1.0/ernie/render/kernels/render/minimal.slang +148 -0
- ernie_renderer-0.1.0/ernie/render/kernels/render/output.slang +122 -0
- ernie_renderer-0.1.0/ernie/render/kernels/render/realtime.slang +316 -0
- ernie_renderer-0.1.0/ernie/render/kernels/render/render.h +103 -0
- ernie_renderer-0.1.0/ernie/render/kernels/render/render.slang +127 -0
- ernie_renderer-0.1.0/ernie/render/kernels/sensors/camera/camera.slang +15 -0
- ernie_renderer-0.1.0/ernie/render/kernels/sensors/camera/frame.slang +126 -0
- ernie_renderer-0.1.0/ernie/render/kernels/sensors/camera/icamera.slang +45 -0
- ernie_renderer-0.1.0/ernie/render/kernels/sensors/camera/orthographic.slang +55 -0
- ernie_renderer-0.1.0/ernie/render/kernels/sensors/camera/pattern.slang +33 -0
- ernie_renderer-0.1.0/ernie/render/kernels/sensors/camera/perspective.slang +67 -0
- ernie_renderer-0.1.0/ernie/render/kernels/sensors/camera/response.slang +59 -0
- ernie_renderer-0.1.0/ernie/render/kernels/sensors/frame.slang +58 -0
- ernie_renderer-0.1.0/ernie/render/kernels/sensors/ipattern.slang +13 -0
- ernie_renderer-0.1.0/ernie/render/kernels/sensors/iresponse.slang +15 -0
- ernie_renderer-0.1.0/ernie/render/kernels/sensors/isensor.slang +12 -0
- ernie_renderer-0.1.0/ernie/render/kernels/sensors/lidar/pattern.slang +63 -0
- ernie_renderer-0.1.0/ernie/render/kernels/sensors/lidar/response.slang +158 -0
- ernie_renderer-0.1.0/ernie/render/kernels/sensors/points.slang +74 -0
- ernie_renderer-0.1.0/ernie/render/kernels/sensors/radar/pattern.slang +41 -0
- ernie_renderer-0.1.0/ernie/render/kernels/sensors/radar/response.slang +85 -0
- ernie_renderer-0.1.0/ernie/render/kernels/shapes/box.slang +57 -0
- ernie_renderer-0.1.0/ernie/render/kernels/shapes/capsule.slang +89 -0
- ernie_renderer-0.1.0/ernie/render/kernels/shapes/cone.slang +87 -0
- ernie_renderer-0.1.0/ernie/render/kernels/shapes/cylinder.slang +90 -0
- ernie_renderer-0.1.0/ernie/render/kernels/shapes/intersector.slang +92 -0
- ernie_renderer-0.1.0/ernie/render/kernels/shapes/ishape.slang +32 -0
- ernie_renderer-0.1.0/ernie/render/kernels/shapes/plane.slang +74 -0
- ernie_renderer-0.1.0/ernie/render/kernels/shapes/sphere.slang +52 -0
- ernie_renderer-0.1.0/ernie/render/kernels/spectrum/band.slang +90 -0
- ernie_renderer-0.1.0/ernie/render/kernels/spectrum/ispectrum.slang +77 -0
- ernie_renderer-0.1.0/ernie/render/kernels/spectrum/rgb.slang +68 -0
- ernie_renderer-0.1.0/ernie/render/kernels/spectrum/spectrum.slang +4 -0
- ernie_renderer-0.1.0/ernie/render/kernels/surface/compute.slang +74 -0
- ernie_renderer-0.1.0/ernie/render/kernels/surface/element.slang +58 -0
- ernie_renderer-0.1.0/ernie/render/kernels/surface/point.slang +38 -0
- ernie_renderer-0.1.0/ernie/render/kernels/surface/primvars.slang +130 -0
- ernie_renderer-0.1.0/ernie/render/kernels/trace/hardware.slang +104 -0
- ernie_renderer-0.1.0/ernie/render/kernels/trace/itracer.slang +24 -0
- ernie_renderer-0.1.0/ernie/render/kernels/trace/ray.slang +92 -0
- ernie_renderer-0.1.0/ernie/render/kernels/trace/software.slang +284 -0
- ernie_renderer-0.1.0/ernie/render/kernels/trace/tracer.slang +10 -0
- ernie_renderer-0.1.0/ernie/render/kernels/trace/triangle.slang +52 -0
- ernie_renderer-0.1.0/ernie/render/overlay/font.cpp +356 -0
- ernie_renderer-0.1.0/ernie/render/overlay/overlay.cpp +1941 -0
- ernie_renderer-0.1.0/ernie/render/overlay/overlay.h +330 -0
- ernie_renderer-0.1.0/ernie/render/overlay/overlay_impl.h +212 -0
- ernie_renderer-0.1.0/ernie/render/ray_cast/ray_cast.cpp +177 -0
- ernie_renderer-0.1.0/ernie/render/ray_cast/ray_cast.h +81 -0
- ernie_renderer-0.1.0/ernie/render/render_output.cpp +373 -0
- ernie_renderer-0.1.0/ernie/render/render_output.h +122 -0
- ernie_renderer-0.1.0/ernie/render/renderer.cpp +1084 -0
- ernie_renderer-0.1.0/ernie/render/renderer.h +47 -0
- ernie_renderer-0.1.0/ernie/render/renderer_impl.h +178 -0
- ernie_renderer-0.1.0/ernie/scene/CMakeLists.txt +86 -0
- ernie_renderer-0.1.0/ernie/scene/access/attribute.cpp +960 -0
- ernie_renderer-0.1.0/ernie/scene/access/attribute.h +302 -0
- ernie_renderer-0.1.0/ernie/scene/access/layout.cpp +135 -0
- ernie_renderer-0.1.0/ernie/scene/access/layout.h +36 -0
- ernie_renderer-0.1.0/ernie/scene/access/mapping.cpp +71 -0
- ernie_renderer-0.1.0/ernie/scene/access/mapping.h +80 -0
- ernie_renderer-0.1.0/ernie/scene/access/poses.cpp +201 -0
- ernie_renderer-0.1.0/ernie/scene/access/poses.h +52 -0
- ernie_renderer-0.1.0/ernie/scene/access/view.cpp +234 -0
- ernie_renderer-0.1.0/ernie/scene/access/view.h +88 -0
- ernie_renderer-0.1.0/ernie/scene/access/view_state.h +85 -0
- ernie_renderer-0.1.0/ernie/scene/catalog/catalog.cpp +772 -0
- ernie_renderer-0.1.0/ernie/scene/catalog/catalog.h +348 -0
- ernie_renderer-0.1.0/ernie/scene/catalog/packing.cpp +118 -0
- ernie_renderer-0.1.0/ernie/scene/catalog/packing.h +18 -0
- ernie_renderer-0.1.0/ernie/scene/catalog/paths.cpp +322 -0
- ernie_renderer-0.1.0/ernie/scene/catalog/paths.h +101 -0
- ernie_renderer-0.1.0/ernie/scene/catalog/prims.cpp +473 -0
- ernie_renderer-0.1.0/ernie/scene/catalog/prims.h +123 -0
- ernie_renderer-0.1.0/ernie/scene/catalog/tokens.cpp +34 -0
- ernie_renderer-0.1.0/ernie/scene/catalog/tokens.h +45 -0
- ernie_renderer-0.1.0/ernie/scene/kernels/attributes.h +93 -0
- ernie_renderer-0.1.0/ernie/scene/kernels/attributes.slang +157 -0
- ernie_renderer-0.1.0/ernie/scene/kernels/bounds.h +27 -0
- ernie_renderer-0.1.0/ernie/scene/kernels/bounds.slang +180 -0
- ernie_renderer-0.1.0/ernie/scene/kernels/changes.h +80 -0
- ernie_renderer-0.1.0/ernie/scene/kernels/changes.slang +55 -0
- ernie_renderer-0.1.0/ernie/scene/kernels/doubles.h +58 -0
- ernie_renderer-0.1.0/ernie/scene/kernels/geometry.h +77 -0
- ernie_renderer-0.1.0/ernie/scene/kernels/geometry.slang +208 -0
- ernie_renderer-0.1.0/ernie/scene/kernels/hierarchy.h +35 -0
- ernie_renderer-0.1.0/ernie/scene/kernels/hierarchy.slang +189 -0
- ernie_renderer-0.1.0/ernie/scene/kernels/ids.h +12 -0
- ernie_renderer-0.1.0/ernie/scene/kernels/instance_layout.h +353 -0
- ernie_renderer-0.1.0/ernie/scene/kernels/instances.h +24 -0
- ernie_renderer-0.1.0/ernie/scene/kernels/instances.slang +122 -0
- ernie_renderer-0.1.0/ernie/scene/kernels/lights.h +405 -0
- ernie_renderer-0.1.0/ernie/scene/kernels/lights.slang +538 -0
- ernie_renderer-0.1.0/ernie/scene/kernels/paged.h +38 -0
- ernie_renderer-0.1.0/ernie/scene/kernels/primvars.h +42 -0
- ernie_renderer-0.1.0/ernie/scene/kernels/scene.h +78 -0
- ernie_renderer-0.1.0/ernie/scene/kernels/scene.slang +7 -0
- ernie_renderer-0.1.0/ernie/scene/kernels/schema/schema.h +369 -0
- ernie_renderer-0.1.0/ernie/scene/kernels/schema/types.h +222 -0
- ernie_renderer-0.1.0/ernie/scene/kernels/semantics.h +24 -0
- ernie_renderer-0.1.0/ernie/scene/kernels/shapes.h +137 -0
- ernie_renderer-0.1.0/ernie/scene/kernels/tangents.h +28 -0
- ernie_renderer-0.1.0/ernie/scene/kernels/tangents.slang +81 -0
- ernie_renderer-0.1.0/ernie/scene/kernels/textures.h +27 -0
- ernie_renderer-0.1.0/ernie/scene/prim.cpp +119 -0
- ernie_renderer-0.1.0/ernie/scene/prim.h +161 -0
- ernie_renderer-0.1.0/ernie/scene/primvar.h +60 -0
- ernie_renderer-0.1.0/ernie/scene/rotation.cpp +128 -0
- ernie_renderer-0.1.0/ernie/scene/rotation.h +22 -0
- ernie_renderer-0.1.0/ernie/scene/scene.cpp +819 -0
- ernie_renderer-0.1.0/ernie/scene/scene.h +271 -0
- ernie_renderer-0.1.0/ernie/scene/scene_impl.h +168 -0
- ernie_renderer-0.1.0/ernie/scene/store/arrays.cpp +209 -0
- ernie_renderer-0.1.0/ernie/scene/store/arrays.h +85 -0
- ernie_renderer-0.1.0/ernie/scene/store/heap.cpp +68 -0
- ernie_renderer-0.1.0/ernie/scene/store/heap.h +58 -0
- ernie_renderer-0.1.0/ernie/scene/store/store.cpp +654 -0
- ernie_renderer-0.1.0/ernie/scene/store/store.h +233 -0
- ernie_renderer-0.1.0/ernie/scene/store/table.cpp +355 -0
- ernie_renderer-0.1.0/ernie/scene/store/table.h +112 -0
- ernie_renderer-0.1.0/ernie/scene/systems/bounds.cpp +204 -0
- ernie_renderer-0.1.0/ernie/scene/systems/bounds.h +63 -0
- ernie_renderer-0.1.0/ernie/scene/systems/geometry.cpp +531 -0
- ernie_renderer-0.1.0/ernie/scene/systems/geometry.h +143 -0
- ernie_renderer-0.1.0/ernie/scene/systems/hierarchy.cpp +267 -0
- ernie_renderer-0.1.0/ernie/scene/systems/hierarchy.h +71 -0
- ernie_renderer-0.1.0/ernie/scene/systems/instances.cpp +785 -0
- ernie_renderer-0.1.0/ernie/scene/systems/instances.h +168 -0
- ernie_renderer-0.1.0/ernie/scene/systems/lights.cpp +443 -0
- ernie_renderer-0.1.0/ernie/scene/systems/lights.h +79 -0
- ernie_renderer-0.1.0/ernie/scene/systems/regions.cpp +42 -0
- ernie_renderer-0.1.0/ernie/scene/systems/regions.h +45 -0
- ernie_renderer-0.1.0/ernie/scene/systems/semantics.cpp +396 -0
- ernie_renderer-0.1.0/ernie/scene/systems/semantics.h +113 -0
- ernie_renderer-0.1.0/ernie/scene/systems/system.h +38 -0
- ernie_renderer-0.1.0/ernie/scene/systems/tangents.cpp +572 -0
- ernie_renderer-0.1.0/ernie/scene/systems/tangents.h +177 -0
- ernie_renderer-0.1.0/ernie/scene/systems/textures.cpp +391 -0
- ernie_renderer-0.1.0/ernie/scene/systems/textures.h +110 -0
- ernie_renderer-0.1.0/ernie/scene/timeline/changes.cpp +56 -0
- ernie_renderer-0.1.0/ernie/scene/timeline/changes.h +64 -0
- ernie_renderer-0.1.0/ernie/scene/timeline/timeline.cpp +217 -0
- ernie_renderer-0.1.0/ernie/scene/timeline/timeline.h +70 -0
- ernie_renderer-0.1.0/ernie/scene/types.h +67 -0
- ernie_renderer-0.1.0/ernie/schema/geom.schema +551 -0
- ernie_renderer-0.1.0/ernie/schema/lux.schema +396 -0
- ernie_renderer-0.1.0/ernie/schema/render.schema +219 -0
- ernie_renderer-0.1.0/ernie/schema/sensor.schema +340 -0
- ernie_renderer-0.1.0/ernie/schema/shade.schema +298 -0
- ernie_renderer-0.1.0/ernie/texture/CMakeLists.txt +19 -0
- ernie_renderer-0.1.0/ernie/texture/cache.cpp +399 -0
- ernie_renderer-0.1.0/ernie/texture/cache.h +141 -0
- ernie_renderer-0.1.0/ernie/texture/kernels/hardware.slang +261 -0
- ernie_renderer-0.1.0/ernie/texture/kernels/itexture.slang +25 -0
- ernie_renderer-0.1.0/ernie/texture/kernels/mips.h +35 -0
- ernie_renderer-0.1.0/ernie/texture/kernels/mips.slang +75 -0
- ernie_renderer-0.1.0/ernie/texture/kernels/software.slang +324 -0
- ernie_renderer-0.1.0/ernie/texture/kernels/texel.h +76 -0
- ernie_renderer-0.1.0/ernie/texture/kernels/texture.slang +25 -0
- ernie_renderer-0.1.0/ernie/texture/kernels/tiling.slang +129 -0
- ernie_renderer-0.1.0/ernie/util/CMakeLists.txt +46 -0
- ernie_renderer-0.1.0/ernie/util/disk_cache.cpp +148 -0
- ernie_renderer-0.1.0/ernie/util/disk_cache.h +33 -0
- ernie_renderer-0.1.0/ernie/util/environment.cpp +23 -0
- ernie_renderer-0.1.0/ernie/util/environment.h +43 -0
- ernie_renderer-0.1.0/ernie/util/error.cpp +33 -0
- ernie_renderer-0.1.0/ernie/util/error.h +69 -0
- ernie_renderer-0.1.0/ernie/util/library.cpp +70 -0
- ernie_renderer-0.1.0/ernie/util/library.h +91 -0
- ernie_renderer-0.1.0/ernie/util/log.cpp +83 -0
- ernie_renderer-0.1.0/ernie/util/log.h +40 -0
- ernie_renderer-0.1.0/ernie/util/profiler.cpp +470 -0
- ernie_renderer-0.1.0/ernie/util/profiler.h +140 -0
- ernie_renderer-0.1.0/ernie/util/span.h +137 -0
- ernie_renderer-0.1.0/ernie/util/text.cpp +92 -0
- ernie_renderer-0.1.0/ernie/util/text.h +25 -0
- ernie_renderer-0.1.0/ernie/util/thread_pool.cpp +67 -0
- ernie_renderer-0.1.0/ernie/util/thread_pool.h +43 -0
- ernie_renderer-0.1.0/ernie/util/version.cpp +26 -0
- ernie_renderer-0.1.0/ernie/util/version.h +54 -0
- ernie_renderer-0.1.0/mkdocs.yml +116 -0
- ernie_renderer-0.1.0/pyproject.toml +69 -0
- ernie_renderer-0.1.0/tests/CMakeLists.txt +205 -0
- ernie_renderer-0.1.0/tests/bench/CMakeLists.txt +79 -0
- ernie_renderer-0.1.0/tests/bench/algorithms/btest_algorithms_radix_sort.cpp +60 -0
- ernie_renderer-0.1.0/tests/bench/algorithms/btest_algorithms_scan.cpp +48 -0
- ernie_renderer-0.1.0/tests/bench/bench.cpp +132 -0
- ernie_renderer-0.1.0/tests/bench/bench.h +45 -0
- ernie_renderer-0.1.0/tests/bench/bvh/btest_bvh_lbvh.cpp +93 -0
- ernie_renderer-0.1.0/tests/bench/bvh/btest_bvh_trace.cpp +102 -0
- ernie_renderer-0.1.0/tests/bench/main.cpp +125 -0
- ernie_renderer-0.1.0/tests/bench/render/btest_render_instancers.cpp +337 -0
- ernie_renderer-0.1.0/tests/bench/render/btest_render_overlay.cpp +570 -0
- ernie_renderer-0.1.0/tests/bench/render/btest_render_renderer.cpp +116 -0
- ernie_renderer-0.1.0/tests/bench/render/btest_render_scaling.cpp +464 -0
- ernie_renderer-0.1.0/tests/bench/render/btest_render_throughput.cpp +237 -0
- ernie_renderer-0.1.0/tests/bench/render/btest_render_workloads.cpp +510 -0
- ernie_renderer-0.1.0/tests/consumer/CMakeLists.txt +25 -0
- ernie_renderer-0.1.0/tests/consumer/main.cpp +51 -0
- ernie_renderer-0.1.0/tests/consumer/vulkan.cpp +32 -0
- ernie_renderer-0.1.0/tests/python/conftest.py +17 -0
- ernie_renderer-0.1.0/tests/python/test_cuda.py +37 -0
- ernie_renderer-0.1.0/tests/python/test_import.py +111 -0
- ernie_renderer-0.1.0/tests/python/test_io.py +29 -0
- ernie_renderer-0.1.0/tests/python/test_package.py +21 -0
- ernie_renderer-0.1.0/tests/python/test_poses.py +106 -0
- ernie_renderer-0.1.0/tests/python/test_render.py +104 -0
- ernie_renderer-0.1.0/tests/python/test_rotation.py +37 -0
- ernie_renderer-0.1.0/tests/python/test_scene.py +103 -0
- ernie_renderer-0.1.0/tests/support/buffers.h +50 -0
- ernie_renderer-0.1.0/tests/support/devices.h +78 -0
- ernie_renderer-0.1.0/tests/support/geometry.h +113 -0
- ernie_renderer-0.1.0/tests/support/support.h +110 -0
- ernie_renderer-0.1.0/tests/unit/algorithms/utest_algorithms_radix_sort.cpp +167 -0
- ernie_renderer-0.1.0/tests/unit/algorithms/utest_algorithms_scan.cpp +95 -0
- ernie_renderer-0.1.0/tests/unit/app/utest_app_cli.cpp +143 -0
- ernie_renderer-0.1.0/tests/unit/app/viewer/utest_viewer_editor.cpp +152 -0
- ernie_renderer-0.1.0/tests/unit/app/viewer/utest_viewer_history.cpp +56 -0
- ernie_renderer-0.1.0/tests/unit/app/viewer/utest_viewer_orbit_camera.cpp +59 -0
- ernie_renderer-0.1.0/tests/unit/bvh/utest_bvh_builder.cpp +256 -0
- ernie_renderer-0.1.0/tests/unit/bvh/utest_bvh_inspect.cpp +139 -0
- ernie_renderer-0.1.0/tests/unit/bvh/utest_bvh_lbvh.cpp +256 -0
- ernie_renderer-0.1.0/tests/unit/bvh/utest_bvh_reference.cpp +52 -0
- ernie_renderer-0.1.0/tests/unit/device/utest_device_buffer.cpp +123 -0
- ernie_renderer-0.1.0/tests/unit/device/utest_device_commands.cpp +112 -0
- ernie_renderer-0.1.0/tests/unit/device/utest_device_device.cpp +85 -0
- ernie_renderer-0.1.0/tests/unit/device/utest_device_program.cpp +107 -0
- ernie_renderer-0.1.0/tests/unit/device/utest_device_ref.cpp +61 -0
- ernie_renderer-0.1.0/tests/unit/device/utest_device_runtime_compilers.cpp +147 -0
- ernie_renderer-0.1.0/tests/unit/device/utest_device_shared.cpp +20 -0
- ernie_renderer-0.1.0/tests/unit/device/utest_device_tensor.cpp +108 -0
- ernie_renderer-0.1.0/tests/unit/import/utest_import_importer.cpp +200 -0
- ernie_renderer-0.1.0/tests/unit/io/utest_io_encoding.cpp +82 -0
- ernie_renderer-0.1.0/tests/unit/io/utest_io_ies.cpp +59 -0
- ernie_renderer-0.1.0/tests/unit/io/utest_io_image.cpp +354 -0
- ernie_renderer-0.1.0/tests/unit/render/utest_render_overlay.cpp +109 -0
- ernie_renderer-0.1.0/tests/unit/render/utest_render_ray_cast.cpp +146 -0
- ernie_renderer-0.1.0/tests/unit/render/utest_render_renderer.cpp +144 -0
- ernie_renderer-0.1.0/tests/unit/scene/utest_scene_access.cpp +654 -0
- ernie_renderer-0.1.0/tests/unit/scene/utest_scene_attachment.cpp +527 -0
- ernie_renderer-0.1.0/tests/unit/scene/utest_scene_bounds.cpp +115 -0
- ernie_renderer-0.1.0/tests/unit/scene/utest_scene_catalog.cpp +338 -0
- ernie_renderer-0.1.0/tests/unit/scene/utest_scene_geometry.cpp +334 -0
- ernie_renderer-0.1.0/tests/unit/scene/utest_scene_hierarchy.cpp +212 -0
- ernie_renderer-0.1.0/tests/unit/scene/utest_scene_instancers.cpp +217 -0
- ernie_renderer-0.1.0/tests/unit/scene/utest_scene_instances.cpp +230 -0
- ernie_renderer-0.1.0/tests/unit/scene/utest_scene_lights.cpp +340 -0
- ernie_renderer-0.1.0/tests/unit/scene/utest_scene_move.cpp +194 -0
- ernie_renderer-0.1.0/tests/unit/scene/utest_scene_paths.cpp +191 -0
- ernie_renderer-0.1.0/tests/unit/scene/utest_scene_rotation.cpp +143 -0
- ernie_renderer-0.1.0/tests/unit/scene/utest_scene_scene.cpp +542 -0
- ernie_renderer-0.1.0/tests/unit/scene/utest_scene_semantics.cpp +201 -0
- ernie_renderer-0.1.0/tests/unit/scene/utest_scene_store.cpp +425 -0
- ernie_renderer-0.1.0/tests/unit/scene/utest_scene_tangents.cpp +261 -0
- ernie_renderer-0.1.0/tests/unit/scene/utest_scene_textures.cpp +167 -0
- ernie_renderer-0.1.0/tests/unit/scene/utest_scene_timeline.cpp +249 -0
- ernie_renderer-0.1.0/tests/unit/scene/utest_scene_tokens.cpp +43 -0
- ernie_renderer-0.1.0/tests/unit/scene/utest_scene_updates.cpp +231 -0
- ernie_renderer-0.1.0/tests/unit/texture/utest_texture_cache.cpp +185 -0
- ernie_renderer-0.1.0/tests/unit/util/utest_util_disk_cache.cpp +151 -0
- ernie_renderer-0.1.0/tests/unit/util/utest_util_environment.cpp +54 -0
- ernie_renderer-0.1.0/tests/unit/util/utest_util_error.cpp +36 -0
- ernie_renderer-0.1.0/tests/unit/util/utest_util_library.cpp +134 -0
- ernie_renderer-0.1.0/tests/unit/util/utest_util_log.cpp +80 -0
- ernie_renderer-0.1.0/tests/unit/util/utest_util_profiler.cpp +367 -0
- ernie_renderer-0.1.0/tests/unit/util/utest_util_span.cpp +83 -0
- ernie_renderer-0.1.0/tests/unit/util/utest_util_text.cpp +88 -0
- ernie_renderer-0.1.0/tests/unit/util/utest_util_thread_pool.cpp +104 -0
- ernie_renderer-0.1.0/tests/unit/util/utest_util_version.cpp +41 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
BasedOnStyle: LLVM
|
|
2
|
+
Standard: c++20
|
|
3
|
+
IndentWidth: 4
|
|
4
|
+
ColumnLimit: 100
|
|
5
|
+
PointerAlignment: Left
|
|
6
|
+
ReferenceAlignment: Left
|
|
7
|
+
BreakBeforeBraces: Attach
|
|
8
|
+
AllowShortFunctionsOnASingleLine: Empty
|
|
9
|
+
AllowShortIfStatementsOnASingleLine: Never
|
|
10
|
+
SortIncludes: CaseSensitive
|
|
11
|
+
IncludeBlocks: Preserve
|
|
12
|
+
SpacesBeforeTrailingComments: 2
|
|
13
|
+
FixNamespaceComments: false
|
|
14
|
+
SeparateDefinitionBlocks: Always
|
|
15
|
+
Macros:
|
|
16
|
+
- 'ERNIE_ENUM(name)=enum class name : uint32_t'
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
Checks: >
|
|
3
|
+
-*,
|
|
4
|
+
bugprone-*,
|
|
5
|
+
performance-*,
|
|
6
|
+
portability-*,
|
|
7
|
+
clang-analyzer-*,
|
|
8
|
+
modernize-use-nullptr,
|
|
9
|
+
modernize-use-override,
|
|
10
|
+
modernize-use-equals-default,
|
|
11
|
+
modernize-use-equals-delete,
|
|
12
|
+
readability-else-after-return,
|
|
13
|
+
readability-redundant-*,
|
|
14
|
+
readability-function-size,
|
|
15
|
+
readability-function-cognitive-complexity,
|
|
16
|
+
-bugprone-easily-swappable-parameters,
|
|
17
|
+
-portability-avoid-pragma-once,
|
|
18
|
+
-performance-enum-size,
|
|
19
|
+
-performance-no-int-to-ptr,
|
|
20
|
+
-clang-analyzer-optin.core.EnumCastOutOfRange
|
|
21
|
+
CheckOptions:
|
|
22
|
+
readability-function-size.LineThreshold: 60
|
|
23
|
+
readability-function-size.NestingThreshold: 4
|
|
24
|
+
readability-function-cognitive-complexity.Threshold: 25
|
|
25
|
+
bugprone-signed-bitwise.IgnorePositiveIntegerLiterals: true
|
|
26
|
+
bugprone-exception-escape.IgnoredExceptions: format_error
|
|
27
|
+
bugprone-invalid-enum-default-initialization.IgnoredEnums: '::std::errc;::Vk.*'
|
|
28
|
+
WarningsAsErrors: ''
|
|
29
|
+
HeaderFilterRegex: '.*/ernie/[a-z_/]+\.h$'
|
|
30
|
+
FormatStyle: file
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
name: MSVC developer environment
|
|
2
|
+
description: Visual Studio's compilers and tools on the environment of the steps after this one
|
|
3
|
+
inputs:
|
|
4
|
+
arch:
|
|
5
|
+
description: The architecture to build for, as vcvarsall.bat names it, such as x64 or arm64
|
|
6
|
+
default: x64
|
|
7
|
+
runs:
|
|
8
|
+
using: composite
|
|
9
|
+
steps:
|
|
10
|
+
- shell: pwsh
|
|
11
|
+
env:
|
|
12
|
+
ARCH: ${{ inputs.arch }}
|
|
13
|
+
run: |
|
|
14
|
+
$vswhere = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe"
|
|
15
|
+
$installation = & $vswhere -latest -products * -property installationPath
|
|
16
|
+
$vcvars = Join-Path $installation "VC\Auxiliary\Build\vcvarsall.bat"
|
|
17
|
+
$before = @{}
|
|
18
|
+
Get-ChildItem env: | ForEach-Object { $before[$_.Name] = $_.Value }
|
|
19
|
+
$after = cmd /c "`"$vcvars`" $env:ARCH >nul && set"
|
|
20
|
+
if ($LASTEXITCODE -ne 0) {
|
|
21
|
+
throw "vcvarsall.bat $env:ARCH failed"
|
|
22
|
+
}
|
|
23
|
+
foreach ($line in $after) {
|
|
24
|
+
if ($line -match '^([^=]+)=(.*)$' -and $before[$Matches[1]] -ne $Matches[2]) {
|
|
25
|
+
"$($Matches[1])=$($Matches[2])" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
name: Vulkan validation layer
|
|
2
|
+
description: The LunarG SDK's Khronos validation layer on x86-64 Linux, on VK_LAYER_PATH for the steps after this one
|
|
3
|
+
inputs:
|
|
4
|
+
version:
|
|
5
|
+
description: LunarG SDK release
|
|
6
|
+
default: "1.4.341.0"
|
|
7
|
+
sha256:
|
|
8
|
+
description: Hash of the SDK's archive
|
|
9
|
+
default: "ed66477d587a5587dc3601b1c2cdcc1fab5529c505f53a00171876cecd9b4fbe"
|
|
10
|
+
runs:
|
|
11
|
+
using: composite
|
|
12
|
+
steps:
|
|
13
|
+
- uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
14
|
+
id: cache
|
|
15
|
+
with:
|
|
16
|
+
path: ~/.cache/vulkan-validation-${{ inputs.version }}
|
|
17
|
+
key: vulkan-validation-${{ inputs.version }}
|
|
18
|
+
- if: steps.cache.outputs.cache-hit != 'true'
|
|
19
|
+
shell: bash
|
|
20
|
+
run: |
|
|
21
|
+
version=${{ inputs.version }}
|
|
22
|
+
out=~/.cache/vulkan-validation-$version
|
|
23
|
+
work=$(mktemp -d)
|
|
24
|
+
curl -sSfL --retry 6 --retry-all-errors --retry-delay 15 -o "$work/sdk.tar.xz" \
|
|
25
|
+
"https://sdk.lunarg.com/sdk/download/$version/linux/vulkansdk-linux-x86_64-$version.tar.xz"
|
|
26
|
+
echo "${{ inputs.sha256 }} $work/sdk.tar.xz" | sha256sum -c -
|
|
27
|
+
tar xJf "$work/sdk.tar.xz" -C "$work" \
|
|
28
|
+
"$version/x86_64/lib/libVkLayer_khronos_validation.so" \
|
|
29
|
+
"$version/x86_64/share/vulkan/explicit_layer.d/VkLayer_khronos_validation.json"
|
|
30
|
+
mkdir -p "$out"
|
|
31
|
+
cp "$work/$version/x86_64/lib/libVkLayer_khronos_validation.so" "$out/"
|
|
32
|
+
strip --strip-unneeded "$out/libVkLayer_khronos_validation.so"
|
|
33
|
+
sed 's#"library_path": "libVkLayer#"library_path": "./libVkLayer#' \
|
|
34
|
+
"$work/$version/x86_64/share/vulkan/explicit_layer.d/VkLayer_khronos_validation.json" \
|
|
35
|
+
> "$out/VkLayer_khronos_validation.json"
|
|
36
|
+
rm -rf "$work"
|
|
37
|
+
- shell: bash
|
|
38
|
+
run: |
|
|
39
|
+
{
|
|
40
|
+
echo "VK_LAYER_PATH=$HOME/.cache/vulkan-validation-${{ inputs.version }}"
|
|
41
|
+
echo "ERNIE_VALIDATION=1"
|
|
42
|
+
} >> "$GITHUB_ENV"
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
name: Build
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_call:
|
|
5
|
+
|
|
6
|
+
permissions:
|
|
7
|
+
contents: read
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
build:
|
|
11
|
+
name: ${{ matrix.name }}
|
|
12
|
+
runs-on: ${{ matrix.os }}
|
|
13
|
+
timeout-minutes: 120
|
|
14
|
+
strategy:
|
|
15
|
+
fail-fast: false
|
|
16
|
+
matrix:
|
|
17
|
+
include:
|
|
18
|
+
- { name: linux-gcc, os: ubuntu-24.04, cc: gcc, cxx: g++ }
|
|
19
|
+
- { name: linux-clang, os: ubuntu-24.04, cc: clang-18, cxx: clang++-18 }
|
|
20
|
+
- { name: linux-arm, os: ubuntu-24.04-arm, cc: gcc, cxx: g++ }
|
|
21
|
+
- { name: windows, os: windows-2025 }
|
|
22
|
+
- { name: macos, os: macos-26 }
|
|
23
|
+
env:
|
|
24
|
+
CC: ${{ matrix.cc }}
|
|
25
|
+
CXX: ${{ matrix.cxx }}
|
|
26
|
+
CCACHE_DIR: ${{ github.workspace }}/.ccache
|
|
27
|
+
CCACHE_BASEDIR: ${{ github.workspace }}
|
|
28
|
+
CCACHE_MAXSIZE: 1G
|
|
29
|
+
steps:
|
|
30
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
31
|
+
- name: Install Ninja, ccache, the windowing libraries and lavapipe
|
|
32
|
+
if: runner.os == 'Linux'
|
|
33
|
+
run: |
|
|
34
|
+
sudo apt-get update
|
|
35
|
+
sudo apt-get install -y ninja-build ccache \
|
|
36
|
+
libx11-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev \
|
|
37
|
+
libwayland-dev libxkbcommon-dev mesa-vulkan-drivers libvulkan1
|
|
38
|
+
icd=$(find /usr/share/vulkan/icd.d -name 'lvp_icd*.json' | head -n1)
|
|
39
|
+
{
|
|
40
|
+
echo "VK_DRIVER_FILES=$icd"
|
|
41
|
+
echo "VK_ICD_FILENAMES=$icd"
|
|
42
|
+
echo "KERNEL_CACHE=$HOME/.cache/ernie"
|
|
43
|
+
} >> "$GITHUB_ENV"
|
|
44
|
+
- uses: ./.github/actions/vulkan-validation
|
|
45
|
+
if: runner.os == 'Linux' && runner.arch == 'X64'
|
|
46
|
+
- name: Install Ninja, ccache and lavapipe
|
|
47
|
+
if: runner.os == 'macOS'
|
|
48
|
+
run: |
|
|
49
|
+
brew install ninja ccache mesa vulkan-loader vulkan-validationlayers
|
|
50
|
+
prefix=$(brew --prefix)
|
|
51
|
+
icd=$(find "$prefix/share/vulkan/icd.d" -name 'lvp_icd*.json' | head -n1)
|
|
52
|
+
{
|
|
53
|
+
echo "VK_DRIVER_FILES=$icd"
|
|
54
|
+
echo "VK_ICD_FILENAMES=$icd"
|
|
55
|
+
echo "VK_LAYER_PATH=$prefix/share/vulkan/explicit_layer.d"
|
|
56
|
+
echo "ERNIE_VALIDATION=1"
|
|
57
|
+
echo "DYLD_FALLBACK_LIBRARY_PATH=$prefix/lib"
|
|
58
|
+
echo "KERNEL_CACHE=$HOME/Library/Caches/ernie"
|
|
59
|
+
} >> "$GITHUB_ENV"
|
|
60
|
+
- name: Install Ninja and ccache
|
|
61
|
+
if: runner.os == 'Windows'
|
|
62
|
+
run: choco install ninja ccache --no-progress -y
|
|
63
|
+
- name: Install lavapipe
|
|
64
|
+
if: runner.os == 'Windows'
|
|
65
|
+
shell: bash
|
|
66
|
+
run: |
|
|
67
|
+
vulkan="$RUNNER_TEMP/vulkan"
|
|
68
|
+
mkdir -p "$vulkan" && cd "$vulkan"
|
|
69
|
+
curl -fsSL -o mesa.7z https://github.com/pal1000/mesa-dist-win/releases/download/26.2.4/mesa3d-26.2.4-release-msvc.7z
|
|
70
|
+
curl -fsSL -o loader.zip https://sdk.lunarg.com/sdk/download/1.4.363.0/windows/VulkanRT-X64-1.4.363.0-Components.zip
|
|
71
|
+
echo "351fc8c8b695878ffb3eaa044b3ead08672a48b1a045e3c3e3975811df0f6695 mesa.7z" | sha256sum -c -
|
|
72
|
+
echo "a25a927aa8b9f0371048f1861cf88ac3b9bc9b1fb332c42d897c8ab32695769a loader.zip" | sha256sum -c -
|
|
73
|
+
7z x -y -omesa mesa.7z > /dev/null
|
|
74
|
+
7z x -y -oloader loader.zip > /dev/null
|
|
75
|
+
cp loader/*/x64/vulkan-1.dll mesa/x64/
|
|
76
|
+
cygpath -w "$vulkan/mesa/x64" >> "$GITHUB_PATH"
|
|
77
|
+
reg add 'HKLM\SOFTWARE\Khronos\Vulkan\Drivers' //f //t REG_DWORD //d 0 \
|
|
78
|
+
//v "$(cygpath -w "$vulkan/mesa/x64/lvp_icd.x86_64.json")"
|
|
79
|
+
echo "KERNEL_CACHE=$LOCALAPPDATA/ernie/cache" >> "$GITHUB_ENV"
|
|
80
|
+
- uses: ./.github/actions/msvc
|
|
81
|
+
if: runner.os == 'Windows'
|
|
82
|
+
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
83
|
+
with:
|
|
84
|
+
python-version: "3.10"
|
|
85
|
+
- run: python -m pip install nanobind numpy pytest
|
|
86
|
+
- uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
87
|
+
id: ccache
|
|
88
|
+
with:
|
|
89
|
+
path: .ccache
|
|
90
|
+
key: ccache-${{ matrix.name }}-${{ github.sha }}
|
|
91
|
+
restore-keys: ccache-${{ matrix.name }}-
|
|
92
|
+
- name: Configure
|
|
93
|
+
run: >
|
|
94
|
+
cmake --preset ci -DERNIE_INSTALL=ON -DERNIE_BUILD_PYTHON=ON -DERNIE_BUILD_VIEWER=ON
|
|
95
|
+
"-DPython_EXECUTABLE=$(python -c 'import sys; print(sys.executable)')"
|
|
96
|
+
-DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
|
|
97
|
+
- name: Build
|
|
98
|
+
shell: bash
|
|
99
|
+
run: |
|
|
100
|
+
ccache --zero-stats
|
|
101
|
+
cmake --build --preset ci --parallel 4
|
|
102
|
+
ccache --show-stats
|
|
103
|
+
- uses: actions/cache/save@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
104
|
+
if: always() && steps.ccache.outputs.cache-hit != 'true'
|
|
105
|
+
with:
|
|
106
|
+
path: .ccache
|
|
107
|
+
key: ccache-${{ matrix.name }}-${{ github.sha }}
|
|
108
|
+
- name: Install and build a consumer
|
|
109
|
+
shell: bash
|
|
110
|
+
run: |
|
|
111
|
+
prefix="$RUNNER_TEMP/ernie"
|
|
112
|
+
for component in runtime dev viewer viewer_dev; do
|
|
113
|
+
cmake --install build-ci --prefix "$prefix" --component "$component"
|
|
114
|
+
done
|
|
115
|
+
cmake -S tests/consumer -B build-consumer -G Ninja -DCMAKE_BUILD_TYPE=Release \
|
|
116
|
+
"-DCMAKE_PREFIX_PATH=$prefix"
|
|
117
|
+
cmake --build build-consumer
|
|
118
|
+
- uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
119
|
+
id: kernels
|
|
120
|
+
with:
|
|
121
|
+
path: ${{ env.KERNEL_CACHE }}
|
|
122
|
+
key: kernels-${{ matrix.name }}-${{ github.sha }}
|
|
123
|
+
restore-keys: kernels-${{ matrix.name }}-
|
|
124
|
+
- name: Test
|
|
125
|
+
shell: bash
|
|
126
|
+
env:
|
|
127
|
+
LP_NUM_THREADS: "1"
|
|
128
|
+
ERNIE_TEST_REQUIRE_DEVICE: "1"
|
|
129
|
+
ERNIE_TEST_FULL: "1"
|
|
130
|
+
run: ctest --preset ci -j4
|
|
131
|
+
- uses: actions/cache/save@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
132
|
+
if: always() && steps.kernels.outputs.cache-hit != 'true'
|
|
133
|
+
with:
|
|
134
|
+
path: ${{ env.KERNEL_CACHE }}
|
|
135
|
+
key: kernels-${{ matrix.name }}-${{ github.sha }}
|
|
136
|
+
|
|
137
|
+
kernels:
|
|
138
|
+
name: kernels (nvrtc, hiprtc)
|
|
139
|
+
runs-on: ubuntu-24.04
|
|
140
|
+
timeout-minutes: 60
|
|
141
|
+
env:
|
|
142
|
+
CCACHE_DIR: ${{ github.workspace }}/.ccache
|
|
143
|
+
CCACHE_BASEDIR: ${{ github.workspace }}
|
|
144
|
+
CCACHE_MAXSIZE: 1G
|
|
145
|
+
ERNIE_TEST_REQUIRE_COMPILERS: "1"
|
|
146
|
+
ERNIE_TEST_FULL: "1"
|
|
147
|
+
KERNEL_CACHE: /home/runner/.cache/ernie
|
|
148
|
+
steps:
|
|
149
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
150
|
+
- name: Install Ninja, ccache, NVRTC and hiprtc
|
|
151
|
+
run: |
|
|
152
|
+
sudo apt-get update
|
|
153
|
+
sudo apt-get install -y ninja-build ccache
|
|
154
|
+
wget -q https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-keyring_1.1-1_all.deb
|
|
155
|
+
sudo dpkg -i cuda-keyring_1.1-1_all.deb
|
|
156
|
+
sudo mkdir -p /etc/apt/keyrings
|
|
157
|
+
wget -qO- https://repo.radeon.com/rocm/rocm.gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/rocm.gpg > /dev/null
|
|
158
|
+
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/rocm/apt/7.2 noble main" \
|
|
159
|
+
| sudo tee /etc/apt/sources.list.d/rocm.list
|
|
160
|
+
sudo apt-get update
|
|
161
|
+
sudo apt-get install -y --no-install-recommends cuda-nvrtc-13-0 hip-runtime-amd
|
|
162
|
+
echo "LD_LIBRARY_PATH=/usr/local/cuda-13.0/targets/x86_64-linux/lib:/opt/rocm/lib" >> "$GITHUB_ENV"
|
|
163
|
+
- uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
164
|
+
with:
|
|
165
|
+
path: .ccache
|
|
166
|
+
key: ccache-kernels-${{ github.sha }}
|
|
167
|
+
restore-keys: ccache-kernels-
|
|
168
|
+
- uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
169
|
+
with:
|
|
170
|
+
path: ${{ env.KERNEL_CACHE }}
|
|
171
|
+
key: kernels-compilers-${{ github.sha }}
|
|
172
|
+
restore-keys: kernels-compilers-
|
|
173
|
+
- name: Configure
|
|
174
|
+
run: >
|
|
175
|
+
cmake --preset ci
|
|
176
|
+
-DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
|
|
177
|
+
- name: Build
|
|
178
|
+
run: cmake --build --preset ci --parallel 4 --target ernie_runtime_compiler_tests
|
|
179
|
+
- name: Compile every kernel with NVRTC and hiprtc
|
|
180
|
+
run: build-ci/bin/ernie_runtime_compiler_tests
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
tags: ["v*"]
|
|
7
|
+
pull_request:
|
|
8
|
+
workflow_dispatch:
|
|
9
|
+
|
|
10
|
+
permissions:
|
|
11
|
+
contents: read
|
|
12
|
+
|
|
13
|
+
concurrency:
|
|
14
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
15
|
+
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
|
|
16
|
+
|
|
17
|
+
jobs:
|
|
18
|
+
version:
|
|
19
|
+
uses: ./.github/workflows/version.yml
|
|
20
|
+
|
|
21
|
+
lint:
|
|
22
|
+
uses: ./.github/workflows/lint.yml
|
|
23
|
+
|
|
24
|
+
docs:
|
|
25
|
+
uses: ./.github/workflows/docs.yml
|
|
26
|
+
|
|
27
|
+
pages:
|
|
28
|
+
needs: [docs, coverage]
|
|
29
|
+
if: >
|
|
30
|
+
always() && github.event_name == 'push' && github.ref == 'refs/heads/main'
|
|
31
|
+
&& needs.docs.result == 'success'
|
|
32
|
+
runs-on: ubuntu-24.04
|
|
33
|
+
timeout-minutes: 10
|
|
34
|
+
permissions:
|
|
35
|
+
pages: write
|
|
36
|
+
id-token: write
|
|
37
|
+
environment:
|
|
38
|
+
name: github-pages
|
|
39
|
+
url: ${{ steps.deploy.outputs.page_url }}
|
|
40
|
+
steps:
|
|
41
|
+
- uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
|
|
42
|
+
with:
|
|
43
|
+
name: docs
|
|
44
|
+
path: site
|
|
45
|
+
- uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
|
|
46
|
+
if: needs.coverage.result == 'success'
|
|
47
|
+
with:
|
|
48
|
+
name: coverage
|
|
49
|
+
path: site/coverage/report
|
|
50
|
+
- uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5.0.0
|
|
51
|
+
with:
|
|
52
|
+
path: site
|
|
53
|
+
- id: deploy
|
|
54
|
+
uses: actions/deploy-pages@368f82528645a54fb793d4d04e342629a3f51346 # v5.0.1
|
|
55
|
+
|
|
56
|
+
build:
|
|
57
|
+
needs: version
|
|
58
|
+
uses: ./.github/workflows/build.yml
|
|
59
|
+
|
|
60
|
+
coverage:
|
|
61
|
+
needs: version
|
|
62
|
+
uses: ./.github/workflows/coverage.yml
|
|
63
|
+
|
|
64
|
+
packages:
|
|
65
|
+
needs: version
|
|
66
|
+
uses: ./.github/workflows/packages.yml
|
|
67
|
+
|
|
68
|
+
wheels:
|
|
69
|
+
needs: version
|
|
70
|
+
uses: ./.github/workflows/wheels.yml
|
|
71
|
+
|
|
72
|
+
docker:
|
|
73
|
+
needs: [lint, build]
|
|
74
|
+
uses: ./.github/workflows/docker.yml
|
|
75
|
+
permissions:
|
|
76
|
+
contents: read
|
|
77
|
+
packages: write
|
|
78
|
+
|
|
79
|
+
pypi:
|
|
80
|
+
needs: [lint, build, packages, wheels]
|
|
81
|
+
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
|
|
82
|
+
runs-on: ubuntu-24.04
|
|
83
|
+
timeout-minutes: 10
|
|
84
|
+
environment:
|
|
85
|
+
name: pypi
|
|
86
|
+
url: https://pypi.org/project/ernie-renderer/
|
|
87
|
+
permissions:
|
|
88
|
+
id-token: write
|
|
89
|
+
steps:
|
|
90
|
+
- uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
|
|
91
|
+
with:
|
|
92
|
+
pattern: wheel-*
|
|
93
|
+
merge-multiple: true
|
|
94
|
+
path: dist
|
|
95
|
+
- uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
|
|
96
|
+
with:
|
|
97
|
+
name: sdist
|
|
98
|
+
path: dist
|
|
99
|
+
- uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2
|
|
100
|
+
|
|
101
|
+
release:
|
|
102
|
+
needs: [lint, build, packages, wheels]
|
|
103
|
+
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
|
|
104
|
+
uses: ./.github/workflows/release.yml
|
|
105
|
+
permissions:
|
|
106
|
+
contents: write
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
name: Coverage
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_call:
|
|
5
|
+
|
|
6
|
+
permissions:
|
|
7
|
+
contents: read
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
coverage:
|
|
11
|
+
runs-on: ubuntu-24.04
|
|
12
|
+
timeout-minutes: 90
|
|
13
|
+
env:
|
|
14
|
+
CCACHE_DIR: ${{ github.workspace }}/.ccache
|
|
15
|
+
CCACHE_BASEDIR: ${{ github.workspace }}
|
|
16
|
+
CCACHE_MAXSIZE: 1G
|
|
17
|
+
LP_NUM_THREADS: "1"
|
|
18
|
+
ERNIE_TEST_REQUIRE_DEVICE: "1"
|
|
19
|
+
ERNIE_TEST_FULL: "1"
|
|
20
|
+
steps:
|
|
21
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
22
|
+
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
23
|
+
with:
|
|
24
|
+
python-version: "3.12"
|
|
25
|
+
- run: python -m pip install gcovr nanobind numpy pytest pytest-cov
|
|
26
|
+
- name: Install Ninja, ccache and lavapipe
|
|
27
|
+
run: |
|
|
28
|
+
sudo apt-get update
|
|
29
|
+
sudo apt-get install -y ninja-build ccache mesa-vulkan-drivers libvulkan1
|
|
30
|
+
icd=$(find /usr/share/vulkan/icd.d -name 'lvp_icd*.json' | head -n1)
|
|
31
|
+
{
|
|
32
|
+
echo "VK_DRIVER_FILES=$icd"
|
|
33
|
+
echo "VK_ICD_FILENAMES=$icd"
|
|
34
|
+
} >> "$GITHUB_ENV"
|
|
35
|
+
- uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
36
|
+
with:
|
|
37
|
+
path: .ccache
|
|
38
|
+
key: ccache-coverage-${{ github.sha }}
|
|
39
|
+
restore-keys: ccache-coverage-
|
|
40
|
+
- uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
41
|
+
with:
|
|
42
|
+
path: ~/.cache/ernie
|
|
43
|
+
key: kernels-coverage-${{ github.sha }}
|
|
44
|
+
restore-keys: kernels-coverage-
|
|
45
|
+
- name: Configure
|
|
46
|
+
run: >
|
|
47
|
+
cmake --preset coverage
|
|
48
|
+
-DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
|
|
49
|
+
"-DPython_EXECUTABLE=$(python -c 'import sys; print(sys.executable)')"
|
|
50
|
+
- name: Build
|
|
51
|
+
run: |
|
|
52
|
+
ccache --zero-stats
|
|
53
|
+
cmake --build --preset coverage --parallel 4
|
|
54
|
+
ccache --show-stats
|
|
55
|
+
- name: Test
|
|
56
|
+
run: ctest --preset coverage -j4
|
|
57
|
+
- name: Report
|
|
58
|
+
run: |
|
|
59
|
+
mkdir -p coverage
|
|
60
|
+
gcovr --root . --filter 'ernie/' --object-directory build-coverage \
|
|
61
|
+
--exclude-unreachable-branches --exclude-throw-branches \
|
|
62
|
+
--html-details coverage/index.html --json-summary coverage/summary.json \
|
|
63
|
+
--cobertura coverage/cobertura.xml --print-summary
|
|
64
|
+
gcovr --root . --filter 'ernie/[^/]+/kernels/' --object-directory build-coverage \
|
|
65
|
+
--exclude-unreachable-branches --exclude-throw-branches \
|
|
66
|
+
--json-summary coverage/kernel-summary.json
|
|
67
|
+
cp build-coverage/python-coverage.xml coverage/
|
|
68
|
+
- name: Summary
|
|
69
|
+
shell: python
|
|
70
|
+
run: |
|
|
71
|
+
import json, os
|
|
72
|
+
import xml.etree.ElementTree as tree
|
|
73
|
+
|
|
74
|
+
summary = json.load(open("coverage/summary.json"))
|
|
75
|
+
kernels = json.load(open("coverage/kernel-summary.json"))
|
|
76
|
+
python = float(tree.parse("build-coverage/python-coverage.xml").getroot().get("line-rate"))
|
|
77
|
+
|
|
78
|
+
def badge(name, label, percent):
|
|
79
|
+
color = next(c for limit, c in [(90, "brightgreen"), (75, "green"), (60, "yellow"),
|
|
80
|
+
(40, "orange"), (0, "red")] if percent >= limit)
|
|
81
|
+
json.dump({"schemaVersion": 1, "label": label, "message": f"{percent:.0f}%",
|
|
82
|
+
"color": color}, open(f"coverage/{name}", "w"))
|
|
83
|
+
|
|
84
|
+
badge("badge.json", "coverage", summary["line_percent"])
|
|
85
|
+
badge("kernel-badge.json", "kernel coverage", kernels["line_percent"])
|
|
86
|
+
with open(os.environ["GITHUB_STEP_SUMMARY"], "a") as out:
|
|
87
|
+
out.write(f"### Coverage\n\n"
|
|
88
|
+
f"- C++ lines: {summary['line_percent']:.1f}%\n"
|
|
89
|
+
f"- C++ branches: {summary['branch_percent']:.1f}%\n"
|
|
90
|
+
f"- C++ functions: {summary['function_percent']:.1f}%\n"
|
|
91
|
+
f"- Kernel lines: {kernels['line_percent']:.1f}%\n"
|
|
92
|
+
f"- Python lines: {python * 100:.1f}%\n")
|
|
93
|
+
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
|
|
94
|
+
with:
|
|
95
|
+
name: coverage
|
|
96
|
+
path: coverage
|
|
97
|
+
retention-days: 14
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
name: Docker
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_call:
|
|
5
|
+
|
|
6
|
+
permissions:
|
|
7
|
+
contents: read
|
|
8
|
+
packages: write
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
docker:
|
|
12
|
+
runs-on: ubuntu-24.04
|
|
13
|
+
timeout-minutes: 60
|
|
14
|
+
steps:
|
|
15
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
16
|
+
- name: Build
|
|
17
|
+
run: docker build --target dev -t ernie:test .
|
|
18
|
+
- name: Smoke test
|
|
19
|
+
run: >
|
|
20
|
+
docker run --rm -e LP_NUM_THREADS=1 -v "$PWD/tests/consumer:/consumer:ro" ernie:test
|
|
21
|
+
sh -c "cmake -S /consumer -B /tmp/consumer -G Ninja -DCMAKE_BUILD_TYPE=Release
|
|
22
|
+
&& cmake --build /tmp/consumer && ctest --test-dir /tmp/consumer --output-on-failure"
|
|
23
|
+
- name: Push
|
|
24
|
+
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
|
|
25
|
+
env:
|
|
26
|
+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
27
|
+
run: |
|
|
28
|
+
image=ghcr.io/${GITHUB_REPOSITORY,,}
|
|
29
|
+
echo "$GH_TOKEN" | docker login ghcr.io -u "$GITHUB_ACTOR" --password-stdin
|
|
30
|
+
version=${GITHUB_REF_NAME#v}
|
|
31
|
+
for tag in "$version" "${version%.*}" latest; do
|
|
32
|
+
docker tag ernie:test "$image:$tag"
|
|
33
|
+
docker push "$image:$tag"
|
|
34
|
+
done
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
name: Docs
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_call:
|
|
5
|
+
|
|
6
|
+
permissions:
|
|
7
|
+
contents: read
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
docs:
|
|
11
|
+
runs-on: ubuntu-24.04
|
|
12
|
+
timeout-minutes: 10
|
|
13
|
+
steps:
|
|
14
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
15
|
+
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
16
|
+
with:
|
|
17
|
+
python-version: "3.12"
|
|
18
|
+
- run: python -m pip install -r docs/requirements.txt
|
|
19
|
+
- run: mkdocs build --strict
|
|
20
|
+
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
|
|
21
|
+
with:
|
|
22
|
+
name: docs
|
|
23
|
+
path: site
|
|
24
|
+
retention-days: 14
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
name: Lint
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_call:
|
|
5
|
+
|
|
6
|
+
permissions:
|
|
7
|
+
contents: read
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
lint:
|
|
11
|
+
runs-on: ubuntu-24.04
|
|
12
|
+
timeout-minutes: 15
|
|
13
|
+
steps:
|
|
14
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
15
|
+
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
16
|
+
with:
|
|
17
|
+
python-version: "3.12"
|
|
18
|
+
- uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
|
|
19
|
+
with:
|
|
20
|
+
path: ~/.cache/pre-commit
|
|
21
|
+
key: pre-commit-${{ hashFiles('.pre-commit-config.yaml') }}
|
|
22
|
+
- run: python -m pip install pre-commit
|
|
23
|
+
- run: pre-commit run --all-files --show-diff-on-failure
|
|
24
|
+
- name: Lint workflows
|
|
25
|
+
run: docker run --rm -v "$PWD:/repo" -w /repo rhysd/actionlint:1.7.12 -color
|