ernie-renderer 0.2.0.dev161__tar.gz → 0.2.0.dev164__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.

Files changed (946) hide show
  1. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/CMakeLists.txt +1 -1
  2. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/PKG-INFO +1 -1
  3. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/benchmarks/CMakeLists.txt +2 -1
  4. ernie_renderer-0.2.0.dev164/benchmarks/app/viewer_frame.cpp +115 -0
  5. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/app/viewer.cpp +107 -60
  6. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/app/viewer.h +43 -12
  7. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/graph/graph.cpp +8 -0
  8. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/graph/graph.h +2 -0
  9. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/render/device_scene.cpp +8 -2
  10. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/render/device_scene.h +8 -0
  11. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/render/rt/camera_pass.cpp +11 -1
  12. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/render/rt/camera_pass.h +4 -0
  13. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/render/rt/ray_tracer.cpp +4 -2
  14. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/render/rt/ray_tracer.h +3 -1
  15. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/render/rt/top_levels.cpp +5 -2
  16. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/render/rt/top_levels.h +4 -1
  17. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/render/transform_graph.cpp +5 -3
  18. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/render/transform_graph.h +7 -1
  19. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/shaders/sensors/camera.slang +7 -1
  20. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/app/viewer_test.cpp +28 -0
  21. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/render/device_scene_test.cpp +48 -0
  22. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/.clang-format +0 -0
  23. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/.clang-tidy +0 -0
  24. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/.dockerignore +0 -0
  25. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/.gersemirc +0 -0
  26. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/.gitattributes +0 -0
  27. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/.github/scripts/coverage_badge.py +0 -0
  28. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/.github/scripts/install-lavapipe-windows.sh +0 -0
  29. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/.github/workflows/ci.yml +0 -0
  30. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/.gitignore +0 -0
  31. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/.pre-commit-config.yaml +0 -0
  32. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/CMakePresets.json +0 -0
  33. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/Dockerfile +0 -0
  34. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/LICENSE +0 -0
  35. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/README.md +0 -0
  36. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/benchmarks/bench.h +0 -0
  37. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/benchmarks/device/pose_step.cpp +0 -0
  38. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/benchmarks/main.cpp +0 -0
  39. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/benchmarks/render/batch_step.cpp +0 -0
  40. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/benchmarks/render/hide_seek.cpp +0 -0
  41. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/benchmarks/render/transform_graph.cpp +0 -0
  42. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/benchmarks/scene/extents.cpp +0 -0
  43. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/benchmarks/scene/storage.cpp +0 -0
  44. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/cmake/EmbedFile.cmake +0 -0
  45. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/cmake/EmbedShader.cmake +0 -0
  46. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/cmake/ErnieConfig.cmake.in +0 -0
  47. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/cmake/ErnieFetch.cmake +0 -0
  48. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/cmake/ErnieInstall.cmake +0 -0
  49. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/cmake/ErniePackaging.cmake +0 -0
  50. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/cmake/ErnieShaders.cmake +0 -0
  51. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/cmake/ErnieTesting.cmake +0 -0
  52. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/cmake/ernie.pc.in +0 -0
  53. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/cmake/third_party/dear_imgui.cmake +0 -0
  54. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/cmake/third_party/fonts.cmake +0 -0
  55. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/cmake/third_party/glfw.cmake +0 -0
  56. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/cmake/third_party/googletest.cmake +0 -0
  57. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/cmake/third_party/nanobind.cmake +0 -0
  58. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/cmake/third_party/openexr.cmake +0 -0
  59. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/cmake/third_party/slang.cmake +0 -0
  60. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/cmake/third_party/tracy.cmake +0 -0
  61. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/demos/CMakeLists.txt +0 -0
  62. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/demos/basics/demo_basics_bounce.cpp +0 -0
  63. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/docs/README.md +0 -0
  64. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/docs/index.md +0 -0
  65. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/docs/requirements.txt +0 -0
  66. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/CMakeLists.txt +0 -0
  67. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/app/CMakeLists.txt +0 -0
  68. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/app/capture.cpp +0 -0
  69. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/app/capture.h +0 -0
  70. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/app/create.cpp +0 -0
  71. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/app/create.h +0 -0
  72. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/app/demo.cpp +0 -0
  73. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/app/demo.h +0 -0
  74. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/app/icons.h +0 -0
  75. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/app/imgui_backend.cpp +0 -0
  76. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/app/imgui_backend.h +0 -0
  77. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/app/main.cpp +0 -0
  78. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/app/timeline.cpp +0 -0
  79. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/app/timeline.h +0 -0
  80. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/app/ui.cpp +0 -0
  81. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/app/ui.h +0 -0
  82. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/device/CMakeLists.txt +0 -0
  83. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/device/acceleration.cpp +0 -0
  84. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/device/acceleration.h +0 -0
  85. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/device/arena.cpp +0 -0
  86. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/device/arena.h +0 -0
  87. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/device/bindless.cpp +0 -0
  88. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/device/bindless.h +0 -0
  89. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/device/buffer.cpp +0 -0
  90. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/device/buffer.h +0 -0
  91. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/device/column.cpp +0 -0
  92. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/device/column.h +0 -0
  93. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/device/commands.cpp +0 -0
  94. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/device/commands.h +0 -0
  95. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/device/context.cpp +0 -0
  96. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/device/context.h +0 -0
  97. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/device/cuda.cpp +0 -0
  98. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/device/cuda.h +0 -0
  99. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/device/device.h +0 -0
  100. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/device/external.cpp +0 -0
  101. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/device/external.h +0 -0
  102. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/device/image.cpp +0 -0
  103. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/device/image.h +0 -0
  104. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/device/instance.cpp +0 -0
  105. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/device/instance.h +0 -0
  106. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/device/kernel.cpp +0 -0
  107. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/device/kernel.h +0 -0
  108. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/device/profile.cpp +0 -0
  109. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/device/profile.h +0 -0
  110. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/device/queue.cpp +0 -0
  111. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/device/queue.h +0 -0
  112. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/device/shader_compiler.cpp +0 -0
  113. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/device/shader_compiler.h +0 -0
  114. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/device/staging.cpp +0 -0
  115. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/device/staging.h +0 -0
  116. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/device/vulkan.cpp +0 -0
  117. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/device/vulkan.h +0 -0
  118. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/geometry/CMakeLists.txt +0 -0
  119. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/geometry/bounds.h +0 -0
  120. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/geometry/triangulation.cpp +0 -0
  121. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/geometry/triangulation.h +0 -0
  122. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/graph/CMakeLists.txt +0 -0
  123. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/graph/blackboard.h +0 -0
  124. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/graph/dependencies.cpp +0 -0
  125. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/graph/dependencies.h +0 -0
  126. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/graph/pool.cpp +0 -0
  127. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/graph/pool.h +0 -0
  128. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/io/CMakeLists.txt +0 -0
  129. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/io/ies.cpp +0 -0
  130. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/io/ies.h +0 -0
  131. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/io/image.cpp +0 -0
  132. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/io/image.h +0 -0
  133. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/io/nanovdb.cpp +0 -0
  134. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/io/nanovdb.h +0 -0
  135. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/io/raster.cpp +0 -0
  136. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/io/raster.h +0 -0
  137. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/io/texture.cpp +0 -0
  138. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/io/texture.h +0 -0
  139. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/physics/CMakeLists.txt +0 -0
  140. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/physics/astronomy.cpp +0 -0
  141. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/physics/astronomy.h +0 -0
  142. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/physics/atmosphere.cpp +0 -0
  143. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/physics/atmosphere.h +0 -0
  144. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/physics/cloud.cpp +0 -0
  145. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/physics/cloud.h +0 -0
  146. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/physics/constants.h +0 -0
  147. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/physics/reflectance_library.cpp +0 -0
  148. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/physics/reflectance_library.h +0 -0
  149. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/physics/reflectance_table.h +0 -0
  150. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/physics/regolith.cpp +0 -0
  151. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/physics/regolith.h +0 -0
  152. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/physics/scattering.cpp +0 -0
  153. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/physics/scattering.h +0 -0
  154. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/physics/solar.cpp +0 -0
  155. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/physics/solar.h +0 -0
  156. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/physics/solar_table.h +0 -0
  157. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/physics/spectrum.cpp +0 -0
  158. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/physics/spectrum.h +0 -0
  159. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/python/CMakeLists.txt +0 -0
  160. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/python/device.cpp +0 -0
  161. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/python/device.h +0 -0
  162. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/python/dlpack.cpp +0 -0
  163. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/python/dlpack.h +0 -0
  164. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/python/ernie/__init__.py +0 -0
  165. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/python/module.cpp +0 -0
  166. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/python/render.cpp +0 -0
  167. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/python/render.h +0 -0
  168. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/python/scene.cpp +0 -0
  169. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/python/scene.h +0 -0
  170. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/render/CMakeLists.txt +0 -0
  171. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/render/geometry.cpp +0 -0
  172. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/render/geometry.h +0 -0
  173. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/render/instances.cpp +0 -0
  174. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/render/instances.h +0 -0
  175. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/render/prim_rows.cpp +0 -0
  176. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/render/prim_rows.h +0 -0
  177. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/render/products.cpp +0 -0
  178. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/render/products.h +0 -0
  179. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/render/renderer.cpp +0 -0
  180. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/render/renderer.h +0 -0
  181. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/render/rt/bottom_levels.cpp +0 -0
  182. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/render/rt/bottom_levels.h +0 -0
  183. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/render/scene_columns.cpp +0 -0
  184. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/render/scene_columns.h +0 -0
  185. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/CMakeLists.txt +0 -0
  186. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/animation.cpp +0 -0
  187. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/convert.h +0 -0
  188. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/edit_history.cpp +0 -0
  189. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/edit_history.h +0 -0
  190. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/extent_cache.cpp +0 -0
  191. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/extent_cache.h +0 -0
  192. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/holder_index.cpp +0 -0
  193. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/holder_index.h +0 -0
  194. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/inherit.cpp +0 -0
  195. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/json.cpp +0 -0
  196. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/json.h +0 -0
  197. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/json_value.h +0 -0
  198. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/path.cpp +0 -0
  199. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/path.h +0 -0
  200. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/reference.cpp +0 -0
  201. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/reference.h +0 -0
  202. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/scene.cpp +0 -0
  203. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/scene.h +0 -0
  204. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/schema/camera.cpp +0 -0
  205. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/schema/camera.h +0 -0
  206. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/schema/collection.h +0 -0
  207. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/schema/geom.cpp +0 -0
  208. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/schema/geom.h +0 -0
  209. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/schema/instancer.cpp +0 -0
  210. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/schema/instancer.h +0 -0
  211. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/schema/lux.cpp +0 -0
  212. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/schema/lux.h +0 -0
  213. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/schema/mesh.cpp +0 -0
  214. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/schema/mesh.h +0 -0
  215. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/schema/planet.cpp +0 -0
  216. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/schema/planet.h +0 -0
  217. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/schema/registry.cpp +0 -0
  218. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/schema/render.cpp +0 -0
  219. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/schema/render.h +0 -0
  220. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/schema/shade.cpp +0 -0
  221. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/schema/shade.h +0 -0
  222. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/schema/vol.cpp +0 -0
  223. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/schema/vol.h +0 -0
  224. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/schema.cpp +0 -0
  225. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/schema.h +0 -0
  226. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/storage.cpp +0 -0
  227. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/storage.h +0 -0
  228. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/time_samples.cpp +0 -0
  229. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/time_samples.h +0 -0
  230. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/tokens.h +0 -0
  231. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/usd_plugin.cpp +0 -0
  232. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/validate.cpp +0 -0
  233. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/value.h +0 -0
  234. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/view.cpp +0 -0
  235. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/view.h +0 -0
  236. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/xform.cpp +0 -0
  237. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/scene/xform.h +0 -0
  238. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/shaders/CMakeLists.txt +0 -0
  239. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/shaders/device/bindless.slang +0 -0
  240. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/shaders/device/buffer_ref.slang +0 -0
  241. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/shaders/math/affine.slang +0 -0
  242. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/shaders/math/double_float.slang +0 -0
  243. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/shaders/rt/ray_tracer.slang +0 -0
  244. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/shaders/rt/write_instances.slang +0 -0
  245. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/shaders/scene/geometry.slang +0 -0
  246. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/shaders/scene/instance_colours.slang +0 -0
  247. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/shaders/scene/shapes.slang +0 -0
  248. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/shaders/scene/transform.slang +0 -0
  249. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/shaders/scene/world_layout.slang +0 -0
  250. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/shaders/sensors/lens.slang +0 -0
  251. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/shaders/shared.h +0 -0
  252. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/shaders/spectral/spectrum.slang +0 -0
  253. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/util/CMakeLists.txt +0 -0
  254. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/util/algorithm.h +0 -0
  255. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/util/bytes.h +0 -0
  256. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/util/disk_cache.cpp +0 -0
  257. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/util/disk_cache.h +0 -0
  258. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/util/file.cpp +0 -0
  259. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/util/file.h +0 -0
  260. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/util/glm.h +0 -0
  261. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/util/hash_index.h +0 -0
  262. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/util/library.cpp +0 -0
  263. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/util/library.h +0 -0
  264. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/util/linear_algebra.h +0 -0
  265. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/util/log.cpp +0 -0
  266. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/util/log.h +0 -0
  267. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/util/math.h +0 -0
  268. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/util/noise.cpp +0 -0
  269. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/util/noise.h +0 -0
  270. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/util/numbers.h +0 -0
  271. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/util/on_failure.h +0 -0
  272. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/util/parallel.h +0 -0
  273. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/util/process.cpp +0 -0
  274. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/util/process.h +0 -0
  275. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/util/profiler.cpp +0 -0
  276. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/util/profiler.h +0 -0
  277. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/util/random.h +0 -0
  278. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/util/tensor.cpp +0 -0
  279. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/util/tensor.h +0 -0
  280. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/util/text.h +0 -0
  281. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/util/version.cpp +0 -0
  282. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/util/version.h +0 -0
  283. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/ernie/util/worker_pool.h +0 -0
  284. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/mkdocs.yml +0 -0
  285. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/pyproject.toml +0 -0
  286. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/CMakeLists.txt +0 -0
  287. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/app/capture_test.cpp +0 -0
  288. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/app/demo_test.cpp +0 -0
  289. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/app/orbit_camera_test.cpp +0 -0
  290. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/app/shell_test.cpp +0 -0
  291. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/app/timeline_test.cpp +0 -0
  292. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/app/view_test.cpp +0 -0
  293. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/common.h +0 -0
  294. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/consumer/CMakeLists.txt +0 -0
  295. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/consumer/first_render.cpp +0 -0
  296. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/consumer/main.cpp +0 -0
  297. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/device/acceleration_test.cpp +0 -0
  298. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/device/arena_test.cpp +0 -0
  299. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/device/bindless_test.cpp +0 -0
  300. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/device/column_test.cpp +0 -0
  301. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/device/columns.h +0 -0
  302. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/device/common.h +0 -0
  303. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/device/context_test.cpp +0 -0
  304. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/device/cuda_test.cpp +0 -0
  305. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/device/external_test.cpp +0 -0
  306. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/device/kernel_test.cpp +0 -0
  307. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/device/pose_step.h +0 -0
  308. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/device/profile_test.cpp +0 -0
  309. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/device/vulkan_devices_test.cpp +0 -0
  310. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/fixtures/exr/README.md +0 -0
  311. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/fixtures/exr/make_exr.py +0 -0
  312. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/fixtures/exr/rgb_float_zip.exr +0 -0
  313. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/fixtures/exr/rgba_half_window.exr +0 -0
  314. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/fixtures/exr/y_half_zips.exr +0 -0
  315. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/fixtures/ies/README.md +0 -0
  316. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/fixtures/ies/downlight_quadrant.ies +0 -0
  317. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/fixtures/ies/floodlight_type_b.ies +0 -0
  318. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/fixtures/ies/lamp.tilt +0 -0
  319. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/fixtures/images/grey16.png +0 -0
  320. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/fixtures/ktx2/README.md +0 -0
  321. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/fixtures/ktx2/quadrants_etc1s.ktx2 +0 -0
  322. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/fixtures/ktx2/quadrants_uastc_zstd.ktx2 +0 -0
  323. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/fixtures/ktx2/tilted_normal_etc1s.ktx2 +0 -0
  324. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/fixtures/ktx2/tilted_normal_uastc.ktx2 +0 -0
  325. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/fixtures/scenes/README.md +0 -0
  326. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/fixtures/scenes/invalid/problems.expected +0 -0
  327. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/fixtures/scenes/invalid/problems.json +0 -0
  328. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/fixtures/scenes/rover.json +0 -0
  329. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/fixtures/scenes/rover.saved.json +0 -0
  330. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/fixtures/tiff/README.md +0 -0
  331. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/fixtures/tiff/float_deflate_predictor3.tif +0 -0
  332. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/fixtures/tiff/float_raw.tif +0 -0
  333. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/fixtures/tiff/int16_bigtiff_bigendian.tif +0 -0
  334. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/fixtures/tiff/rgb_lzw_predictor2.tif +0 -0
  335. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/fixtures/tiff/rgb_planar_lzw.tif +0 -0
  336. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/fixtures/tiff/rgb_planar_raw.tif +0 -0
  337. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/fixtures/tiff/rgb_tiled_deflate.tif +0 -0
  338. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/fixtures/volumes/cube.nvdb +0 -0
  339. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/fixtures/volumes/make_nvdb.py +0 -0
  340. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/geometry/bounds_test.cpp +0 -0
  341. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/geometry/triangulation_test.cpp +0 -0
  342. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/graph/dependencies_test.cpp +0 -0
  343. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/graph/graph_test.cpp +0 -0
  344. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/io/ies_test.cpp +0 -0
  345. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/io/image_test.cpp +0 -0
  346. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/io/nanovdb_test.cpp +0 -0
  347. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/io/raster_test.cpp +0 -0
  348. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/io/texture_test.cpp +0 -0
  349. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/physics/astronomy_test.cpp +0 -0
  350. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/physics/atmosphere_test.cpp +0 -0
  351. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/physics/cloud_test.cpp +0 -0
  352. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/physics/reflectance_library_test.cpp +0 -0
  353. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/physics/regolith_test.cpp +0 -0
  354. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/physics/scattering_test.cpp +0 -0
  355. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/physics/solar_test.cpp +0 -0
  356. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/physics/spectrum_test.cpp +0 -0
  357. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/python/conftest.py +0 -0
  358. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/python/test_device_dlpack.py +0 -0
  359. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/python/test_device_torch.py +0 -0
  360. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/python/test_package.py +0 -0
  361. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/python/test_render.py +0 -0
  362. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/python/test_scene.py +0 -0
  363. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/python/test_scene_schema.py +0 -0
  364. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/render/acceleration_scene_test.cpp +0 -0
  365. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/render/camera_pass_test.cpp +0 -0
  366. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/render/common.h +0 -0
  367. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/render/geometry_test.cpp +0 -0
  368. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/render/gradients_test.cpp +0 -0
  369. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/render/ray_tracer_test.cpp +0 -0
  370. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/render/renderer_test.cpp +0 -0
  371. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/render/scene_columns_test.cpp +0 -0
  372. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/render/shaders_test.cpp +0 -0
  373. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/render/transform_graph_test.cpp +0 -0
  374. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/scene/edit_history_test.cpp +0 -0
  375. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/scene/extent_cache_test.cpp +0 -0
  376. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/scene/inherit_test.cpp +0 -0
  377. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/scene/instancer_test.cpp +0 -0
  378. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/scene/json_test.cpp +0 -0
  379. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/scene/lux_test.cpp +0 -0
  380. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/scene/mesh_test.cpp +0 -0
  381. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/scene/path_test.cpp +0 -0
  382. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/scene/planet_test.cpp +0 -0
  383. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/scene/reference_test.cpp +0 -0
  384. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/scene/render_test.cpp +0 -0
  385. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/scene/scene_test.cpp +0 -0
  386. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/scene/schema_test.cpp +0 -0
  387. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/scene/shade_test.cpp +0 -0
  388. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/scene/storage_test.cpp +0 -0
  389. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/scene/time_samples_test.cpp +0 -0
  390. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/scene/vol_test.cpp +0 -0
  391. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/scene/xform_test.cpp +0 -0
  392. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/util/algorithm_test.cpp +0 -0
  393. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/util/bytes_test.cpp +0 -0
  394. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/util/disk_cache_test.cpp +0 -0
  395. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/util/file_test.cpp +0 -0
  396. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/util/hash_index_test.cpp +0 -0
  397. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/util/linear_algebra_test.cpp +0 -0
  398. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/util/log_test.cpp +0 -0
  399. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/util/math_test.cpp +0 -0
  400. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/util/noise_test.cpp +0 -0
  401. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/util/parallel_test.cpp +0 -0
  402. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/util/profiler_test.cpp +0 -0
  403. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/util/random_test.cpp +0 -0
  404. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/util/tensor_test.cpp +0 -0
  405. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/util/text_test.cpp +0 -0
  406. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/util/version_test.cpp +0 -0
  407. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/tests/util/worker_pool_test.cpp +0 -0
  408. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/CMakeLists.txt +0 -0
  409. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/README.md +0 -0
  410. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/basisu/LICENSE +0 -0
  411. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/basisu/LICENSES/Apache-2.0.txt +0 -0
  412. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/basisu/LICENSES/BSD-3-clause.txt +0 -0
  413. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/basisu/LICENSES/MIT.txt +0 -0
  414. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/basisu/NOTICE +0 -0
  415. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/basisu/README.md +0 -0
  416. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/basisu/transcoder/basisu.h +0 -0
  417. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/basisu/transcoder/basisu_astc_cfgs.inl +0 -0
  418. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/basisu/transcoder/basisu_astc_hdr_core.h +0 -0
  419. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/basisu/transcoder/basisu_astc_helpers.h +0 -0
  420. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/basisu/transcoder/basisu_containers.h +0 -0
  421. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/basisu/transcoder/basisu_containers_impl.h +0 -0
  422. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/basisu/transcoder/basisu_dds_transcoder.inl +0 -0
  423. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/basisu/transcoder/basisu_etc1_mods.inl +0 -0
  424. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/basisu/transcoder/basisu_file_headers.h +0 -0
  425. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/basisu/transcoder/basisu_idct.h +0 -0
  426. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/basisu/transcoder/basisu_transcoder.cpp +0 -0
  427. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/basisu/transcoder/basisu_transcoder.h +0 -0
  428. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/basisu/transcoder/basisu_transcoder_internal.h +0 -0
  429. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/basisu/transcoder/basisu_transcoder_tables_astc.inc +0 -0
  430. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/basisu/transcoder/basisu_transcoder_tables_astc_0_255.inc +0 -0
  431. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/basisu/transcoder/basisu_transcoder_tables_atc_55.inc +0 -0
  432. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/basisu/transcoder/basisu_transcoder_tables_atc_56.inc +0 -0
  433. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/basisu/transcoder/basisu_transcoder_tables_bc7_m5_alpha.inc +0 -0
  434. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/basisu/transcoder/basisu_transcoder_tables_bc7_m5_color.inc +0 -0
  435. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/basisu/transcoder/basisu_transcoder_tables_dxt1_5.inc +0 -0
  436. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/basisu/transcoder/basisu_transcoder_tables_dxt1_6.inc +0 -0
  437. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/basisu/transcoder/basisu_transcoder_tables_pvrtc2_45.inc +0 -0
  438. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/basisu/transcoder/basisu_transcoder_tables_pvrtc2_alpha_33.inc +0 -0
  439. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/basisu/transcoder/basisu_transcoder_uastc.h +0 -0
  440. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/basisu/transcoder/basisu_xbc7_decoder.h +0 -0
  441. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/basisu/transcoder/basisu_xbc7_decoder.inl +0 -0
  442. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/basisu/zstd/LICENSE +0 -0
  443. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/basisu/zstd/zstd.h +0 -0
  444. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/basisu/zstd/zstd_errors.h +0 -0
  445. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/bc7enc/LICENSE +0 -0
  446. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/bc7enc/README.md +0 -0
  447. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/bc7enc/bc7decomp.cpp +0 -0
  448. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/bc7enc/bc7decomp.h +0 -0
  449. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/bc7enc/bc7enc.cpp +0 -0
  450. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/bc7enc/bc7enc.h +0 -0
  451. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/bc7enc/rgbcx.cpp +0 -0
  452. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/bc7enc/rgbcx.h +0 -0
  453. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/bc7enc/rgbcx_table4.h +0 -0
  454. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/bc7enc/rgbcx_table4_small.h +0 -0
  455. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/dlpack/LICENSE +0 -0
  456. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/dlpack/README.md +0 -0
  457. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/dlpack/include/dlpack/dlpack.h +0 -0
  458. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/README.md +0 -0
  459. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/copying.txt +0 -0
  460. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/common.hpp +0 -0
  461. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/_features.hpp +0 -0
  462. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/_fixes.hpp +0 -0
  463. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/_noise.hpp +0 -0
  464. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/_swizzle.hpp +0 -0
  465. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/_swizzle_func.hpp +0 -0
  466. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/_vectorize.hpp +0 -0
  467. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/compute_common.hpp +0 -0
  468. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/compute_vector_decl.hpp +0 -0
  469. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/compute_vector_relational.hpp +0 -0
  470. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/func_common.inl +0 -0
  471. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/func_common_simd.inl +0 -0
  472. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/func_exponential.inl +0 -0
  473. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/func_exponential_simd.inl +0 -0
  474. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/func_geometric.inl +0 -0
  475. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/func_geometric_simd.inl +0 -0
  476. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/func_integer.inl +0 -0
  477. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/func_integer_simd.inl +0 -0
  478. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/func_matrix.inl +0 -0
  479. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/func_matrix_simd.inl +0 -0
  480. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/func_packing.inl +0 -0
  481. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/func_packing_simd.inl +0 -0
  482. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/func_trigonometric.inl +0 -0
  483. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/func_trigonometric_simd.inl +0 -0
  484. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/func_vector_relational.inl +0 -0
  485. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/func_vector_relational_simd.inl +0 -0
  486. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/qualifier.hpp +0 -0
  487. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/setup.hpp +0 -0
  488. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/type_float.hpp +0 -0
  489. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/type_half.hpp +0 -0
  490. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/type_half.inl +0 -0
  491. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/type_mat2x2.hpp +0 -0
  492. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/type_mat2x2.inl +0 -0
  493. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/type_mat2x3.hpp +0 -0
  494. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/type_mat2x3.inl +0 -0
  495. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/type_mat2x4.hpp +0 -0
  496. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/type_mat2x4.inl +0 -0
  497. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/type_mat3x2.hpp +0 -0
  498. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/type_mat3x2.inl +0 -0
  499. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/type_mat3x3.hpp +0 -0
  500. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/type_mat3x3.inl +0 -0
  501. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/type_mat3x4.hpp +0 -0
  502. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/type_mat3x4.inl +0 -0
  503. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/type_mat4x2.hpp +0 -0
  504. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/type_mat4x2.inl +0 -0
  505. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/type_mat4x3.hpp +0 -0
  506. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/type_mat4x3.inl +0 -0
  507. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/type_mat4x4.hpp +0 -0
  508. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/type_mat4x4.inl +0 -0
  509. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/type_mat4x4_simd.inl +0 -0
  510. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/type_quat.hpp +0 -0
  511. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/type_quat.inl +0 -0
  512. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/type_quat_simd.inl +0 -0
  513. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/type_vec1.hpp +0 -0
  514. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/type_vec1.inl +0 -0
  515. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/type_vec2.hpp +0 -0
  516. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/type_vec2.inl +0 -0
  517. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/type_vec3.hpp +0 -0
  518. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/type_vec3.inl +0 -0
  519. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/type_vec4.hpp +0 -0
  520. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/type_vec4.inl +0 -0
  521. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/detail/type_vec_simd.inl +0 -0
  522. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/exponential.hpp +0 -0
  523. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/_matrix_vectorize.hpp +0 -0
  524. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_clip_space.hpp +0 -0
  525. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_clip_space.inl +0 -0
  526. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_common.hpp +0 -0
  527. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_common.inl +0 -0
  528. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_double2x2.hpp +0 -0
  529. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_double2x2_precision.hpp +0 -0
  530. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_double2x3.hpp +0 -0
  531. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_double2x3_precision.hpp +0 -0
  532. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_double2x4.hpp +0 -0
  533. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_double2x4_precision.hpp +0 -0
  534. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_double3x2.hpp +0 -0
  535. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_double3x2_precision.hpp +0 -0
  536. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_double3x3.hpp +0 -0
  537. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_double3x3_precision.hpp +0 -0
  538. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_double3x4.hpp +0 -0
  539. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_double3x4_precision.hpp +0 -0
  540. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_double4x2.hpp +0 -0
  541. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_double4x2_precision.hpp +0 -0
  542. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_double4x3.hpp +0 -0
  543. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_double4x3_precision.hpp +0 -0
  544. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_double4x4.hpp +0 -0
  545. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_double4x4_precision.hpp +0 -0
  546. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_float2x2.hpp +0 -0
  547. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_float2x2_precision.hpp +0 -0
  548. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_float2x3.hpp +0 -0
  549. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_float2x3_precision.hpp +0 -0
  550. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_float2x4.hpp +0 -0
  551. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_float2x4_precision.hpp +0 -0
  552. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_float3x2.hpp +0 -0
  553. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_float3x2_precision.hpp +0 -0
  554. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_float3x3.hpp +0 -0
  555. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_float3x3_precision.hpp +0 -0
  556. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_float3x4.hpp +0 -0
  557. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_float3x4_precision.hpp +0 -0
  558. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_float4x2.hpp +0 -0
  559. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_float4x2_precision.hpp +0 -0
  560. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_float4x3.hpp +0 -0
  561. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_float4x3_precision.hpp +0 -0
  562. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_float4x4.hpp +0 -0
  563. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_float4x4_precision.hpp +0 -0
  564. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_int2x2.hpp +0 -0
  565. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_int2x2_sized.hpp +0 -0
  566. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_int2x3.hpp +0 -0
  567. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_int2x3_sized.hpp +0 -0
  568. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_int2x4.hpp +0 -0
  569. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_int2x4_sized.hpp +0 -0
  570. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_int3x2.hpp +0 -0
  571. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_int3x2_sized.hpp +0 -0
  572. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_int3x3.hpp +0 -0
  573. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_int3x3_sized.hpp +0 -0
  574. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_int3x4.hpp +0 -0
  575. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_int3x4_sized.hpp +0 -0
  576. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_int4x2.hpp +0 -0
  577. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_int4x2_sized.hpp +0 -0
  578. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_int4x3.hpp +0 -0
  579. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_int4x3_sized.hpp +0 -0
  580. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_int4x4.hpp +0 -0
  581. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_int4x4_sized.hpp +0 -0
  582. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_integer.hpp +0 -0
  583. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_integer.inl +0 -0
  584. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_projection.hpp +0 -0
  585. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_projection.inl +0 -0
  586. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_relational.hpp +0 -0
  587. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_relational.inl +0 -0
  588. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_transform.hpp +0 -0
  589. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_transform.inl +0 -0
  590. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_uint2x2.hpp +0 -0
  591. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_uint2x2_sized.hpp +0 -0
  592. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_uint2x3.hpp +0 -0
  593. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_uint2x3_sized.hpp +0 -0
  594. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_uint2x4.hpp +0 -0
  595. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_uint2x4_sized.hpp +0 -0
  596. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_uint3x2.hpp +0 -0
  597. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_uint3x2_sized.hpp +0 -0
  598. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_uint3x3.hpp +0 -0
  599. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_uint3x3_sized.hpp +0 -0
  600. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_uint3x4.hpp +0 -0
  601. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_uint3x4_sized.hpp +0 -0
  602. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_uint4x2.hpp +0 -0
  603. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_uint4x2_sized.hpp +0 -0
  604. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_uint4x3.hpp +0 -0
  605. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_uint4x3_sized.hpp +0 -0
  606. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_uint4x4.hpp +0 -0
  607. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/matrix_uint4x4_sized.hpp +0 -0
  608. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/quaternion_common.hpp +0 -0
  609. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/quaternion_common.inl +0 -0
  610. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/quaternion_common_simd.inl +0 -0
  611. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/quaternion_double.hpp +0 -0
  612. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/quaternion_double_precision.hpp +0 -0
  613. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/quaternion_exponential.hpp +0 -0
  614. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/quaternion_exponential.inl +0 -0
  615. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/quaternion_float.hpp +0 -0
  616. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/quaternion_float_precision.hpp +0 -0
  617. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/quaternion_geometric.hpp +0 -0
  618. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/quaternion_geometric.inl +0 -0
  619. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/quaternion_relational.hpp +0 -0
  620. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/quaternion_relational.inl +0 -0
  621. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/quaternion_transform.hpp +0 -0
  622. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/quaternion_transform.inl +0 -0
  623. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/quaternion_trigonometric.hpp +0 -0
  624. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/quaternion_trigonometric.inl +0 -0
  625. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/scalar_common.hpp +0 -0
  626. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/scalar_common.inl +0 -0
  627. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/scalar_constants.hpp +0 -0
  628. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/scalar_constants.inl +0 -0
  629. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/scalar_int_sized.hpp +0 -0
  630. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/scalar_integer.hpp +0 -0
  631. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/scalar_integer.inl +0 -0
  632. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/scalar_packing.hpp +0 -0
  633. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/scalar_packing.inl +0 -0
  634. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/scalar_reciprocal.hpp +0 -0
  635. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/scalar_reciprocal.inl +0 -0
  636. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/scalar_relational.hpp +0 -0
  637. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/scalar_relational.inl +0 -0
  638. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/scalar_uint_sized.hpp +0 -0
  639. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/scalar_ulp.hpp +0 -0
  640. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/scalar_ulp.inl +0 -0
  641. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_bool1.hpp +0 -0
  642. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_bool1_precision.hpp +0 -0
  643. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_bool2.hpp +0 -0
  644. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_bool2_precision.hpp +0 -0
  645. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_bool3.hpp +0 -0
  646. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_bool3_precision.hpp +0 -0
  647. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_bool4.hpp +0 -0
  648. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_bool4_precision.hpp +0 -0
  649. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_common.hpp +0 -0
  650. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_common.inl +0 -0
  651. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_double1.hpp +0 -0
  652. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_double1_precision.hpp +0 -0
  653. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_double2.hpp +0 -0
  654. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_double2_precision.hpp +0 -0
  655. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_double3.hpp +0 -0
  656. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_double3_precision.hpp +0 -0
  657. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_double4.hpp +0 -0
  658. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_double4_precision.hpp +0 -0
  659. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_float1.hpp +0 -0
  660. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_float1_precision.hpp +0 -0
  661. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_float2.hpp +0 -0
  662. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_float2_precision.hpp +0 -0
  663. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_float3.hpp +0 -0
  664. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_float3_precision.hpp +0 -0
  665. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_float4.hpp +0 -0
  666. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_float4_precision.hpp +0 -0
  667. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_int1.hpp +0 -0
  668. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_int1_sized.hpp +0 -0
  669. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_int2.hpp +0 -0
  670. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_int2_sized.hpp +0 -0
  671. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_int3.hpp +0 -0
  672. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_int3_sized.hpp +0 -0
  673. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_int4.hpp +0 -0
  674. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_int4_sized.hpp +0 -0
  675. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_integer.hpp +0 -0
  676. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_integer.inl +0 -0
  677. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_packing.hpp +0 -0
  678. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_packing.inl +0 -0
  679. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_reciprocal.hpp +0 -0
  680. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_reciprocal.inl +0 -0
  681. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_relational.hpp +0 -0
  682. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_relational.inl +0 -0
  683. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_uint1.hpp +0 -0
  684. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_uint1_sized.hpp +0 -0
  685. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_uint2.hpp +0 -0
  686. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_uint2_sized.hpp +0 -0
  687. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_uint3.hpp +0 -0
  688. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_uint3_sized.hpp +0 -0
  689. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_uint4.hpp +0 -0
  690. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_uint4_sized.hpp +0 -0
  691. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_ulp.hpp +0 -0
  692. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext/vector_ulp.inl +0 -0
  693. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/ext.hpp +0 -0
  694. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/fwd.hpp +0 -0
  695. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/geometric.hpp +0 -0
  696. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/glm.hpp +0 -0
  697. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtc/bitfield.hpp +0 -0
  698. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtc/bitfield.inl +0 -0
  699. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtc/color_space.hpp +0 -0
  700. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtc/color_space.inl +0 -0
  701. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtc/constants.hpp +0 -0
  702. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtc/constants.inl +0 -0
  703. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtc/epsilon.hpp +0 -0
  704. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtc/epsilon.inl +0 -0
  705. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtc/integer.hpp +0 -0
  706. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtc/integer.inl +0 -0
  707. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtc/matrix_access.hpp +0 -0
  708. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtc/matrix_access.inl +0 -0
  709. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtc/matrix_integer.hpp +0 -0
  710. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtc/matrix_inverse.hpp +0 -0
  711. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtc/matrix_inverse.inl +0 -0
  712. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtc/matrix_transform.hpp +0 -0
  713. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtc/matrix_transform.inl +0 -0
  714. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtc/noise.hpp +0 -0
  715. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtc/noise.inl +0 -0
  716. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtc/packing.hpp +0 -0
  717. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtc/packing.inl +0 -0
  718. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtc/quaternion.hpp +0 -0
  719. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtc/quaternion.inl +0 -0
  720. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtc/quaternion_simd.inl +0 -0
  721. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtc/random.hpp +0 -0
  722. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtc/random.inl +0 -0
  723. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtc/reciprocal.hpp +0 -0
  724. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtc/round.hpp +0 -0
  725. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtc/round.inl +0 -0
  726. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtc/type_aligned.hpp +0 -0
  727. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtc/type_precision.hpp +0 -0
  728. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtc/type_precision.inl +0 -0
  729. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtc/type_ptr.hpp +0 -0
  730. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtc/type_ptr.inl +0 -0
  731. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtc/ulp.hpp +0 -0
  732. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtc/ulp.inl +0 -0
  733. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtc/vec1.hpp +0 -0
  734. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/associated_min_max.hpp +0 -0
  735. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/associated_min_max.inl +0 -0
  736. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/bit.hpp +0 -0
  737. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/bit.inl +0 -0
  738. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/closest_point.hpp +0 -0
  739. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/closest_point.inl +0 -0
  740. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/color_encoding.hpp +0 -0
  741. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/color_encoding.inl +0 -0
  742. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/color_space.hpp +0 -0
  743. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/color_space.inl +0 -0
  744. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/color_space_YCoCg.hpp +0 -0
  745. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/color_space_YCoCg.inl +0 -0
  746. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/common.hpp +0 -0
  747. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/common.inl +0 -0
  748. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/compatibility.hpp +0 -0
  749. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/compatibility.inl +0 -0
  750. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/component_wise.hpp +0 -0
  751. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/component_wise.inl +0 -0
  752. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/dual_quaternion.hpp +0 -0
  753. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/dual_quaternion.inl +0 -0
  754. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/easing.hpp +0 -0
  755. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/easing.inl +0 -0
  756. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/euler_angles.hpp +0 -0
  757. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/euler_angles.inl +0 -0
  758. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/extend.hpp +0 -0
  759. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/extend.inl +0 -0
  760. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/extended_min_max.hpp +0 -0
  761. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/extended_min_max.inl +0 -0
  762. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/exterior_product.hpp +0 -0
  763. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/exterior_product.inl +0 -0
  764. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/fast_exponential.hpp +0 -0
  765. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/fast_exponential.inl +0 -0
  766. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/fast_square_root.hpp +0 -0
  767. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/fast_square_root.inl +0 -0
  768. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/fast_trigonometry.hpp +0 -0
  769. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/fast_trigonometry.inl +0 -0
  770. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/float_normalize.inl +0 -0
  771. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/functions.hpp +0 -0
  772. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/functions.inl +0 -0
  773. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/gradient_paint.hpp +0 -0
  774. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/gradient_paint.inl +0 -0
  775. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/handed_coordinate_space.hpp +0 -0
  776. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/handed_coordinate_space.inl +0 -0
  777. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/hash.hpp +0 -0
  778. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/hash.inl +0 -0
  779. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/integer.hpp +0 -0
  780. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/integer.inl +0 -0
  781. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/intersect.hpp +0 -0
  782. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/intersect.inl +0 -0
  783. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/io.hpp +0 -0
  784. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/io.inl +0 -0
  785. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/iteration.hpp +0 -0
  786. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/iteration.inl +0 -0
  787. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/log_base.hpp +0 -0
  788. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/log_base.inl +0 -0
  789. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/matrix_cross_product.hpp +0 -0
  790. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/matrix_cross_product.inl +0 -0
  791. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/matrix_decompose.hpp +0 -0
  792. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/matrix_decompose.inl +0 -0
  793. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/matrix_factorisation.hpp +0 -0
  794. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/matrix_factorisation.inl +0 -0
  795. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/matrix_interpolation.hpp +0 -0
  796. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/matrix_interpolation.inl +0 -0
  797. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/matrix_major_storage.hpp +0 -0
  798. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/matrix_major_storage.inl +0 -0
  799. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/matrix_operation.hpp +0 -0
  800. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/matrix_operation.inl +0 -0
  801. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/matrix_query.hpp +0 -0
  802. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/matrix_query.inl +0 -0
  803. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/matrix_transform_2d.hpp +0 -0
  804. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/matrix_transform_2d.inl +0 -0
  805. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/mixed_product.hpp +0 -0
  806. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/mixed_product.inl +0 -0
  807. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/norm.hpp +0 -0
  808. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/norm.inl +0 -0
  809. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/normal.hpp +0 -0
  810. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/normal.inl +0 -0
  811. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/normalize_dot.hpp +0 -0
  812. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/normalize_dot.inl +0 -0
  813. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/number_precision.hpp +0 -0
  814. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/optimum_pow.hpp +0 -0
  815. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/optimum_pow.inl +0 -0
  816. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/orthonormalize.hpp +0 -0
  817. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/orthonormalize.inl +0 -0
  818. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/pca.hpp +0 -0
  819. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/pca.inl +0 -0
  820. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/perpendicular.hpp +0 -0
  821. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/perpendicular.inl +0 -0
  822. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/polar_coordinates.hpp +0 -0
  823. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/polar_coordinates.inl +0 -0
  824. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/projection.hpp +0 -0
  825. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/projection.inl +0 -0
  826. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/quaternion.hpp +0 -0
  827. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/quaternion.inl +0 -0
  828. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/range.hpp +0 -0
  829. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/raw_data.hpp +0 -0
  830. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/raw_data.inl +0 -0
  831. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/rotate_normalized_axis.hpp +0 -0
  832. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/rotate_normalized_axis.inl +0 -0
  833. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/rotate_vector.hpp +0 -0
  834. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/rotate_vector.inl +0 -0
  835. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/scalar_multiplication.hpp +0 -0
  836. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/scalar_relational.hpp +0 -0
  837. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/scalar_relational.inl +0 -0
  838. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/spline.hpp +0 -0
  839. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/spline.inl +0 -0
  840. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/std_based_type.hpp +0 -0
  841. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/std_based_type.inl +0 -0
  842. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/string_cast.hpp +0 -0
  843. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/string_cast.inl +0 -0
  844. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/structured_bindings.hpp +0 -0
  845. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/structured_bindings.inl +0 -0
  846. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/texture.hpp +0 -0
  847. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/texture.inl +0 -0
  848. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/transform.hpp +0 -0
  849. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/transform.inl +0 -0
  850. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/transform2.hpp +0 -0
  851. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/transform2.inl +0 -0
  852. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/type_aligned.hpp +0 -0
  853. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/type_aligned.inl +0 -0
  854. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/type_trait.hpp +0 -0
  855. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/type_trait.inl +0 -0
  856. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/vec_swizzle.hpp +0 -0
  857. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/vector_angle.hpp +0 -0
  858. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/vector_angle.inl +0 -0
  859. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/vector_query.hpp +0 -0
  860. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/vector_query.inl +0 -0
  861. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/wrap.hpp +0 -0
  862. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/gtx/wrap.inl +0 -0
  863. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/integer.hpp +0 -0
  864. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/mat2x2.hpp +0 -0
  865. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/mat2x3.hpp +0 -0
  866. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/mat2x4.hpp +0 -0
  867. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/mat3x2.hpp +0 -0
  868. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/mat3x3.hpp +0 -0
  869. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/mat3x4.hpp +0 -0
  870. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/mat4x2.hpp +0 -0
  871. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/mat4x3.hpp +0 -0
  872. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/mat4x4.hpp +0 -0
  873. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/matrix.hpp +0 -0
  874. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/packing.hpp +0 -0
  875. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/simd/common.h +0 -0
  876. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/simd/exponential.h +0 -0
  877. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/simd/geometric.h +0 -0
  878. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/simd/integer.h +0 -0
  879. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/simd/matrix.h +0 -0
  880. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/simd/neon.h +0 -0
  881. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/simd/packing.h +0 -0
  882. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/simd/platform.h +0 -0
  883. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/simd/trigonometric.h +0 -0
  884. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/simd/vector_relational.h +0 -0
  885. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/trigonometric.hpp +0 -0
  886. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/vec2.hpp +0 -0
  887. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/vec3.hpp +0 -0
  888. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/vec4.hpp +0 -0
  889. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/glm/glm/vector_relational.hpp +0 -0
  890. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/json/LICENSE.MIT +0 -0
  891. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/json/README.md +0 -0
  892. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/json/include/nlohmann/json.hpp +0 -0
  893. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/json/include/nlohmann/json_fwd.hpp +0 -0
  894. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/nanovdb/LICENSE +0 -0
  895. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/nanovdb/PNanoVDB.h +0 -0
  896. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/stb/LICENSE +0 -0
  897. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/stb/README.md +0 -0
  898. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/stb/stb_image.h +0 -0
  899. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/stb/stb_image_write.h +0 -0
  900. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/stb.cpp +0 -0
  901. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/vma/LICENSE.txt +0 -0
  902. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/vma/README.md +0 -0
  903. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/vma/include/vk_mem_alloc.h +0 -0
  904. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/vma.cpp +0 -0
  905. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/volk/LICENSE.md +0 -0
  906. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/volk/README.md +0 -0
  907. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/volk/volk.c +0 -0
  908. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/volk/volk.h +0 -0
  909. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/vulkan_headers/LICENSE.md +0 -0
  910. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/vulkan_headers/LICENSES/Apache-2.0.txt +0 -0
  911. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/vulkan_headers/LICENSES/MIT.txt +0 -0
  912. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/vulkan_headers/README.md +0 -0
  913. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/vulkan_headers/include/vk_video/vulkan_video_codec_av1std.h +0 -0
  914. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/vulkan_headers/include/vk_video/vulkan_video_codec_av1std_decode.h +0 -0
  915. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/vulkan_headers/include/vk_video/vulkan_video_codec_av1std_encode.h +0 -0
  916. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/vulkan_headers/include/vk_video/vulkan_video_codec_h264std.h +0 -0
  917. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/vulkan_headers/include/vk_video/vulkan_video_codec_h264std_decode.h +0 -0
  918. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/vulkan_headers/include/vk_video/vulkan_video_codec_h264std_encode.h +0 -0
  919. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/vulkan_headers/include/vk_video/vulkan_video_codec_h265std.h +0 -0
  920. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/vulkan_headers/include/vk_video/vulkan_video_codec_h265std_decode.h +0 -0
  921. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/vulkan_headers/include/vk_video/vulkan_video_codec_h265std_encode.h +0 -0
  922. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/vulkan_headers/include/vk_video/vulkan_video_codec_vp9std.h +0 -0
  923. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/vulkan_headers/include/vk_video/vulkan_video_codec_vp9std_decode.h +0 -0
  924. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/vulkan_headers/include/vk_video/vulkan_video_codecs_common.h +0 -0
  925. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/vulkan_headers/include/vulkan/vk_icd.h +0 -0
  926. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/vulkan_headers/include/vulkan/vk_layer.h +0 -0
  927. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/vulkan_headers/include/vulkan/vk_platform.h +0 -0
  928. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/vulkan_headers/include/vulkan/vulkan.h +0 -0
  929. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/vulkan_headers/include/vulkan/vulkan_android.h +0 -0
  930. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/vulkan_headers/include/vulkan/vulkan_beta.h +0 -0
  931. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/vulkan_headers/include/vulkan/vulkan_core.h +0 -0
  932. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/vulkan_headers/include/vulkan/vulkan_directfb.h +0 -0
  933. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/vulkan_headers/include/vulkan/vulkan_fuchsia.h +0 -0
  934. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/vulkan_headers/include/vulkan/vulkan_ggp.h +0 -0
  935. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/vulkan_headers/include/vulkan/vulkan_ios.h +0 -0
  936. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/vulkan_headers/include/vulkan/vulkan_macos.h +0 -0
  937. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/vulkan_headers/include/vulkan/vulkan_metal.h +0 -0
  938. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/vulkan_headers/include/vulkan/vulkan_ohos.h +0 -0
  939. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/vulkan_headers/include/vulkan/vulkan_screen.h +0 -0
  940. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/vulkan_headers/include/vulkan/vulkan_ubm.h +0 -0
  941. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/vulkan_headers/include/vulkan/vulkan_vi.h +0 -0
  942. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/vulkan_headers/include/vulkan/vulkan_wayland.h +0 -0
  943. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/vulkan_headers/include/vulkan/vulkan_win32.h +0 -0
  944. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/vulkan_headers/include/vulkan/vulkan_xcb.h +0 -0
  945. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/third_party/vulkan_headers/include/vulkan/vulkan_xlib.h +0 -0
  946. {ernie_renderer-0.2.0.dev161 → ernie_renderer-0.2.0.dev164}/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 ".dev161" CACHE STRING "Pre-release suffix of Ernie's version")
