ernie-renderer 0.2.0.dev149__tar.gz → 0.2.0.dev150__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.
Potentially problematic release.
This version of ernie-renderer might be problematic. Click here for more details.
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/CMakeLists.txt +1 -1
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/PKG-INFO +1 -1
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/benchmarks/CMakeLists.txt +1 -0
- ernie_renderer-0.2.0.dev150/benchmarks/render/batch_step.cpp +114 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/queue.cpp +56 -8
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/queue.h +41 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/graph/graph.cpp +76 -2
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/graph/graph.h +43 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/device_scene.cpp +31 -2
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/device_scene.h +30 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/renderer.cpp +22 -6
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/renderer.h +3 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/rt/bottom_levels.cpp +1 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/rt/bottom_levels.h +4 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/scene_columns.cpp +1 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/graph/graph_test.cpp +50 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/render/renderer_test.cpp +17 -7
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/.clang-format +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/.clang-tidy +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/.dockerignore +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/.gersemirc +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/.gitattributes +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/.github/scripts/coverage_badge.py +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/.github/scripts/install-lavapipe-windows.sh +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/.github/workflows/ci.yml +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/.gitignore +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/.pre-commit-config.yaml +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/CMakePresets.json +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/Dockerfile +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/LICENSE +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/README.md +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/benchmarks/bench.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/benchmarks/device/pose_step.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/benchmarks/main.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/benchmarks/render/transform_graph.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/benchmarks/scene/extents.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/benchmarks/scene/storage.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/cmake/EmbedShader.cmake +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/cmake/ErnieConfig.cmake.in +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/cmake/ErnieFetch.cmake +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/cmake/ErnieInstall.cmake +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/cmake/ErniePackaging.cmake +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/cmake/ErnieShaders.cmake +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/cmake/ErnieTesting.cmake +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/cmake/ernie.pc.in +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/cmake/third_party/dear_imgui.cmake +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/cmake/third_party/glfw.cmake +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/cmake/third_party/googletest.cmake +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/cmake/third_party/nanobind.cmake +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/cmake/third_party/openexr.cmake +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/cmake/third_party/slang.cmake +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/cmake/third_party/tracy.cmake +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/docs/README.md +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/docs/index.md +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/docs/requirements.txt +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/CMakeLists.txt +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/app/CMakeLists.txt +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/app/imgui_backend.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/app/imgui_backend.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/app/main.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/app/ui.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/app/ui.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/app/viewer.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/app/viewer.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/CMakeLists.txt +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/acceleration.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/acceleration.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/arena.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/arena.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/bindless.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/bindless.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/buffer.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/buffer.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/column.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/column.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/commands.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/commands.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/context.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/context.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/cuda.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/cuda.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/device.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/external.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/external.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/image.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/image.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/instance.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/instance.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/kernel.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/kernel.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/profile.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/profile.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/shader_compiler.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/shader_compiler.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/staging.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/staging.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/vulkan.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/vulkan.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/geometry/CMakeLists.txt +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/geometry/bounds.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/geometry/triangulation.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/geometry/triangulation.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/graph/CMakeLists.txt +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/graph/blackboard.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/graph/dependencies.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/graph/dependencies.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/graph/pool.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/graph/pool.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/io/CMakeLists.txt +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/io/ies.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/io/ies.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/io/image.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/io/image.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/io/nanovdb.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/io/nanovdb.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/io/raster.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/io/raster.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/io/texture.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/io/texture.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/physics/CMakeLists.txt +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/physics/astronomy.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/physics/astronomy.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/physics/atmosphere.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/physics/atmosphere.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/physics/cloud.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/physics/cloud.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/physics/constants.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/physics/reflectance_library.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/physics/reflectance_library.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/physics/reflectance_table.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/physics/regolith.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/physics/regolith.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/physics/scattering.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/physics/scattering.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/physics/solar.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/physics/solar.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/physics/solar_table.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/physics/spectrum.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/physics/spectrum.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/python/CMakeLists.txt +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/python/device.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/python/device.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/python/dlpack.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/python/dlpack.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/python/ernie/__init__.py +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/python/module.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/python/render.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/python/render.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/python/scene.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/python/scene.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/CMakeLists.txt +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/geometry.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/geometry.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/instances.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/instances.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/prim_rows.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/prim_rows.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/products.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/products.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/rt/camera_pass.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/rt/camera_pass.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/rt/ray_tracer.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/rt/ray_tracer.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/rt/top_levels.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/rt/top_levels.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/scene_columns.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/transform_graph.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/transform_graph.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/CMakeLists.txt +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/animation.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/convert.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/edit_history.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/edit_history.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/extent_cache.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/extent_cache.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/holder_index.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/holder_index.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/inherit.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/json.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/json.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/json_value.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/path.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/path.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/reference.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/reference.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/scene.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/scene.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/schema/camera.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/schema/camera.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/schema/collection.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/schema/geom.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/schema/geom.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/schema/instancer.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/schema/instancer.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/schema/lux.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/schema/lux.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/schema/mesh.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/schema/mesh.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/schema/planet.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/schema/planet.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/schema/registry.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/schema/render.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/schema/render.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/schema/shade.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/schema/shade.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/schema/vol.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/schema/vol.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/schema.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/schema.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/storage.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/storage.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/time_samples.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/time_samples.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/tokens.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/usd_plugin.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/validate.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/value.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/view.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/view.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/xform.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/xform.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/shaders/CMakeLists.txt +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/shaders/device/bindless.slang +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/shaders/device/buffer_ref.slang +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/shaders/math/affine.slang +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/shaders/math/double_float.slang +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/shaders/rt/ray_tracer.slang +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/shaders/rt/write_instances.slang +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/shaders/scene/geometry.slang +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/shaders/scene/shapes.slang +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/shaders/scene/transform.slang +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/shaders/sensors/camera.slang +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/shaders/sensors/lens.slang +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/shaders/shared.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/shaders/spectral/spectrum.slang +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/CMakeLists.txt +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/algorithm.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/bytes.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/disk_cache.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/disk_cache.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/file.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/file.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/glm.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/hash_index.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/library.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/library.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/linear_algebra.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/log.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/log.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/math.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/noise.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/noise.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/numbers.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/on_failure.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/parallel.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/profiler.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/profiler.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/random.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/tensor.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/tensor.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/text.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/version.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/version.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/worker_pool.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/mkdocs.yml +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/pyproject.toml +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/CMakeLists.txt +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/app/orbit_camera_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/app/shell_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/app/view_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/app/viewer_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/common.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/consumer/CMakeLists.txt +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/consumer/first_render.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/consumer/main.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/device/acceleration_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/device/arena_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/device/bindless_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/device/column_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/device/columns.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/device/common.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/device/context_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/device/cuda_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/device/external_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/device/kernel_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/device/pose_step.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/device/profile_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/device/vulkan_devices_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/exr/README.md +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/exr/make_exr.py +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/exr/rgb_float_zip.exr +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/exr/rgba_half_window.exr +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/exr/y_half_zips.exr +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/ies/README.md +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/ies/downlight_quadrant.ies +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/ies/floodlight_type_b.ies +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/ies/lamp.tilt +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/images/grey16.png +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/ktx2/README.md +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/ktx2/quadrants_etc1s.ktx2 +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/ktx2/quadrants_uastc_zstd.ktx2 +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/ktx2/tilted_normal_etc1s.ktx2 +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/ktx2/tilted_normal_uastc.ktx2 +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/scenes/README.md +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/scenes/invalid/problems.expected +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/scenes/invalid/problems.json +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/scenes/rover.json +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/scenes/rover.saved.json +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/tiff/README.md +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/tiff/float_deflate_predictor3.tif +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/tiff/float_raw.tif +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/tiff/int16_bigtiff_bigendian.tif +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/tiff/rgb_lzw_predictor2.tif +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/tiff/rgb_planar_lzw.tif +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/tiff/rgb_planar_raw.tif +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/tiff/rgb_tiled_deflate.tif +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/volumes/cube.nvdb +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/volumes/make_nvdb.py +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/geometry/bounds_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/geometry/triangulation_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/graph/dependencies_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/io/ies_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/io/image_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/io/nanovdb_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/io/raster_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/io/texture_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/physics/astronomy_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/physics/atmosphere_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/physics/cloud_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/physics/reflectance_library_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/physics/regolith_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/physics/scattering_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/physics/solar_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/physics/spectrum_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/python/conftest.py +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/python/test_device_dlpack.py +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/python/test_device_torch.py +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/python/test_package.py +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/python/test_render.py +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/python/test_scene.py +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/python/test_scene_schema.py +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/render/acceleration_scene_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/render/camera_pass_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/render/common.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/render/device_scene_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/render/geometry_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/render/gradients_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/render/ray_tracer_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/render/scene_columns_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/render/shaders_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/render/transform_graph_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/scene/edit_history_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/scene/extent_cache_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/scene/inherit_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/scene/instancer_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/scene/json_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/scene/lux_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/scene/mesh_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/scene/path_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/scene/planet_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/scene/reference_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/scene/render_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/scene/scene_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/scene/schema_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/scene/shade_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/scene/storage_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/scene/time_samples_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/scene/vol_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/scene/xform_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/util/algorithm_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/util/bytes_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/util/disk_cache_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/util/file_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/util/hash_index_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/util/linear_algebra_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/util/log_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/util/math_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/util/noise_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/util/parallel_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/util/profiler_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/util/random_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/util/tensor_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/util/text_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/util/version_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/util/worker_pool_test.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/CMakeLists.txt +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/README.md +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/LICENSE +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/LICENSES/Apache-2.0.txt +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/LICENSES/BSD-3-clause.txt +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/LICENSES/MIT.txt +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/NOTICE +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/README.md +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_astc_cfgs.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_astc_hdr_core.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_astc_helpers.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_containers.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_containers_impl.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_dds_transcoder.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_etc1_mods.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_file_headers.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_idct.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_transcoder.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_transcoder.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_transcoder_internal.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_transcoder_tables_astc.inc +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_transcoder_tables_astc_0_255.inc +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_transcoder_tables_atc_55.inc +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_transcoder_tables_atc_56.inc +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_transcoder_tables_bc7_m5_alpha.inc +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_transcoder_tables_bc7_m5_color.inc +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_transcoder_tables_dxt1_5.inc +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_transcoder_tables_dxt1_6.inc +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_transcoder_tables_pvrtc2_45.inc +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_transcoder_tables_pvrtc2_alpha_33.inc +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_transcoder_uastc.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_xbc7_decoder.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_xbc7_decoder.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/zstd/LICENSE +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/zstd/zstd.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/zstd/zstd_errors.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/bc7enc/LICENSE +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/bc7enc/README.md +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/bc7enc/bc7decomp.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/bc7enc/bc7decomp.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/bc7enc/bc7enc.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/bc7enc/bc7enc.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/bc7enc/rgbcx.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/bc7enc/rgbcx.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/bc7enc/rgbcx_table4.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/bc7enc/rgbcx_table4_small.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/dlpack/LICENSE +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/dlpack/README.md +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/dlpack/include/dlpack/dlpack.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/README.md +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/copying.txt +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/common.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/_features.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/_fixes.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/_noise.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/_swizzle.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/_swizzle_func.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/_vectorize.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/compute_common.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/compute_vector_decl.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/compute_vector_relational.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/func_common.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/func_common_simd.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/func_exponential.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/func_exponential_simd.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/func_geometric.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/func_geometric_simd.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/func_integer.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/func_integer_simd.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/func_matrix.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/func_matrix_simd.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/func_packing.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/func_packing_simd.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/func_trigonometric.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/func_trigonometric_simd.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/func_vector_relational.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/func_vector_relational_simd.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/qualifier.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/setup.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_float.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_half.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_half.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_mat2x2.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_mat2x2.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_mat2x3.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_mat2x3.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_mat2x4.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_mat2x4.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_mat3x2.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_mat3x2.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_mat3x3.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_mat3x3.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_mat3x4.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_mat3x4.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_mat4x2.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_mat4x2.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_mat4x3.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_mat4x3.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_mat4x4.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_mat4x4.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_mat4x4_simd.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_quat.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_quat.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_quat_simd.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_vec1.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_vec1.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_vec2.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_vec2.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_vec3.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_vec3.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_vec4.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_vec4.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_vec_simd.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/exponential.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/_matrix_vectorize.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_clip_space.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_clip_space.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_common.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_common.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_double2x2.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_double2x2_precision.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_double2x3.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_double2x3_precision.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_double2x4.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_double2x4_precision.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_double3x2.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_double3x2_precision.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_double3x3.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_double3x3_precision.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_double3x4.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_double3x4_precision.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_double4x2.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_double4x2_precision.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_double4x3.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_double4x3_precision.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_double4x4.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_double4x4_precision.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_float2x2.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_float2x2_precision.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_float2x3.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_float2x3_precision.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_float2x4.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_float2x4_precision.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_float3x2.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_float3x2_precision.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_float3x3.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_float3x3_precision.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_float3x4.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_float3x4_precision.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_float4x2.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_float4x2_precision.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_float4x3.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_float4x3_precision.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_float4x4.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_float4x4_precision.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_int2x2.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_int2x2_sized.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_int2x3.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_int2x3_sized.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_int2x4.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_int2x4_sized.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_int3x2.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_int3x2_sized.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_int3x3.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_int3x3_sized.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_int3x4.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_int3x4_sized.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_int4x2.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_int4x2_sized.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_int4x3.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_int4x3_sized.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_int4x4.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_int4x4_sized.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_integer.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_integer.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_projection.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_projection.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_relational.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_relational.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_transform.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_transform.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_uint2x2.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_uint2x2_sized.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_uint2x3.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_uint2x3_sized.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_uint2x4.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_uint2x4_sized.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_uint3x2.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_uint3x2_sized.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_uint3x3.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_uint3x3_sized.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_uint3x4.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_uint3x4_sized.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_uint4x2.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_uint4x2_sized.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_uint4x3.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_uint4x3_sized.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_uint4x4.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_uint4x4_sized.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/quaternion_common.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/quaternion_common.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/quaternion_common_simd.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/quaternion_double.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/quaternion_double_precision.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/quaternion_exponential.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/quaternion_exponential.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/quaternion_float.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/quaternion_float_precision.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/quaternion_geometric.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/quaternion_geometric.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/quaternion_relational.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/quaternion_relational.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/quaternion_transform.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/quaternion_transform.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/quaternion_trigonometric.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/quaternion_trigonometric.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/scalar_common.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/scalar_common.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/scalar_constants.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/scalar_constants.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/scalar_int_sized.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/scalar_integer.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/scalar_integer.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/scalar_packing.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/scalar_packing.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/scalar_reciprocal.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/scalar_reciprocal.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/scalar_relational.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/scalar_relational.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/scalar_uint_sized.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/scalar_ulp.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/scalar_ulp.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_bool1.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_bool1_precision.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_bool2.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_bool2_precision.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_bool3.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_bool3_precision.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_bool4.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_bool4_precision.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_common.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_common.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_double1.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_double1_precision.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_double2.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_double2_precision.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_double3.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_double3_precision.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_double4.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_double4_precision.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_float1.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_float1_precision.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_float2.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_float2_precision.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_float3.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_float3_precision.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_float4.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_float4_precision.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_int1.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_int1_sized.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_int2.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_int2_sized.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_int3.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_int3_sized.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_int4.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_int4_sized.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_integer.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_integer.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_packing.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_packing.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_reciprocal.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_reciprocal.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_relational.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_relational.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_uint1.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_uint1_sized.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_uint2.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_uint2_sized.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_uint3.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_uint3_sized.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_uint4.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_uint4_sized.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_ulp.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_ulp.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/fwd.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/geometric.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/glm.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/bitfield.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/bitfield.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/color_space.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/color_space.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/constants.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/constants.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/epsilon.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/epsilon.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/integer.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/integer.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/matrix_access.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/matrix_access.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/matrix_integer.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/matrix_inverse.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/matrix_inverse.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/matrix_transform.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/matrix_transform.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/noise.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/noise.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/packing.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/packing.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/quaternion.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/quaternion.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/quaternion_simd.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/random.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/random.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/reciprocal.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/round.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/round.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/type_aligned.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/type_precision.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/type_precision.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/type_ptr.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/type_ptr.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/ulp.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/ulp.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/vec1.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/associated_min_max.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/associated_min_max.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/bit.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/bit.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/closest_point.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/closest_point.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/color_encoding.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/color_encoding.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/color_space.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/color_space.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/color_space_YCoCg.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/color_space_YCoCg.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/common.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/common.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/compatibility.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/compatibility.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/component_wise.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/component_wise.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/dual_quaternion.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/dual_quaternion.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/easing.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/easing.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/euler_angles.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/euler_angles.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/extend.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/extend.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/extended_min_max.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/extended_min_max.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/exterior_product.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/exterior_product.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/fast_exponential.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/fast_exponential.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/fast_square_root.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/fast_square_root.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/fast_trigonometry.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/fast_trigonometry.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/float_normalize.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/functions.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/functions.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/gradient_paint.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/gradient_paint.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/handed_coordinate_space.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/handed_coordinate_space.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/hash.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/hash.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/integer.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/integer.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/intersect.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/intersect.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/io.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/io.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/iteration.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/iteration.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/log_base.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/log_base.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/matrix_cross_product.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/matrix_cross_product.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/matrix_decompose.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/matrix_decompose.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/matrix_factorisation.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/matrix_factorisation.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/matrix_interpolation.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/matrix_interpolation.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/matrix_major_storage.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/matrix_major_storage.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/matrix_operation.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/matrix_operation.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/matrix_query.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/matrix_query.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/matrix_transform_2d.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/matrix_transform_2d.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/mixed_product.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/mixed_product.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/norm.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/norm.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/normal.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/normal.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/normalize_dot.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/normalize_dot.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/number_precision.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/optimum_pow.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/optimum_pow.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/orthonormalize.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/orthonormalize.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/pca.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/pca.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/perpendicular.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/perpendicular.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/polar_coordinates.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/polar_coordinates.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/projection.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/projection.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/quaternion.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/quaternion.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/range.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/raw_data.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/raw_data.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/rotate_normalized_axis.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/rotate_normalized_axis.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/rotate_vector.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/rotate_vector.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/scalar_multiplication.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/scalar_relational.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/scalar_relational.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/spline.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/spline.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/std_based_type.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/std_based_type.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/string_cast.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/string_cast.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/structured_bindings.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/structured_bindings.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/texture.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/texture.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/transform.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/transform.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/transform2.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/transform2.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/type_aligned.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/type_aligned.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/type_trait.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/type_trait.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/vec_swizzle.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/vector_angle.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/vector_angle.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/vector_query.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/vector_query.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/wrap.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/wrap.inl +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/integer.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/mat2x2.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/mat2x3.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/mat2x4.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/mat3x2.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/mat3x3.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/mat3x4.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/mat4x2.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/mat4x3.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/mat4x4.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/matrix.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/packing.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/simd/common.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/simd/exponential.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/simd/geometric.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/simd/integer.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/simd/matrix.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/simd/neon.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/simd/packing.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/simd/platform.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/simd/trigonometric.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/simd/vector_relational.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/trigonometric.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/vec2.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/vec3.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/vec4.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/vector_relational.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/json/LICENSE.MIT +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/json/README.md +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/json/include/nlohmann/json.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/json/include/nlohmann/json_fwd.hpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/nanovdb/LICENSE +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/nanovdb/PNanoVDB.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/stb/LICENSE +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/stb/README.md +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/stb/stb_image.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/stb/stb_image_write.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/stb.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vma/LICENSE.txt +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vma/README.md +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vma/include/vk_mem_alloc.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vma.cpp +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/volk/LICENSE.md +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/volk/README.md +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/volk/volk.c +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/volk/volk.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/LICENSE.md +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/LICENSES/Apache-2.0.txt +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/LICENSES/MIT.txt +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/README.md +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vk_video/vulkan_video_codec_av1std.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vk_video/vulkan_video_codec_av1std_decode.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vk_video/vulkan_video_codec_av1std_encode.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vk_video/vulkan_video_codec_h264std.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vk_video/vulkan_video_codec_h264std_decode.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vk_video/vulkan_video_codec_h264std_encode.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vk_video/vulkan_video_codec_h265std.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vk_video/vulkan_video_codec_h265std_decode.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vk_video/vulkan_video_codec_h265std_encode.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vk_video/vulkan_video_codec_vp9std.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vk_video/vulkan_video_codec_vp9std_decode.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vk_video/vulkan_video_codecs_common.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vulkan/vk_icd.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vulkan/vk_layer.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vulkan/vk_platform.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vulkan/vulkan.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vulkan/vulkan_android.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vulkan/vulkan_beta.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vulkan/vulkan_core.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vulkan/vulkan_directfb.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vulkan/vulkan_fuchsia.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vulkan/vulkan_ggp.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vulkan/vulkan_ios.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vulkan/vulkan_macos.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vulkan/vulkan_metal.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vulkan/vulkan_ohos.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vulkan/vulkan_screen.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vulkan/vulkan_ubm.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vulkan/vulkan_vi.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vulkan/vulkan_wayland.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vulkan/vulkan_win32.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vulkan/vulkan_xcb.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vulkan/vulkan_xlib.h +0 -0
- {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vulkan/vulkan_xlib_xrandr.h +0 -0
|
@@ -15,7 +15,7 @@ project(
|
|
|
15
15
|
)
|
|
16
16
|
|
|
17
17
|
# Pre-release suffix such as .dev12, written by CI.
|
|
18
|
-
set(ERNIE_VERSION_SUFFIX ".
|
|
18
|
+
set(ERNIE_VERSION_SUFFIX ".dev150" CACHE STRING "Pre-release suffix of Ernie's version")
|
|
19
19
|
set(ERNIE_VERSION "${PROJECT_VERSION}${ERNIE_VERSION_SUFFIX}")
|
|
20
20
|
|
|
21
21
|
option(ERNIE_BUILD_TESTS "Build Ernie's tests" OFF)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ernie-renderer
|
|
3
|
-
Version: 0.2.0.
|
|
3
|
+
Version: 0.2.0.dev150
|
|
4
4
|
Summary: Efficient Renderer for Natural and Interplanetary Environments: a physically based, spectral Vulkan ray tracer
|
|
5
5
|
Author: Alex Maietta
|
|
6
6
|
License-Expression: BSD-3-Clause
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
// SPDX-License-Identifier: BSD-3-Clause
|
|
2
|
+
/// @file batch_step.cpp
|
|
3
|
+
/// @brief Batched rendering as reinforcement learning uses it, after Madrona's procedural benchmark
|
|
4
|
+
/// scenes: thousands of worlds, each a few shapes over a shared ground, a 64 x 64 camera a world
|
|
5
|
+
/// rendering colour and depth, every view in one dispatch. Reports views a second.
|
|
6
|
+
#include "benchmarks/bench.h"
|
|
7
|
+
#include "ernie/device/context.h"
|
|
8
|
+
#include "ernie/render/renderer.h"
|
|
9
|
+
#include "ernie/scene/schema/camera.h"
|
|
10
|
+
#include "ernie/scene/schema/geom.h"
|
|
11
|
+
#include "ernie/scene/schema/planet.h"
|
|
12
|
+
#include "ernie/scene/schema/render.h"
|
|
13
|
+
#include "ernie/scene/tokens.h"
|
|
14
|
+
#include "ernie/scene/xform.h"
|
|
15
|
+
#include "ernie/util/profiler.h"
|
|
16
|
+
|
|
17
|
+
#include <cstdio>
|
|
18
|
+
#include <cstdlib>
|
|
19
|
+
#include <memory>
|
|
20
|
+
#include <random>
|
|
21
|
+
#include <string>
|
|
22
|
+
#include <vector>
|
|
23
|
+
|
|
24
|
+
namespace ernie::bench {
|
|
25
|
+
namespace {
|
|
26
|
+
|
|
27
|
+
constexpr int kShapesPerWorld = 8;
|
|
28
|
+
constexpr glm::uvec2 kSize{64, 64};
|
|
29
|
+
|
|
30
|
+
/// @brief A scene of `worlds` worlds side by side, each with shapes scattered in front of its
|
|
31
|
+
/// camera, and the products rendering every camera's colour and depth.
|
|
32
|
+
void BuildWorlds(Scene& scene, int worlds) {
|
|
33
|
+
GroundPlane::Define(scene, "/Ground");
|
|
34
|
+
const std::vector<Path> vars{Path("/Render/Vars/Colour"), Path("/Render/Vars/Depth")};
|
|
35
|
+
RenderVar::Define(scene, vars[0]).SetSourceName(std::string(render_vars::kLdrColor));
|
|
36
|
+
RenderVar::Define(scene, vars[1]).SetSourceName(std::string(render_vars::kDistanceToCamera));
|
|
37
|
+
std::mt19937 random(7);
|
|
38
|
+
std::uniform_real_distribution<double> spread(-2.0, 2.0);
|
|
39
|
+
std::vector<Path> products;
|
|
40
|
+
for (int world = 0; world < worlds; ++world) {
|
|
41
|
+
const std::string root = "/World" + std::to_string(world);
|
|
42
|
+
Xform::Define(scene, root).SetWorld(world);
|
|
43
|
+
for (int shape = 0; shape < kShapesPerWorld; ++shape) {
|
|
44
|
+
const std::string path = root + "/Shape" + std::to_string(shape);
|
|
45
|
+
if (shape % 2 == 0) {
|
|
46
|
+
Sphere::Define(scene, path).SetRadius(0.4);
|
|
47
|
+
} else {
|
|
48
|
+
Cube::Define(scene, path).SetSize(0.7);
|
|
49
|
+
}
|
|
50
|
+
SetXform(scene, path,
|
|
51
|
+
{.translate = glm::dvec3(spread(random), 5.0 + spread(random),
|
|
52
|
+
0.5 + 0.2 * spread(random))});
|
|
53
|
+
}
|
|
54
|
+
const std::string camera = root + "/Camera";
|
|
55
|
+
Camera::Define(scene, camera).SetHorizontalAperture(0.036).SetVerticalAperture(0.036);
|
|
56
|
+
scene.Set(camera, tokens::kTransform,
|
|
57
|
+
LookAtTransform({0.0, 0.0, 1.5}, {0.0, 5.0, 0.5}, {0.0, 0.0, 1.0}));
|
|
58
|
+
products.emplace_back("/Render/View" + std::to_string(world));
|
|
59
|
+
RenderProduct::Define(scene, products.back())
|
|
60
|
+
.SetCamera(camera)
|
|
61
|
+
.SetResolution(glm::dvec2(kSize))
|
|
62
|
+
.SetOrderedVars(vars);
|
|
63
|
+
}
|
|
64
|
+
RenderSettings::Define(scene, "/Render/Settings").SetProducts(products);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
Timing StepWorlds(int worlds, double targetMs) {
|
|
68
|
+
std::unique_ptr<Renderer> renderer;
|
|
69
|
+
try {
|
|
70
|
+
renderer = std::make_unique<Renderer>();
|
|
71
|
+
} catch (const std::exception& error) {
|
|
72
|
+
std::printf("skipped: %s\n", error.what());
|
|
73
|
+
return {0.0, targetMs};
|
|
74
|
+
}
|
|
75
|
+
Scene scene;
|
|
76
|
+
BuildWorlds(scene, worlds);
|
|
77
|
+
// The first step builds every bottom level; later ones rebuild only the top levels.
|
|
78
|
+
renderer->Step(scene);
|
|
79
|
+
renderer->Context().WaitIdle();
|
|
80
|
+
const double host = Fastest([] {}, [&] { renderer->Step(scene); });
|
|
81
|
+
renderer->Context().WaitIdle();
|
|
82
|
+
const double ms = Fastest([] {},
|
|
83
|
+
[&] {
|
|
84
|
+
renderer->Step(scene);
|
|
85
|
+
renderer->Context().WaitIdle();
|
|
86
|
+
});
|
|
87
|
+
std::printf(" %d views of %u x %u: %.0f views a second, %.2f ms submitting, on %s\n", worlds,
|
|
88
|
+
kSize.x, kSize.y, 1000.0 * worlds / ms, host,
|
|
89
|
+
renderer->Context().Info().name.c_str());
|
|
90
|
+
if (std::getenv("ERNIE_BENCH_PROFILE") != nullptr) {
|
|
91
|
+
profiler::SetEnabled(true);
|
|
92
|
+
profiler::SetGpuEnabled(false);
|
|
93
|
+
for (int step = 0; step < 8; ++step) {
|
|
94
|
+
profiler::BeginFrame();
|
|
95
|
+
renderer->Step(scene);
|
|
96
|
+
renderer->Context().WaitIdle();
|
|
97
|
+
}
|
|
98
|
+
profiler::BeginFrame();
|
|
99
|
+
const std::vector<profiler::Frame> frames = profiler::Frames();
|
|
100
|
+
std::printf("%s", profiler::ReportText(profiler::Summarize(frames, profiler::ThreadNames()),
|
|
101
|
+
{.depth = 4, .minMs = 0.1, .byTime = true})
|
|
102
|
+
.c_str());
|
|
103
|
+
profiler::SetEnabled(false);
|
|
104
|
+
}
|
|
105
|
+
return {ms, targetMs};
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
const bool kBatch1k =
|
|
109
|
+
Register("render.batch_step.1024_worlds_64x64", [] { return StepWorlds(1024, 5.0); });
|
|
110
|
+
const bool kBatch4k =
|
|
111
|
+
Register("render.batch_step.4096_worlds_64x64", [] { return StepWorlds(4096, 20.0); });
|
|
112
|
+
|
|
113
|
+
} // namespace
|
|
114
|
+
} // namespace ernie::bench
|
|
@@ -97,10 +97,54 @@ Queue::~Queue() {
|
|
|
97
97
|
vkDestroyCommandPool(device_, pool_, nullptr);
|
|
98
98
|
}
|
|
99
99
|
|
|
100
|
+
Recording::~Recording() {
|
|
101
|
+
queue_.GiveBack(commands_, last_);
|
|
102
|
+
}
|
|
103
|
+
|
|
100
104
|
Ticket Queue::Submit(const std::function<void(VkCommandBuffer)>& record,
|
|
101
105
|
std::span<const Ticket> waits, BinarySemaphores binary) {
|
|
102
106
|
// One recording at a time: the command pool is not thread-safe.
|
|
103
107
|
const std::lock_guard recording(recording_);
|
|
108
|
+
const std::vector<VkSemaphoreSubmitInfo> waitInfos = WaitInfos(waits, binary);
|
|
109
|
+
const VkCommandBuffer commands =
|
|
110
|
+
RecordBuffer(record, VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT);
|
|
111
|
+
const std::lock_guard lock(mutex_);
|
|
112
|
+
try {
|
|
113
|
+
const Ticket ticket = SubmitBuffer(commands, waitInfos, binary);
|
|
114
|
+
inFlight_.emplace_back(commands, ticket.value);
|
|
115
|
+
return ticket;
|
|
116
|
+
} catch (...) {
|
|
117
|
+
free_.push_back(commands);
|
|
118
|
+
throw;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
std::unique_ptr<Recording> Queue::Record(const std::function<void(VkCommandBuffer)>& record) {
|
|
123
|
+
const std::lock_guard recording(recording_);
|
|
124
|
+
// Simultaneous use, so a replay may be submitted before the last has finished.
|
|
125
|
+
return std::unique_ptr<Recording>(
|
|
126
|
+
new Recording(*this, RecordBuffer(record, VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT)));
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
Ticket Queue::Submit(Recording& recorded, std::span<const Ticket> waits, BinarySemaphores binary) {
|
|
130
|
+
if (&recorded.queue_ != this) {
|
|
131
|
+
throw DeviceError(DeviceErrorKind::Failed,
|
|
132
|
+
name_ + " cannot submit another queue's recording");
|
|
133
|
+
}
|
|
134
|
+
const std::vector<VkSemaphoreSubmitInfo> waitInfos = WaitInfos(waits, binary);
|
|
135
|
+
const std::lock_guard lock(mutex_);
|
|
136
|
+
const Ticket ticket = SubmitBuffer(recorded.commands_, waitInfos, binary);
|
|
137
|
+
recorded.last_ = ticket.value;
|
|
138
|
+
return ticket;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
void Queue::GiveBack(VkCommandBuffer commands, std::uint64_t last) {
|
|
142
|
+
const std::lock_guard lock(mutex_);
|
|
143
|
+
inFlight_.emplace_back(commands, last);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
std::vector<VkSemaphoreSubmitInfo> Queue::WaitInfos(std::span<const Ticket> waits,
|
|
147
|
+
BinarySemaphores binary) const {
|
|
104
148
|
std::vector<VkSemaphoreSubmitInfo> waitInfos;
|
|
105
149
|
for (const Ticket& wait : waits) {
|
|
106
150
|
if (wait.timeline == nullptr) {
|
|
@@ -124,7 +168,11 @@ Ticket Queue::Submit(const std::function<void(VkCommandBuffer)>& record,
|
|
|
124
168
|
.semaphore = binary.wait,
|
|
125
169
|
.stageMask = VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT});
|
|
126
170
|
}
|
|
171
|
+
return waitInfos;
|
|
172
|
+
}
|
|
127
173
|
|
|
174
|
+
VkCommandBuffer Queue::RecordBuffer(const std::function<void(VkCommandBuffer)>& record,
|
|
175
|
+
VkCommandBufferUsageFlags usage) {
|
|
128
176
|
std::unique_lock lock(mutex_);
|
|
129
177
|
Recycle();
|
|
130
178
|
VkCommandBuffer commands = VK_NULL_HANDLE;
|
|
@@ -145,7 +193,7 @@ Ticket Queue::Submit(const std::function<void(VkCommandBuffer)>& record,
|
|
|
145
193
|
CheckVk(vkResetCommandBuffer(commands, 0),
|
|
146
194
|
[&] { return "Resetting " + name_ + "'s command buffer"; });
|
|
147
195
|
const VkCommandBufferBeginInfo begin{.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
|
|
148
|
-
.flags =
|
|
196
|
+
.flags = usage};
|
|
149
197
|
try {
|
|
150
198
|
CheckVk(vkBeginCommandBuffer(commands, &begin), [&] { return "Recording on " + name_; });
|
|
151
199
|
record(commands);
|
|
@@ -156,8 +204,12 @@ Ticket Queue::Submit(const std::function<void(VkCommandBuffer)>& record,
|
|
|
156
204
|
free_.push_back(commands);
|
|
157
205
|
throw;
|
|
158
206
|
}
|
|
207
|
+
return commands;
|
|
208
|
+
}
|
|
159
209
|
|
|
160
|
-
|
|
210
|
+
Ticket Queue::SubmitBuffer(VkCommandBuffer commands,
|
|
211
|
+
const std::vector<VkSemaphoreSubmitInfo>& waitInfos,
|
|
212
|
+
BinarySemaphores binary) {
|
|
161
213
|
const std::uint64_t value = submitted_ + 1;
|
|
162
214
|
const VkCommandBufferSubmitInfo commandInfo{
|
|
163
215
|
.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO, .commandBuffer = commands};
|
|
@@ -177,13 +229,9 @@ Ticket Queue::Submit(const std::function<void(VkCommandBuffer)>& record,
|
|
|
177
229
|
.pCommandBufferInfos = &commandInfo,
|
|
178
230
|
.signalSemaphoreInfoCount = binary.signal != VK_NULL_HANDLE ? 2u : 1u,
|
|
179
231
|
.pSignalSemaphoreInfos = signals.data()};
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
free_.push_back(commands);
|
|
183
|
-
}
|
|
184
|
-
CheckVk(submitted, [&] { return "Submitting to " + name_; });
|
|
232
|
+
CheckVk(vkQueueSubmit2(queue_, 1, &submit, VK_NULL_HANDLE),
|
|
233
|
+
[&] { return "Submitting to " + name_; });
|
|
185
234
|
submitted_ = value;
|
|
186
|
-
inFlight_.emplace_back(commands, value);
|
|
187
235
|
return timeline_.At(value);
|
|
188
236
|
}
|
|
189
237
|
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
#include <cstdint>
|
|
11
11
|
#include <functional>
|
|
12
|
+
#include <memory>
|
|
12
13
|
#include <mutex>
|
|
13
14
|
#include <span>
|
|
14
15
|
#include <string>
|
|
@@ -81,6 +82,26 @@ struct BinarySemaphores {
|
|
|
81
82
|
VkSemaphore signal = VK_NULL_HANDLE;
|
|
82
83
|
};
|
|
83
84
|
|
|
85
|
+
class Queue;
|
|
86
|
+
|
|
87
|
+
/// @brief Commands recorded once and submitted again and again, as a captured frame is replayed.
|
|
88
|
+
/// Its command buffer goes back to its queue once its last submission is done.
|
|
89
|
+
class Recording {
|
|
90
|
+
public:
|
|
91
|
+
~Recording();
|
|
92
|
+
Recording(const Recording&) = delete;
|
|
93
|
+
Recording& operator=(const Recording&) = delete;
|
|
94
|
+
|
|
95
|
+
private:
|
|
96
|
+
friend class Queue;
|
|
97
|
+
Recording(Queue& queue, VkCommandBuffer commands) : queue_(queue), commands_(commands) {}
|
|
98
|
+
|
|
99
|
+
Queue& queue_;
|
|
100
|
+
VkCommandBuffer commands_;
|
|
101
|
+
/// The timeline value of its latest submission; 0 before its first.
|
|
102
|
+
std::uint64_t last_ = 0;
|
|
103
|
+
};
|
|
104
|
+
|
|
84
105
|
/// @brief A queue of one family. Submissions take a recording function and return a ticket on the
|
|
85
106
|
/// queue's timeline; command buffers are recycled once their tickets complete. Any thread may
|
|
86
107
|
/// submit, one recording at a time, and test or wait on tickets.
|
|
@@ -97,6 +118,13 @@ class Queue {
|
|
|
97
118
|
/// @throws DeviceError if a wait is another device's, or submission fails.
|
|
98
119
|
Ticket Submit(const std::function<void(VkCommandBuffer)>& record,
|
|
99
120
|
std::span<const Ticket> waits = {}, BinarySemaphores binary = {});
|
|
121
|
+
/// @brief Records commands to submit any number of times. Submissions may overlap: what one
|
|
122
|
+
/// must see of the last, it waits for.
|
|
123
|
+
std::unique_ptr<Recording> Record(const std::function<void(VkCommandBuffer)>& record);
|
|
124
|
+
/// @brief Submits a recording once `waits` are done.
|
|
125
|
+
/// @throws DeviceError for another queue's recording, as `Submit`.
|
|
126
|
+
Ticket Submit(Recording& recorded, std::span<const Ticket> waits = {},
|
|
127
|
+
BinarySemaphores binary = {});
|
|
100
128
|
/// @return The ticket of the latest submission: waiting on it waits for all of them.
|
|
101
129
|
Ticket Last() const;
|
|
102
130
|
/// @brief Presents swapchain images, between submissions from any thread.
|
|
@@ -124,8 +152,21 @@ class Queue {
|
|
|
124
152
|
}
|
|
125
153
|
|
|
126
154
|
private:
|
|
155
|
+
friend class Recording;
|
|
156
|
+
|
|
127
157
|
/// Moves finished command buffers to the free list.
|
|
128
158
|
void Recycle();
|
|
159
|
+
std::vector<VkSemaphoreSubmitInfo> WaitInfos(std::span<const Ticket> waits,
|
|
160
|
+
BinarySemaphores binary) const;
|
|
161
|
+
/// @return A free command buffer with `record`'s commands.
|
|
162
|
+
VkCommandBuffer RecordBuffer(const std::function<void(VkCommandBuffer)>& record,
|
|
163
|
+
VkCommandBufferUsageFlags usage);
|
|
164
|
+
/// Submits a recorded buffer, with `mutex_` held.
|
|
165
|
+
Ticket SubmitBuffer(VkCommandBuffer commands,
|
|
166
|
+
const std::vector<VkSemaphoreSubmitInfo>& waitInfos,
|
|
167
|
+
BinarySemaphores binary);
|
|
168
|
+
/// Takes a recording's buffer back, to recycle once `last` is reached.
|
|
169
|
+
void GiveBack(VkCommandBuffer commands, std::uint64_t last);
|
|
129
170
|
|
|
130
171
|
VkDevice device_;
|
|
131
172
|
std::uint32_t family_;
|
|
@@ -160,6 +160,10 @@ void PassBuilder::NeverCull() {
|
|
|
160
160
|
graph_.passes_[pass_].neverCull = true;
|
|
161
161
|
}
|
|
162
162
|
|
|
163
|
+
void PassBuilder::OneShot() {
|
|
164
|
+
graph_.passes_[pass_].oneShot = true;
|
|
165
|
+
}
|
|
166
|
+
|
|
163
167
|
void PassContext::Check(std::uint32_t id) const {
|
|
164
168
|
const Graph::Pass& pass = graph_.passes_[pass_];
|
|
165
169
|
if (std::ranges::none_of(
|
|
@@ -470,13 +474,21 @@ void Graph::RecordPass(VkCommandBuffer commands, std::uint32_t order, std::uint3
|
|
|
470
474
|
scope = scopes_[scope].parent;
|
|
471
475
|
}
|
|
472
476
|
if (scope != kNoScope && scopes_[scope].depth == depth) {
|
|
473
|
-
|
|
477
|
+
std::optional<GpuZone> zone;
|
|
478
|
+
if (timed_) {
|
|
479
|
+
zone.emplace(context_, commands, scopes_[scope].name.c_str());
|
|
480
|
+
}
|
|
474
481
|
RecordPass(commands, order, depth + 1);
|
|
475
482
|
return;
|
|
476
483
|
}
|
|
477
484
|
ERNIE_ZONE("Record a pass");
|
|
478
485
|
ERNIE_ZONE_TEXT(pass.name);
|
|
479
|
-
|
|
486
|
+
// Ernie's own reports name each pass by a zone of its own.
|
|
487
|
+
const profiler::ScopedZone named(profiler::Enabled() ? profiler::Intern(pass.name) : "");
|
|
488
|
+
std::optional<GpuZone> zone;
|
|
489
|
+
if (timed_) {
|
|
490
|
+
zone.emplace(context_, commands, pass.name.c_str());
|
|
491
|
+
}
|
|
480
492
|
Record(commands, dependencies_.passes[order]);
|
|
481
493
|
if (fullBarriers_) {
|
|
482
494
|
ernie::Barrier(commands, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, VK_ACCESS_2_MEMORY_WRITE_BIT,
|
|
@@ -529,6 +541,67 @@ Ticket Graph::Execute(Queue& queue, std::span<const Ticket> waits, BinarySemapho
|
|
|
529
541
|
return ticket;
|
|
530
542
|
}
|
|
531
543
|
|
|
544
|
+
bool Graph::Capturable() {
|
|
545
|
+
Compile();
|
|
546
|
+
return std::ranges::none_of(live_, [&](std::uint32_t p) { return passes_[p].oneShot; });
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
std::unique_ptr<CapturedGraph> Graph::Capture(Queue& queue) {
|
|
550
|
+
if (executed_) {
|
|
551
|
+
throw std::logic_error("A frame graph executes or is captured once");
|
|
552
|
+
}
|
|
553
|
+
if (!Capturable()) {
|
|
554
|
+
throw std::logic_error("A frame graph with one-shot passes cannot be captured");
|
|
555
|
+
}
|
|
556
|
+
executed_ = true;
|
|
557
|
+
timed_ = false;
|
|
558
|
+
auto captured = std::unique_ptr<CapturedGraph>(new CapturedGraph(context_, pool_, queue));
|
|
559
|
+
captured->recording_ = queue.Record([&](VkCommandBuffer commands) {
|
|
560
|
+
for (std::uint32_t order = 0; order < live_.size(); ++order) {
|
|
561
|
+
RecordPass(commands, order);
|
|
562
|
+
}
|
|
563
|
+
Record(commands, dependencies_.after);
|
|
564
|
+
});
|
|
565
|
+
// The transients stay leased to the capture, which gives them back.
|
|
566
|
+
for (Resource& resource : resources_) {
|
|
567
|
+
if (resource.imported) {
|
|
568
|
+
continue;
|
|
569
|
+
}
|
|
570
|
+
if (resource.deviceImage != nullptr) {
|
|
571
|
+
captured->firstWaits_.push_back(resource.deviceImage->Ready());
|
|
572
|
+
captured->images_.push_back(std::exchange(resource.deviceImage, nullptr));
|
|
573
|
+
}
|
|
574
|
+
if (resource.slice.buffer != nullptr) {
|
|
575
|
+
captured->ranges_.push_back(resource.range);
|
|
576
|
+
resource.slice = {};
|
|
577
|
+
}
|
|
578
|
+
}
|
|
579
|
+
leased_ = false;
|
|
580
|
+
captured->kept_ = std::move(kept_);
|
|
581
|
+
kept_.clear();
|
|
582
|
+
return captured;
|
|
583
|
+
}
|
|
584
|
+
|
|
585
|
+
CapturedGraph::~CapturedGraph() {
|
|
586
|
+
// The pool takes leases back once every queue's work so far, the last submission's, is done.
|
|
587
|
+
for (const DeviceImage* image : images_) {
|
|
588
|
+
pool_.Release(*image);
|
|
589
|
+
}
|
|
590
|
+
for (const BufferRange& range : ranges_) {
|
|
591
|
+
pool_.Release(range);
|
|
592
|
+
}
|
|
593
|
+
for (std::shared_ptr<const void>& object : kept_) {
|
|
594
|
+
context_.Retire(std::move(object));
|
|
595
|
+
}
|
|
596
|
+
}
|
|
597
|
+
|
|
598
|
+
Ticket CapturedGraph::Submit(std::span<const Ticket> waits) {
|
|
599
|
+
std::vector<Ticket> after(waits.begin(), waits.end());
|
|
600
|
+
after.insert(after.end(), firstWaits_.begin(), firstWaits_.end());
|
|
601
|
+
firstWaits_.clear();
|
|
602
|
+
return queue_.Submit(*recording_, after);
|
|
603
|
+
}
|
|
604
|
+
|
|
532
605
|
std::vector<std::string> Graph::ExecutedPasses() const {
|
|
533
606
|
std::vector<std::string> names;
|
|
534
607
|
for (const std::uint32_t p : live_) {
|
|
@@ -578,6 +651,7 @@ void AddUploadPass(Graph& graph, std::string_view name, Uploader& uploader,
|
|
|
578
651
|
graph.Add(
|
|
579
652
|
name, Kind::Copy,
|
|
580
653
|
[&](PassBuilder& pass) {
|
|
654
|
+
pass.OneShot();
|
|
581
655
|
for (Buffer& target : targets) {
|
|
582
656
|
if (target.Valid()) {
|
|
583
657
|
target = pass.Write(target, Use::CopyDst);
|
|
@@ -100,6 +100,7 @@ struct BufferSlice {
|
|
|
100
100
|
};
|
|
101
101
|
|
|
102
102
|
class Graph;
|
|
103
|
+
class CapturedGraph;
|
|
103
104
|
|
|
104
105
|
/// @brief Declares one pass's accesses during setup.
|
|
105
106
|
class PassBuilder {
|
|
@@ -128,6 +129,9 @@ class PassBuilder {
|
|
|
128
129
|
Acceleration Read(Acceleration structure, Use use = Use::Trace);
|
|
129
130
|
/// @brief Keeps the pass though nothing reads what it writes, as for one the host reads.
|
|
130
131
|
void NeverCull();
|
|
132
|
+
/// @brief Marks the pass as recording this frame's data, as an upload's or a build of new
|
|
133
|
+
/// geometry does: a graph with one is not captured to replay (`Graph::Capturable`).
|
|
134
|
+
void OneShot();
|
|
131
135
|
|
|
132
136
|
private:
|
|
133
137
|
friend class Graph;
|
|
@@ -242,6 +246,14 @@ class Graph {
|
|
|
242
246
|
/// @return The ticket of the graph's work, which CUDA can wait on too.
|
|
243
247
|
/// @throws GraphError as `Compile`; std::logic_error if executed already.
|
|
244
248
|
Ticket Execute(Queue& queue, std::span<const Ticket> waits = {}, BinarySemaphores binary = {});
|
|
249
|
+
/// @return Whether the graph can be captured: it has no one-shot pass. Compiles it.
|
|
250
|
+
bool Capturable();
|
|
251
|
+
/// @brief Records every kept pass once, for submitting again and again while what the passes
|
|
252
|
+
/// record stays as it was: the same resources, laid out as now. The capture keeps the
|
|
253
|
+
/// transients and the objects passes keep. Passes are not timed on the GPU.
|
|
254
|
+
/// @return The capture, not yet submitted.
|
|
255
|
+
/// @throws std::logic_error unless `Capturable`, or if executed or captured already.
|
|
256
|
+
std::unique_ptr<CapturedGraph> Capture(Queue& queue);
|
|
245
257
|
|
|
246
258
|
/// @brief Adds a full barrier before every pass; on by default with
|
|
247
259
|
/// ERNIE_GRAPH_FULL_BARRIERS=1.
|
|
@@ -296,6 +308,7 @@ class Graph {
|
|
|
296
308
|
/// The innermost scope it was added in.
|
|
297
309
|
std::uint32_t scope = kNoScope;
|
|
298
310
|
bool neverCull = false;
|
|
311
|
+
bool oneShot = false;
|
|
299
312
|
};
|
|
300
313
|
struct ScopeNode {
|
|
301
314
|
std::string name;
|
|
@@ -330,6 +343,36 @@ class Graph {
|
|
|
330
343
|
bool leased_ = false;
|
|
331
344
|
bool fullBarriers_ = false;
|
|
332
345
|
bool flushEachPass_ = false;
|
|
346
|
+
/// Whether passes record GPU timing zones, which a capture cannot replay.
|
|
347
|
+
bool timed_ = true;
|
|
348
|
+
};
|
|
349
|
+
|
|
350
|
+
/// @brief A graph's commands recorded once and submitted per frame, while the transients they use
|
|
351
|
+
/// stay leased to it. Releasing it gives them back once its last submission is done.
|
|
352
|
+
class CapturedGraph {
|
|
353
|
+
public:
|
|
354
|
+
~CapturedGraph();
|
|
355
|
+
CapturedGraph(const CapturedGraph&) = delete;
|
|
356
|
+
CapturedGraph& operator=(const CapturedGraph&) = delete;
|
|
357
|
+
|
|
358
|
+
/// @brief Submits the commands after `waits`; the first submission also waits for transient
|
|
359
|
+
/// images new to the pool.
|
|
360
|
+
/// @return The submission's ticket.
|
|
361
|
+
Ticket Submit(std::span<const Ticket> waits = {});
|
|
362
|
+
|
|
363
|
+
private:
|
|
364
|
+
friend class Graph;
|
|
365
|
+
CapturedGraph(DeviceContext& context, TransientPool& pool, Queue& queue)
|
|
366
|
+
: context_(context), pool_(pool), queue_(queue) {}
|
|
367
|
+
|
|
368
|
+
DeviceContext& context_;
|
|
369
|
+
TransientPool& pool_;
|
|
370
|
+
Queue& queue_;
|
|
371
|
+
std::unique_ptr<Recording> recording_;
|
|
372
|
+
std::vector<Ticket> firstWaits_;
|
|
373
|
+
std::vector<const DeviceImage*> images_;
|
|
374
|
+
std::vector<BufferRange> ranges_;
|
|
375
|
+
std::vector<std::shared_ptr<const void>> kept_;
|
|
333
376
|
};
|
|
334
377
|
|
|
335
378
|
/// @brief Adds a copy pass recording what `uploader` staged into `targets`, which later passes then
|
|
@@ -10,7 +10,7 @@ namespace ernie {
|
|
|
10
10
|
|
|
11
11
|
DeviceScene::DeviceScene(DeviceContext& context, Arenas& arenas, const Scene& scene,
|
|
12
12
|
const ShaderCompiler& compiler)
|
|
13
|
-
: context_(context), pool_(context), columns_(context, arenas, scene),
|
|
13
|
+
: context_(context), scene_(scene), pool_(context), columns_(context, arenas, scene),
|
|
14
14
|
transforms_(context, arenas, scene, compiler), geometry_(context, arenas, scene),
|
|
15
15
|
instances_(context, arenas) {
|
|
16
16
|
if (context.Capabilities().rayQuery) {
|
|
@@ -30,7 +30,37 @@ bool DeviceScene::Follow(const glm::dvec3& viewpoint) {
|
|
|
30
30
|
Ticket DeviceScene::Execute(const std::function<void(graph::Graph&)>& passes,
|
|
31
31
|
std::span<const Ticket> waits, BinarySemaphores binary) {
|
|
32
32
|
ERNIE_ZONE("Run a frame");
|
|
33
|
+
captured_.reset();
|
|
33
34
|
graph::Graph graph(context_, pool_);
|
|
35
|
+
AddFrame(graph, passes);
|
|
36
|
+
return graph.Execute(context_.Main(), waits, binary);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
Ticket DeviceScene::Step(const std::function<void(graph::Graph&)>& passes, std::uint64_t key,
|
|
40
|
+
std::span<const Ticket> waits) {
|
|
41
|
+
const CaptureKey now{scene_.Store().Version(), transforms_.Origin(), key};
|
|
42
|
+
replayed_ = captured_ && now == capturedKey_ && Settled();
|
|
43
|
+
if (replayed_) {
|
|
44
|
+
ERNIE_ZONE("Replay a frame");
|
|
45
|
+
return captured_->Submit(waits);
|
|
46
|
+
}
|
|
47
|
+
ERNIE_ZONE("Run a frame");
|
|
48
|
+
captured_.reset();
|
|
49
|
+
graph::Graph graph(context_, pool_);
|
|
50
|
+
AddFrame(graph, passes);
|
|
51
|
+
if (!Settled() || !graph.Capturable()) {
|
|
52
|
+
return graph.Execute(context_.Main(), waits);
|
|
53
|
+
}
|
|
54
|
+
captured_ = graph.Capture(context_.Main());
|
|
55
|
+
capturedKey_ = now;
|
|
56
|
+
return captured_->Submit(waits);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
bool DeviceScene::Settled() const {
|
|
60
|
+
return !tracer_ || tracer_->Bottoms().Idle();
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
void DeviceScene::AddFrame(graph::Graph& graph, const std::function<void(graph::Graph&)>& passes) {
|
|
34
64
|
columns_.AddSync(graph);
|
|
35
65
|
transforms_.AddUpdate(graph);
|
|
36
66
|
const GeometryPool::Changes changes = geometry_.Update();
|
|
@@ -43,7 +73,6 @@ Ticket DeviceScene::Execute(const std::function<void(graph::Graph&)>& passes,
|
|
|
43
73
|
if (passes) {
|
|
44
74
|
passes(graph);
|
|
45
75
|
}
|
|
46
|
-
return graph.Execute(context_.Main(), waits, binary);
|
|
47
76
|
}
|
|
48
77
|
|
|
49
78
|
} // namespace ernie
|
|
@@ -74,15 +74,45 @@ class DeviceScene {
|
|
|
74
74
|
/// @throws graph::GraphError when the passes cannot run.
|
|
75
75
|
Ticket Execute(const std::function<void(graph::Graph&)>& passes,
|
|
76
76
|
std::span<const Ticket> waits = {}, BinarySemaphores binary = {});
|
|
77
|
+
/// @brief `Execute`, or the last frame's commands submitted again while nothing they record
|
|
78
|
+
/// has changed: the scene (its version), the render origin, the bottom levels (none waiting)
|
|
79
|
+
/// and `key`, which the caller changes whenever `passes` would record something else. A frame
|
|
80
|
+
/// is kept to replay when it runs no one-shot pass, so a step whose data all comes from device
|
|
81
|
+
/// columns costs the host one submission.
|
|
82
|
+
/// @return The frame's ticket.
|
|
83
|
+
Ticket Step(const std::function<void(graph::Graph&)>& passes, std::uint64_t key,
|
|
84
|
+
std::span<const Ticket> waits = {});
|
|
85
|
+
/// @return Whether the last `Step` replayed a captured frame.
|
|
86
|
+
bool Replayed() const {
|
|
87
|
+
return replayed_;
|
|
88
|
+
}
|
|
77
89
|
|
|
78
90
|
private:
|
|
91
|
+
/// What a captured frame recorded from.
|
|
92
|
+
struct CaptureKey {
|
|
93
|
+
std::uint64_t version = 0;
|
|
94
|
+
glm::dvec3 origin{0.0};
|
|
95
|
+
std::uint64_t passes = 0;
|
|
96
|
+
bool operator==(const CaptureKey&) const = default;
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
/// Adds a frame's passes: the columns' sync, the transforms, the geometry, the ray tracer's
|
|
100
|
+
/// builds, then `passes`'.
|
|
101
|
+
void AddFrame(graph::Graph& graph, const std::function<void(graph::Graph&)>& passes);
|
|
102
|
+
/// @return Whether no work waits for a later frame.
|
|
103
|
+
bool Settled() const;
|
|
104
|
+
|
|
79
105
|
DeviceContext& context_;
|
|
106
|
+
const Scene& scene_;
|
|
80
107
|
graph::TransientPool pool_;
|
|
81
108
|
SceneColumns columns_;
|
|
82
109
|
TransformGraph transforms_;
|
|
83
110
|
GeometryPool geometry_;
|
|
84
111
|
InstanceTable instances_;
|
|
85
112
|
std::unique_ptr<RayTracer> tracer_;
|
|
113
|
+
std::unique_ptr<graph::CapturedGraph> captured_;
|
|
114
|
+
CaptureKey capturedKey_;
|
|
115
|
+
bool replayed_ = false;
|
|
86
116
|
};
|
|
87
117
|
|
|
88
118
|
} // namespace ernie
|
|
@@ -89,6 +89,10 @@ struct Renderer::Device {
|
|
|
89
89
|
std::unique_ptr<DeviceScene> deviceScene;
|
|
90
90
|
std::vector<Batch> batches;
|
|
91
91
|
std::vector<RenderBatch> rendered;
|
|
92
|
+
/// The scene's version the batches were planned at.
|
|
93
|
+
std::uint64_t plannedVersion = 0;
|
|
94
|
+
/// Changed whenever the passes would record something else: a new plan or binding.
|
|
95
|
+
std::uint64_t recorded = 0;
|
|
92
96
|
/// What the next step waits for.
|
|
93
97
|
std::vector<Ticket> waits;
|
|
94
98
|
|
|
@@ -186,14 +190,21 @@ DeviceScene& Renderer::Device::Follow(const Scene& scene) {
|
|
|
186
190
|
std::span<const RenderBatch> Renderer::Step(Scene& scene) {
|
|
187
191
|
ERNIE_ZONE("Render step");
|
|
188
192
|
scene.Update();
|
|
189
|
-
const std::vector<ProductSpec> specs = ReadProducts(scene);
|
|
190
193
|
Device& device = *device_;
|
|
191
194
|
DeviceScene& deviceScene = device.Follow(scene);
|
|
192
|
-
device
|
|
193
|
-
|
|
194
|
-
|
|
195
|
+
// Products are read again only after host edits: a step whose poses all come from device
|
|
196
|
+
// columns costs the host nothing a view.
|
|
197
|
+
if (device.batches.empty() || scene.Store().Version() != device.plannedVersion) {
|
|
198
|
+
const std::vector<ProductSpec> specs = ReadProducts(scene);
|
|
199
|
+
device.Plan(scene, specs);
|
|
200
|
+
const auto highest = std::ranges::max(specs, {}, &ProductSpec::world).world;
|
|
201
|
+
deviceScene.Instances().ReserveWorlds(highest + 1);
|
|
202
|
+
device.plannedVersion = scene.Store().Version();
|
|
203
|
+
++device.recorded;
|
|
204
|
+
}
|
|
195
205
|
deviceScene.Follow(glm::dvec3(device.batches.front().views.front().cameraToWorld[3]));
|
|
196
|
-
|
|
206
|
+
// Replayed while the plan and bindings stand: the camera records only their data.
|
|
207
|
+
deviceScene.Step(
|
|
197
208
|
[&](graph::Graph& graph) {
|
|
198
209
|
for (const Batch& batch : device.batches) {
|
|
199
210
|
CameraOutputs outputs;
|
|
@@ -204,7 +215,7 @@ std::span<const RenderBatch> Renderer::Step(Scene& scene) {
|
|
|
204
215
|
device.camera->Add(graph, batch.views, outputs);
|
|
205
216
|
}
|
|
206
217
|
},
|
|
207
|
-
device.waits);
|
|
218
|
+
device.recorded, device.waits);
|
|
208
219
|
device.waits.clear();
|
|
209
220
|
return device.rendered;
|
|
210
221
|
}
|
|
@@ -215,6 +226,7 @@ const DeviceColumn& Renderer::BindTransformOp(Scene& scene, const Path& prim,
|
|
|
215
226
|
const BucketId bucket = scene.Store().PrimBucket(scene.Require(prim));
|
|
216
227
|
const DeviceColumn& column = deviceScene.Columns().Bind(bucket, attribute);
|
|
217
228
|
deviceScene.Transforms().Bind(bucket, attribute, column);
|
|
229
|
+
++device_->recorded;
|
|
218
230
|
return column;
|
|
219
231
|
}
|
|
220
232
|
|
|
@@ -222,6 +234,10 @@ void Renderer::WaitFor(const Ticket& ticket) {
|
|
|
222
234
|
device_->waits.push_back(ticket);
|
|
223
235
|
}
|
|
224
236
|
|
|
237
|
+
bool Renderer::Replayed() const {
|
|
238
|
+
return device_->deviceScene && device_->deviceScene->Replayed();
|
|
239
|
+
}
|
|
240
|
+
|
|
225
241
|
Tensor Renderer::Read(const RenderVarOutput& var) {
|
|
226
242
|
DeviceContext& context = *device_->context;
|
|
227
243
|
const Ticket done = context.Main().Last();
|