18
+ set(ERNIE_VERSION_SUFFIX ".dev164" 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.dev161
3
+ Version: 0.2.0.dev164
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
@@ -2,6 +2,7 @@
2
2
  add_executable(
3
3
  ernie_benchmarks
4
4
  main.cpp
5
+ app/viewer_frame.cpp
5
6
  device/pose_step.cpp
6
7
  render/batch_step.cpp
7
8
  render/hide_seek.cpp
@@ -11,5 +12,5 @@ add_executable(
11
12
  )
12
13
  target_link_libraries(
13
14
  ernie_benchmarks
14
- PRIVATE ernie_static ernie_volk ernie_vma ernie_build_options
15
+ PRIVATE ernie_viewer ernie_static ernie_volk ernie_vma ernie_build_options
15
16
  )
@@ -0,0 +1,115 @@
1
+ // SPDX-License-Identifier: BSD-3-Clause
2
+ /// @file viewer_frame.cpp
3
+ /// @brief The viewer's frame on the host: an offscreen 1920 x 1080 viewer over a scene of a few
4
+ /// hundred prims, tracing every frame (eco mode off), its host time split by profiler zone.
5
+ #include "benchmarks/bench.h"
6
+ #include "ernie/app/viewer.h"
7
+ #include "ernie/scene/schema/geom.h"
8
+ #include "ernie/scene/schema/planet.h"
9
+ #include "ernie/scene/xform.h"
10
+ #include "ernie/util/profiler.h"
11
+
12
+ #include <cstdio>
13
+ #include <map>
14
+ #include <string>
15
+ #include <vector>
16
+
17
+ namespace ernie::bench {
18
+ namespace {
19
+
20
+ constexpr int kGroups = 20;
21
+ constexpr int kShapesPerGroup = 15;
22
+ /// Frames drawn before measuring, while pipelines compile and the layout settles.
23
+ constexpr std::uint64_t kWarmup = 30;
24
+ constexpr std::uint64_t kMeasured = 200;
25
+
26
+ void BuildScene(Scene& scene) {
27
+ GroundPlane::Define(scene, "/World/Ground");
28
+ for (int group = 0; group < kGroups; ++group) {
29
+ const std::string root = "/World/Group" + std::to_string(group);
30
+ Xform::Define(scene, root);
31
+ SetXform(scene, root, {.translate = glm::dvec3(3.0 * (group % 5), 3.0 * (group / 5), 0)});
32
+ for (int shape = 0; shape < kShapesPerGroup; ++shape) {
33
+ const std::string path = root + "/Shape" + std::to_string(shape);
34
+ if (shape % 2 == 0) {
35
+ Sphere::Define(scene, path).SetRadius(0.2);
36
+ } else {
37
+ Cube::Define(scene, path).SetSize(0.3);
38
+ }
39
+ SetXform(scene, path,
40
+ {.translate = glm::dvec3(0.4 * (shape % 4), 0.4 * (shape / 4), 0.5)});
41
+ }
42
+ }
43
+ scene.Update();
44
+ }
45
+
46
+ /// The average milliseconds a frame spends in each zone at most `deepest` deep, by name, in the
47
+ /// order they first end.
48
+ std::vector<std::pair<std::string, double>>
49
+ Average(const std::vector<profiler::Frame>& frames,
50
+ std::vector<profiler::Zone> profiler::Frame::* zones, std::uint32_t deepest) {
51
+ std::map<std::string, double> totals;
52
+ std::vector<std::string> order;
53
+ std::size_t counted = 0;
54
+ for (const profiler::Frame& frame : frames) {
55
+ // GPU zones of the newest frames may not have arrived.
56
+ if ((frame.*zones).empty()) {
57
+ continue;
58
+ }
59
+ ++counted;
60
+ for (const profiler::Zone& zone : frame.*zones) {
61
+ if (zone.thread != 0 || zone.depth > deepest) {
62
+ continue;
63
+ }
64
+ const std::string name = std::string(2 * zone.depth, ' ') + zone.name;
65
+ if (!totals.contains(name)) {
66
+ order.push_back(name);
67
+ }
68
+ totals[name] += static_cast<double>(zone.end - zone.start);
69
+ }
70
+ }
71
+ std::vector<std::pair<std::string, double>> averages;
72
+ for (const std::string& name : order) {
73
+ averages.emplace_back(name, totals[name] / static_cast<double>(counted) * 1e-6);
74
+ }
75
+ return averages;
76
+ }
77
+
78
+ Timing RunViewerFrame() {
79
+ Scene scene;
80
+ BuildScene(scene);
81
+ app::ViewerOptions options{.size = {1920, 1080}, .offscreen = true, .frames = kWarmup};
82
+ options.shell.display.eco = false;
83
+ // Zones every frame, not only while the Profiler panel's tab shows.
84
+ options.shell.profile = true;
85
+ profiler::SetHistory(kMeasured);
86
+ app::Viewer viewer(scene, options);
87
+ // A prim selected, as while working, so Properties draws its fields.
88
+ viewer.GetShell().Selected().Set("/World/Group0/Shape0");
89
+ viewer.Run();
90
+ profiler::Clear();
91
+ profiler::SetEnabled(true);
92
+ viewer.RunFrames(kMeasured);
93
+ profiler::SetEnabled(false);
94
+ const std::vector<profiler::Frame> frames = profiler::Frames();
95
+ double frameMs = 0.0;
96
+ for (const profiler::Frame& frame : frames) {
97
+ frameMs += static_cast<double>(frame.end - frame.start) * 1e-6;
98
+ }
99
+ frameMs /= static_cast<double>(frames.size());
100
+ std::printf(" %zu frames of 1920 x 1080, %d prims: %.3f ms a frame\n", frames.size(),
101
+ kGroups * (kShapesPerGroup + 1) + 1, frameMs);
102
+ for (const auto& [title, zones, deepest] :
103
+ {std::tuple("Host", &profiler::Frame::cpu, 2u), {"Device", &profiler::Frame::gpu, 2u}}) {
104
+ std::printf(" %s\n", title);
105
+ for (const auto& [name, ms] : Average(frames, zones, deepest)) {
106
+ std::printf(" %-44s %8.3f ms\n", name.c_str(), ms);
107
+ }
108
+ }
109
+ return {.ms = frameMs, .targetMs = 1.0};
110
+ }
111
+
112
+ const bool kRegistered = Register("app.viewer_frame", RunViewerFrame);
113
+
114
+ } // namespace
115
+ } // namespace ernie::bench
@@ -105,6 +105,9 @@ Viewer::Viewer(Scene& scene, const ViewerOptions& options)
105
105
  if (deviceScene_->Tracer() != nullptr) {
106
106
  heap_ = std::make_unique<BindlessHeap>(*context_);
107
107
  camera_ = std::make_unique<CameraPass>(*context_, compiler, *heap_);
108
+ pose_ = std::make_unique<DeviceColumn>(*arenas_, "viewport pose", DType::Float32,
109
+ std::vector<std::int64_t>{4}, 3);
110
+ poseUploader_ = std::make_unique<Uploader>(*context_, context_->Main());
108
111
  }
109
112
  sampler_ = std::make_unique<Sampler>(
110
113
  *context_, SamplerDescription{.filter = Filter::Nearest, .address = Address::Clamp},
@@ -123,6 +126,13 @@ void Viewer::Run() {
123
126
  }
124
127
  }
125
128
 
129
+ void Viewer::RunFrames(std::uint64_t count) {
130
+ for (std::uint64_t frame = 0; frame < count && !presenter_->CloseRequested() && shell_->Open();
131
+ ++frame) {
132
+ Step();
133
+ }
134
+ }
135
+
126
136
  Tensor Viewer::ReadImage(const DeviceImage& image, const Ticket& drawn) {
127
137
  const glm::uvec2 size(image.Description().extent);
128
138
  const std::uint64_t bytes = std::uint64_t{4} * size.x * size.y;
@@ -166,7 +176,7 @@ void Viewer::Capture(const Ticket& drawn) {
166
176
  if (shell_->TakeScreenshot()) {
167
177
  try {
168
178
  const std::filesystem::path path = CapturePath(".png", 0);
169
- WritePng(path, ReadImage(*viewport_, drawn));
179
+ WritePng(path, ReadImage(*slots_[shown_].image, drawn));
170
180
  shell_->AddRecentCapture(path);
171
181
  } catch (const std::exception& error) {
172
182
  shell_->Log().Error(std::string("Capturing: ") + error.what());
@@ -194,7 +204,7 @@ void Viewer::RecordFrame(const Ticket& drawn) {
194
204
  std::array<char, 32> name{};
195
205
  std::snprintf(name.data(), name.size(), "frame_%04lld.png",
196
206
  static_cast<long long>(recording.done));
197
- WritePng(recording.folder / name.data(), ReadImage(*viewport_, drawn));
207
+ WritePng(recording.folder / name.data(), ReadImage(*slots_[shown_].image, drawn));
198
208
  ++recording.done;
199
209
  recording.next += recording.request.every;
200
210
  if (recording.done >= recording.total || shell_->stopRecording) {
@@ -307,12 +317,11 @@ bool Viewer::Step() {
307
317
  Ticket drawn;
308
318
  {
309
319
  ERNIE_ZONE("Run the frame");
310
- ecoPaused_ = EcoPause();
311
- shell_->SetEcoPaused(ecoPaused_);
312
- deviceScene_->Follow(shell_->Camera().Eye());
313
- drawn =
314
- deviceScene_->Execute([&](graph::Graph& graph) { AddPasses(graph, data, *target); },
315
- {}, target->semaphores);
320
+ if (!ecoPaused_) {
321
+ deviceScene_->Follow(shell_->Camera().Eye());
322
+ TraceViewport();
323
+ }
324
+ drawn = DrawUi(data, *target);
316
325
  }
317
326
  inFlight_.push_back(drawn);
318
327
  if (const std::optional<Shell::Pick> pick = shell_->TakePick()) {
@@ -335,47 +344,59 @@ void Viewer::ShowViewport() {
335
344
  const auto [position, size] = shell_->Viewport();
336
345
  const ImVec2 scale = ImGui::GetIO().DisplayFramebufferScale;
337
346
  const glm::uvec2 pixels(std::max(1.0f, size.x * scale.x), std::max(1.0f, size.y * scale.y));
338
- if (!viewport_ || glm::uvec2(viewport_->Description().extent) != pixels) {
347
+ if (!slots_[0].image || glm::uvec2(slots_[0].image->Description().extent) != pixels) {
339
348
  ResizeViewport(pixels);
340
349
  }
341
- ImGui::GetBackgroundDrawList()->AddImage(viewportTexture_, position,
350
+ ecoPaused_ = EcoPause();
351
+ shell_->SetEcoPaused(ecoPaused_);
352
+ // A traced frame takes the other slot, so the last one's image stays whole while it renders.
353
+ if (!ecoPaused_ && camera_) {
354
+ shown_ = (shown_ + 1) % kSlots;
355
+ }
356
+ ImGui::GetBackgroundDrawList()->AddImage(slots_[shown_].texture, position,
342
357
  {position.x + size.x, position.y + size.y});
343
358
  }
344
359
 
345
360
  void Viewer::ResizeViewport(glm::uvec2 pixels) {
346
361
  ERNIE_ZONE("Resize the viewport");
347
- // Frames in flight may still sample the old image.
362
+ // Frames in flight may still sample the old images.
348
363
  context_->Main().Last().Wait();
349
- if (viewport_) {
350
- renderer_->RemoveTexture(viewportTexture_);
364
+ for (ViewportSlot& slot : slots_) {
365
+ if (slot.image) {
366
+ renderer_->RemoveTexture(slot.texture);
367
+ if (heap_) {
368
+ heap_->RemoveStorageImage(slot.storage);
369
+ }
370
+ }
371
+ slot.image = std::make_unique<DeviceImage>(
372
+ *context_,
373
+ ImageDescription{.format = ImageFormat::Rgba8Unorm,
374
+ .extent = {pixels, 1},
375
+ .usage = ImageUsage::Sampled | ImageUsage::Storage},
376
+ "Viewport");
377
+ slot.texture = renderer_->AddTexture(slot.image->View(), sampler_->Handle());
351
378
  if (heap_) {
352
- heap_->RemoveStorageImage(viewportImage_);
379
+ slot.storage = heap_->AddStorageImage(*slot.image);
380
+ slot.prims = std::make_unique<DeviceColumn>(*arenas_, "viewport prims", DType::UInt32,
381
+ std::vector<std::int64_t>{},
382
+ std::uint64_t{pixels.x} * pixels.y);
353
383
  }
354
384
  }
355
- viewport_ = std::make_unique<DeviceImage>(
356
- *context_,
357
- ImageDescription{.format = ImageFormat::Rgba8Unorm,
358
- .extent = {pixels, 1},
359
- .usage = ImageUsage::Sampled | ImageUsage::Storage},
360
- "Viewport");
361
- viewportTexture_ = renderer_->AddTexture(viewport_->View(), sampler_->Handle());
362
- if (heap_) {
363
- viewportImage_ = heap_->AddStorageImage(*viewport_);
364
- prims_ = std::make_unique<DeviceColumn>(*arenas_, "viewport prims", DType::UInt32,
365
- std::vector<std::int64_t>{},
366
- std::uint64_t{pixels.x} * pixels.y);
367
- }
385
+ // The recorded frames name the old images.
386
+ ++recorded_;
368
387
  }
369
388
 
370
389
  void Viewer::Pick(const Shell::Pick& pick, const Ticket& drawn) {
371
- if (!prims_) {
390
+ const ViewportSlot& shown = slots_[shown_];
391
+ if (!shown.prims) {
372
392
  return;
373
393
  }
374
- const glm::uvec2 size(viewport_->Description().extent);
394
+ const DeviceColumn& prims = *shown.prims;
395
+ const glm::uvec2 size(shown.image->Description().extent);
375
396
  const glm::uvec2 pixel = glm::min(glm::uvec2(pick.at * glm::vec2(size)), size - 1u);
376
397
  const std::uint64_t at = std::uint64_t{pixel.y} * size.x + pixel.x;
377
- Readback readback(*context_, context_->Main(), prims_->Storage(),
378
- prims_->Range().offset + at * sizeof(std::uint32_t), sizeof(std::uint32_t),
398
+ Readback readback(*context_, context_->Main(), prims.Storage(),
399
+ prims.Range().offset + at * sizeof(std::uint32_t), sizeof(std::uint32_t),
379
400
  std::span(&drawn, 1));
380
401
  const std::uint32_t slot = readback.Values<std::uint32_t>().front();
381
402
  const std::optional<PrimId> prim = scene_.Store().PrimAtSlot(slot);
@@ -387,7 +408,7 @@ bool Viewer::EcoPause() {
387
408
  const ViewState now{.version = scene_.Store().Version(),
388
409
  .camera = orbit.Transform(),
389
410
  .fov = orbit.verticalFov,
390
- .size = glm::uvec2(viewport_->Description().extent)};
411
+ .size = glm::uvec2(slots_[0].image->Description().extent)};
391
412
  stillFrames_ = lastView_ == now ? stillFrames_ + 1 : 0;
392
413
  lastView_ = now;
393
414
  const ViewportDisplay& display = shell_->Display();
@@ -395,37 +416,62 @@ bool Viewer::EcoPause() {
395
416
  stillFrames_ >= static_cast<std::uint64_t>(std::max(display.ecoFrames, 1));
396
417
  }
397
418
 
398
- graph::Image Viewer::AddViewportPass(graph::Graph& graph) {
399
- graph::Image viewport = graph.Import(*viewport_, "viewport");
400
- if (ecoPaused_) {
401
- // Still: the last frame's image stands.
402
- return viewport;
403
- }
404
- if (camera_) {
405
- const OrbitCamera& orbit = shell_->Camera();
406
- CameraOutputs outputs{.colour = viewport,
407
- .colourIndex = viewportImage_,
408
- .background = glm::vec3(shell_->GetTheme().viewport),
409
- .prims = graph.Import(*prims_)};
410
- const glm::uvec2 size(viewport_->Description().extent);
411
- camera_->Add(graph,
412
- {.cameraToWorld = orbit.Transform(),
413
- .size = size,
414
- .lens = MakePinhole(orbit.verticalFov, size)},
415
- outputs);
416
- return *outputs.colour;
419
+ Ticket Viewer::TraceViewport() {
420
+ if (!camera_) {
421
+ // The device scene still follows the scene, with nothing to trace.
422
+ return deviceScene_->Step([](graph::Graph&) {}, recorded_);
417
423
  }
418
- graph.Add(
419
- "Viewport", graph::Kind::Copy,
420
- [&](graph::PassBuilder& pass) { viewport = pass.Write(viewport, graph::Use::CopyDst); },
421
- [this, viewport](graph::PassContext& pass) {
422
- pass.Clear(viewport, shell_->GetTheme().viewport);
423
- });
424
- return viewport;
424
+ const OrbitCamera& orbit = shell_->Camera();
425
+ const ViewportSlot& slot = slots_[shown_];
426
+ const glm::uvec2 size(slot.image->Description().extent);
427
+ const RecordedView view{.size = size,
428
+ .fov = orbit.verticalFov,
429
+ .background = glm::vec3(shell_->GetTheme().viewport)};
430
+ if (recordedView_ != view) {
431
+ recordedView_ = view;
432
+ ++recorded_;
433
+ }
434
+ {
435
+ // Its own submission, before the trace's recorded commands read it.
436
+ ERNIE_ZONE("Upload the viewport pose");
437
+ const glm::dmat4 relative =
438
+ glm::translate(glm::dmat4(1.0), -deviceScene_->Transforms().Origin()) *
439
+ orbit.Transform();
440
+ const std::array<glm::vec4, 3> rows = ToAffineRows(relative);
441
+ poseUploader_->Write(pose_->Storage(), pose_->Range().offset,
442
+ std::span<const glm::vec4>(rows));
443
+ graph::Graph graph(*context_, deviceScene_->Pool());
444
+ std::array buffers{graph.Import(*pose_)};
445
+ graph::AddUploadPass(graph, "Upload the viewport pose", *poseUploader_, buffers);
446
+ graph.Execute(context_->Main());
447
+ }
448
+ return deviceScene_->Step(
449
+ [&](graph::Graph& graph) {
450
+ CameraOutputs outputs{.colour = graph.Import(*slot.image, "viewport"),
451
+ .colourIndex = slot.storage,
452
+ .background = view.background,
453
+ .prims = graph.Import(*slot.prims)};
454
+ camera_->Add(graph,
455
+ {.cameraToWorld = orbit.Transform(),
456
+ .size = size,
457
+ .lens = MakePinhole(orbit.verticalFov, size),
458
+ .pose = graph.Import(*pose_)},
459
+ outputs);
460
+ },
461
+ recorded_ * kSlots + shown_);
425
462
  }
426
463
 
427
- void Viewer::AddPasses(graph::Graph& graph, ImDrawData& data, const FrameTarget& target) {
428
- const graph::Image viewport = AddViewportPass(graph);
464
+ Ticket Viewer::DrawUi(ImDrawData& data, const FrameTarget& target) {
465
+ graph::Graph graph(*context_, deviceScene_->Pool());
466
+ graph::Image viewport = graph.Import(*slots_[shown_].image, "viewport");
467
+ if (!camera_) {
468
+ graph.Add(
469
+ "Viewport", graph::Kind::Copy,
470
+ [&](graph::PassBuilder& pass) { viewport = pass.Write(viewport, graph::Use::CopyDst); },
471
+ [this, viewport](graph::PassContext& pass) {
472
+ pass.Clear(viewport, shell_->GetTheme().viewport);
473
+ });
474
+ }
429
475
  graph.Add(
430
476
  "UI", graph::Kind::Raster,
431
477
  [&](graph::PassBuilder& pass) {
@@ -439,6 +485,7 @@ void Viewer::AddPasses(graph::Graph& graph, ImDrawData& data, const FrameTarget&
439
485
  renderer_->Record(pass.commands.Handle(), data, target,
440
486
  glm::vec4(0.0f, 0.0f, 0.0f, 1.0f));
441
487
  });
488
+ return graph.Execute(context_->Main(), {}, target.semaphores);
442
489
  }
443
490
 
444
491
  std::string_view ViewUsage() {
@@ -12,6 +12,7 @@
12
12
 
13
13
  #include <glm/vec2.hpp>
14
14
 
15
+ #include <array>
15
16
  #include <chrono>
16
17
  #include <cstdint>
17
18
  #include <deque>
@@ -60,6 +61,9 @@ class Viewer {
60
61
 
61
62
  /// @brief Draws frames until the window closes, the user quits or the frame count is reached.
62
63
  void Run();
64
+ /// @brief Draws `count` more frames, whatever the frame count, or fewer once the window
65
+ /// closes or the user quits.
66
+ void RunFrames(std::uint64_t count);
63
67
 
64
68
  std::uint64_t Frames() const {
65
69
  return frames_;
@@ -68,6 +72,11 @@ class Viewer {
68
72
  bool EcoPaused() const {
69
73
  return ecoPaused_;
70
74
  }
75
+ /// @return Whether the last frame's trace submitted commands recorded for an earlier frame
76
+ /// again, as it does while only the camera's pose and device columns change.
77
+ bool Replayed() const {
78
+ return deviceScene_->Replayed();
79
+ }
71
80
  Shell& GetShell() {
72
81
  return *shell_;
73
82
  }
@@ -108,12 +117,15 @@ class Viewer {
108
117
  void RecordFrame(const Ticket& drawn);
109
118
  /// @brief Ends the recording, encoding its frames into video when asked.
110
119
  void FinishSequence();
111
- /// @brief Adds the pass filling the viewport: traced, or the theme's colour without ray
112
- /// queries.
113
- /// @return The viewport, filled.
114
- graph::Image AddViewportPass(graph::Graph& graph);
115
- /// @brief Adds the frame's own passes: rendering the viewport, then the UI over the target.
116
- void AddPasses(graph::Graph& graph, ImDrawData& data, const FrameTarget& target);
120
+ /// @brief Uploads the orbit camera's pose, then traces the shown slot through the device
121
+ /// scene's steps: replayed while the scene, the origin and the view's size, lens and
122
+ /// background stand, so only the pose and device columns change.
123
+ /// @return The trace's ticket.
124
+ Ticket TraceViewport();
125
+ /// @brief Submits the UI over the target, sampling the shown slot, which it clears to the
126
+ /// theme's colour without ray queries.
127
+ /// @return The frame's ticket.
128
+ Ticket DrawUi(ImDrawData& data, const FrameTarget& target);
117
129
 
118
130
  ViewerOptions options_;
119
131
  Scene& scene_;
@@ -128,13 +140,32 @@ class Viewer {
128
140
  /// The heap and pass tracing the viewport; null without ray queries.
129
141
  std::unique_ptr<BindlessHeap> heap_;
130
142
  std::unique_ptr<CameraPass> camera_;
131
- /// The image the viewport is rendered into, the UI's texture of it, and its storage slot.
132
143
  std::unique_ptr<Sampler> sampler_;
133
- std::unique_ptr<DeviceImage> viewport_;
134
- ImTextureID viewportTexture_ = 0;
135
- BindlessIndex viewportImage_;
136
- /// Each viewport pixel's prim slot, which picking reads; null without ray queries.
137
- std::unique_ptr<DeviceColumn> prims_;
144
+ /// An image the viewport is rendered into, the UI's texture of it, its storage slot, and each
145
+ /// pixel's prim slot, which picking reads (null without ray queries).
146
+ struct ViewportSlot {
147
+ std::unique_ptr<DeviceImage> image;
148
+ ImTextureID texture = 0;
149
+ BindlessIndex storage;
150
+ std::unique_ptr<DeviceColumn> prims;
151
+ };
152
+ /// Frames take turns tracing into the slots, each with a recorded frame of its own to replay.
153
+ static constexpr std::size_t kSlots = 2;
154
+ std::array<ViewportSlot, kSlots> slots_;
155
+ /// The slot the UI shows: the one traced this frame, or the last while eco mode pauses.
156
+ std::size_t shown_ = 0;
157
+ /// The orbit camera's pose, three rows relative to the render origin, uploaded each frame.
158
+ std::unique_ptr<DeviceColumn> pose_;
159
+ std::unique_ptr<Uploader> poseUploader_;
160
+ /// What the trace records besides the pose; a change, or new slots, records anew.
161
+ struct RecordedView {
162
+ glm::uvec2 size{0};
163
+ double fov = 0.0;
164
+ glm::vec3 background{0.0f};
165
+ bool operator==(const RecordedView&) const = default;
166
+ };
167
+ std::optional<RecordedView> recordedView_;
168
+ std::uint64_t recorded_ = 0;
138
169
  /// What a frame renders from; eco mode counts the frames it stays the same.
139
170
  struct ViewState {
140
171
  std::uint64_t version = 0;
@@ -610,6 +610,14 @@ std::vector<std::string> Graph::ExecutedPasses() const {
610
610
  return names;
611
611
  }
612
612
 
613
+ std::vector<std::string> Graph::PassNames() const {
614
+ std::vector<std::string> names;
615
+ for (const Pass& pass : passes_) {
616
+ names.push_back(pass.name);
617
+ }
618
+ return names;
619
+ }
620
+
613
621
  std::string Graph::Dot() const {
614
622
  std::vector<bool> live(passes_.size(), !compiled_);
615
623
  for (const std::uint32_t p : live_) {
@@ -271,6 +271,8 @@ class Graph {
271
271
  }
272
272
  /// @return The names of the passes `Compile` kept, in order.
273
273
  std::vector<std::string> ExecutedPasses() const;
274
+ /// @return The names of every pass added so far, in order.
275
+ std::vector<std::string> PassNames() const;
274
276
  /// @return The graph in Graphviz's dot language.
275
277
  std::string Dot() const;
276
278
 
@@ -72,14 +72,20 @@ bool DeviceScene::Settled() const {
72
72
  }
73
73
 
74
74
  void DeviceScene::AddFrame(graph::Graph& graph, const std::function<void(graph::Graph&)>& passes) {
75
+ // Instances move only with the host's edits, a rebase, bottom levels still building, or
76
+ // bound columns written on the device unseen; otherwise the last frame's worlds and top
77
+ // levels stand.
78
+ const MovedKey now{scene_.Store().Version(), transforms_.Origin()};
79
+ const bool moved = !moved_ || *moved_ != now || !Settled() || transforms_.Bound();
80
+ moved_ = now;
75
81
  columns_.AddSync(graph);
76
- transforms_.AddUpdate(graph);
82
+ transforms_.AddUpdate(graph, moved);
77
83
  const GeometryPool::Changes changes = geometry_.Update();
78
84
  instances_.Apply(changes);
79
85
  geometry_.AddUploads(graph);
80
86
  instances_.AddUploads(graph);
81
87
  if (tracer_) {
82
- tracer_->AddBuild(graph, changes, transforms_, instances_);
88
+ tracer_->AddBuild(graph, changes, transforms_, instances_, moved);
83
89
  }
84
90
  if (passes) {
85
91
  passes(graph);
@@ -22,6 +22,7 @@
22
22
 
23
23
  #include <functional>
24
24
  #include <memory>
25
+ #include <optional>
25
26
  #include <span>
26
27
  #include <vector>
27
28
 
@@ -121,6 +122,13 @@ class DeviceScene {
121
122
  std::unique_ptr<RayTracer> tracer_;
122
123
  std::vector<Captured> captured_;
123
124
  bool replayed_ = false;
125
+ /// The scene's version and the origin the worlds and top levels were last made at.
126
+ struct MovedKey {
127
+ std::uint64_t version = 0;
128
+ glm::dvec3 origin{0.0};
129
+ bool operator==(const MovedKey&) const = default;
130
+ };
131
+ std::optional<MovedKey> moved_;
124
132
  };
125
133
 
126
134
  } // namespace ernie
@@ -89,9 +89,11 @@ void CameraPass::Add(graph::Graph& graph, std::span<const CameraView> views,
89
89
  return;
90
90
  }
91
91
  std::vector<View> records;
92
+ std::vector<std::optional<graph::Buffer>> poses;
92
93
  glm::uvec2 largest{0};
93
94
  std::uint64_t pixels = 0;
94
95
  for (const CameraView& view : views) {
96
+ poses.push_back(view.pose);
95
97
  if (view.world >= scene->worlds) {
96
98
  throw std::invalid_argument("A view of world " + std::to_string(view.world) +
97
99
  ", of a scene of " + std::to_string(scene->worlds));
@@ -109,6 +111,11 @@ void CameraPass::Add(graph::Graph& graph, std::span<const CameraView> views,
109
111
  "Camera", graph::Kind::Compute,
110
112
  [&](graph::PassBuilder& pass) {
111
113
  scene->Read(pass);
114
+ for (const CameraView& view : views) {
115
+ if (view.pose) {
116
+ pass.ReadAddress(*view.pose);
117
+ }
118
+ }
112
119
  // Written by the pass itself before its dispatch reads it.
113
120
  staged = pass.WriteAddress(staged, graph::Use::StorageWrite);
114
121
  if (outputs.colour) {
@@ -122,7 +129,7 @@ void CameraPass::Add(graph::Graph& graph, std::span<const CameraView> views,
122
129
  }
123
130
  }
124
131
  },
125
- [this, staged, largest, records = std::move(records), outputs,
132
+ [this, staged, largest, records = std::move(records), poses = std::move(poses), outputs,
126
133
  scene = *scene](graph::PassContext& pass) mutable {
127
134
  View written{.distances = BufferRefOrNull<float>(pass, outputs.distances),
128
135
  .normals = BufferRefOrNull<float>(pass, outputs.normals),
@@ -130,6 +137,9 @@ void CameraPass::Add(graph::Graph& graph, std::span<const CameraView> views,
130
137
  .prims = BufferRefOrNull<shaders::uint>(pass, outputs.prims),
131
138
  .albedos = BufferRefOrNull<float>(pass, outputs.albedos),
132
139
  .ldr = BufferRefOrNull<shaders::uint>(pass, outputs.ldr)};
140
+ for (std::size_t i = 0; i < records.size(); ++i) {
141
+ records[i].pose = BufferRefOrNull<glm::vec4>(pass, poses[i]);
142
+ }
133
143
  for (View& record : records) {
134
144
  record.distances = written.distances;
135
145
  record.normals = written.normals;
@@ -49,6 +49,10 @@ struct CameraView {
49
49
  std::uint32_t world = 0;
50
50
  /// Metres along the view axis to the near and far clipping planes.
51
51
  glm::vec2 clipping{0.0f, 1e30f};
52
+ /// Three rows of four floats, camera to world relative to the render origin, which the pass
53
+ /// reads on the device in place of `cameraToWorld` when there is no node: a pose uploaded
54
+ /// each frame, so recorded commands replay as it moves.
55
+ std::optional<graph::Buffer> pose;
52
56
  };
53
57
 
54
58
  /// @brief What a camera pass writes; each left out is not written. The views' pixels are stacked
@@ -24,12 +24,14 @@ std::span<const ShaderModule> RayTracer::Modules() {
24
24
  }
25
25
 
26
26
  void RayTracer::AddBuild(graph::Graph& graph, const GeometryPool::Changes& changes,
27
- const TransformGraph& transforms, const InstanceTable& instances) {
27
+ const TransformGraph& transforms, const InstanceTable& instances,
28
+ bool rebuildTops) {
28
29
  ERNIE_ZONE("Update the ray tracer");
29
30
  const graph::Graph::ScopeGuard scope = graph.Scope("Ray tracer");
30
31
  bottoms_.Apply(changes);
31
32
  bottoms_.AddBuilds(graph);
32
- const graph::Acceleration top = tops_.AddBuild(graph, transforms, instances, bottoms_);
33
+ const graph::Acceleration top =
34
+ tops_.AddBuild(graph, transforms, instances, bottoms_, rebuildTops);
33
35
  const DeviceColumn& records = geometry_.Records();
34
36
  graph.Board().Put(
35
37
  TraceScene{.parameters = {.tops = ToBufferRef<shaders::TopLevel>(tops_.Tops()),
@@ -76,8 +76,10 @@ class RayTracer {
76
76
  /// @brief Adds the passes that bring the structures up to date with the frame's geometry
77
77
  /// changes, after the transforms and the geometry's and instances' uploads, and puts a
78
78
  /// `TraceScene` on the graph's blackboard.
79
+ /// @param rebuildTops Whether to build the top levels, as `TopLevels::AddBuild` takes it.
79
80
  void AddBuild(graph::Graph& graph, const GeometryPool::Changes& changes,
80
- const TransformGraph& transforms, const InstanceTable& instances);
81
+ const TransformGraph& transforms, const InstanceTable& instances,
82
+ bool rebuildTops = true);
81
83
 
82
84
  BottomLevels& Bottoms() {
83
85
  return bottoms_;