ernie-renderer 0.2.0.dev149__tar.gz → 0.2.0.dev150__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of ernie-renderer might be problematic. Click here for more details.

Files changed (924) hide show
  1. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/CMakeLists.txt +1 -1
  2. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/PKG-INFO +1 -1
  3. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/benchmarks/CMakeLists.txt +1 -0
  4. ernie_renderer-0.2.0.dev150/benchmarks/render/batch_step.cpp +114 -0
  5. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/queue.cpp +56 -8
  6. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/queue.h +41 -0
  7. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/graph/graph.cpp +76 -2
  8. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/graph/graph.h +43 -0
  9. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/device_scene.cpp +31 -2
  10. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/device_scene.h +30 -0
  11. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/renderer.cpp +22 -6
  12. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/renderer.h +3 -0
  13. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/rt/bottom_levels.cpp +1 -0
  14. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/rt/bottom_levels.h +4 -0
  15. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/scene_columns.cpp +1 -0
  16. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/graph/graph_test.cpp +50 -0
  17. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/render/renderer_test.cpp +17 -7
  18. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/.clang-format +0 -0
  19. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/.clang-tidy +0 -0
  20. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/.dockerignore +0 -0
  21. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/.gersemirc +0 -0
  22. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/.gitattributes +0 -0
  23. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/.github/scripts/coverage_badge.py +0 -0
  24. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/.github/scripts/install-lavapipe-windows.sh +0 -0
  25. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/.github/workflows/ci.yml +0 -0
  26. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/.gitignore +0 -0
  27. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/.pre-commit-config.yaml +0 -0
  28. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/CMakePresets.json +0 -0
  29. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/Dockerfile +0 -0
  30. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/LICENSE +0 -0
  31. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/README.md +0 -0
  32. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/benchmarks/bench.h +0 -0
  33. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/benchmarks/device/pose_step.cpp +0 -0
  34. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/benchmarks/main.cpp +0 -0
  35. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/benchmarks/render/transform_graph.cpp +0 -0
  36. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/benchmarks/scene/extents.cpp +0 -0
  37. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/benchmarks/scene/storage.cpp +0 -0
  38. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/cmake/EmbedShader.cmake +0 -0
  39. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/cmake/ErnieConfig.cmake.in +0 -0
  40. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/cmake/ErnieFetch.cmake +0 -0
  41. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/cmake/ErnieInstall.cmake +0 -0
  42. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/cmake/ErniePackaging.cmake +0 -0
  43. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/cmake/ErnieShaders.cmake +0 -0
  44. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/cmake/ErnieTesting.cmake +0 -0
  45. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/cmake/ernie.pc.in +0 -0
  46. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/cmake/third_party/dear_imgui.cmake +0 -0
  47. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/cmake/third_party/glfw.cmake +0 -0
  48. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/cmake/third_party/googletest.cmake +0 -0
  49. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/cmake/third_party/nanobind.cmake +0 -0
  50. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/cmake/third_party/openexr.cmake +0 -0
  51. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/cmake/third_party/slang.cmake +0 -0
  52. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/cmake/third_party/tracy.cmake +0 -0
  53. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/docs/README.md +0 -0
  54. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/docs/index.md +0 -0
  55. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/docs/requirements.txt +0 -0
  56. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/CMakeLists.txt +0 -0
  57. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/app/CMakeLists.txt +0 -0
  58. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/app/imgui_backend.cpp +0 -0
  59. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/app/imgui_backend.h +0 -0
  60. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/app/main.cpp +0 -0
  61. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/app/ui.cpp +0 -0
  62. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/app/ui.h +0 -0
  63. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/app/viewer.cpp +0 -0
  64. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/app/viewer.h +0 -0
  65. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/CMakeLists.txt +0 -0
  66. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/acceleration.cpp +0 -0
  67. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/acceleration.h +0 -0
  68. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/arena.cpp +0 -0
  69. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/arena.h +0 -0
  70. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/bindless.cpp +0 -0
  71. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/bindless.h +0 -0
  72. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/buffer.cpp +0 -0
  73. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/buffer.h +0 -0
  74. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/column.cpp +0 -0
  75. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/column.h +0 -0
  76. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/commands.cpp +0 -0
  77. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/commands.h +0 -0
  78. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/context.cpp +0 -0
  79. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/context.h +0 -0
  80. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/cuda.cpp +0 -0
  81. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/cuda.h +0 -0
  82. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/device.h +0 -0
  83. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/external.cpp +0 -0
  84. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/external.h +0 -0
  85. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/image.cpp +0 -0
  86. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/image.h +0 -0
  87. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/instance.cpp +0 -0
  88. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/instance.h +0 -0
  89. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/kernel.cpp +0 -0
  90. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/kernel.h +0 -0
  91. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/profile.cpp +0 -0
  92. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/profile.h +0 -0
  93. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/shader_compiler.cpp +0 -0
  94. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/shader_compiler.h +0 -0
  95. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/staging.cpp +0 -0
  96. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/staging.h +0 -0
  97. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/vulkan.cpp +0 -0
  98. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/device/vulkan.h +0 -0
  99. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/geometry/CMakeLists.txt +0 -0
  100. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/geometry/bounds.h +0 -0
  101. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/geometry/triangulation.cpp +0 -0
  102. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/geometry/triangulation.h +0 -0
  103. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/graph/CMakeLists.txt +0 -0
  104. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/graph/blackboard.h +0 -0
  105. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/graph/dependencies.cpp +0 -0
  106. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/graph/dependencies.h +0 -0
  107. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/graph/pool.cpp +0 -0
  108. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/graph/pool.h +0 -0
  109. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/io/CMakeLists.txt +0 -0
  110. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/io/ies.cpp +0 -0
  111. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/io/ies.h +0 -0
  112. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/io/image.cpp +0 -0
  113. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/io/image.h +0 -0
  114. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/io/nanovdb.cpp +0 -0
  115. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/io/nanovdb.h +0 -0
  116. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/io/raster.cpp +0 -0
  117. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/io/raster.h +0 -0
  118. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/io/texture.cpp +0 -0
  119. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/io/texture.h +0 -0
  120. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/physics/CMakeLists.txt +0 -0
  121. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/physics/astronomy.cpp +0 -0
  122. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/physics/astronomy.h +0 -0
  123. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/physics/atmosphere.cpp +0 -0
  124. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/physics/atmosphere.h +0 -0
  125. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/physics/cloud.cpp +0 -0
  126. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/physics/cloud.h +0 -0
  127. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/physics/constants.h +0 -0
  128. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/physics/reflectance_library.cpp +0 -0
  129. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/physics/reflectance_library.h +0 -0
  130. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/physics/reflectance_table.h +0 -0
  131. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/physics/regolith.cpp +0 -0
  132. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/physics/regolith.h +0 -0
  133. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/physics/scattering.cpp +0 -0
  134. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/physics/scattering.h +0 -0
  135. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/physics/solar.cpp +0 -0
  136. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/physics/solar.h +0 -0
  137. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/physics/solar_table.h +0 -0
  138. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/physics/spectrum.cpp +0 -0
  139. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/physics/spectrum.h +0 -0
  140. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/python/CMakeLists.txt +0 -0
  141. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/python/device.cpp +0 -0
  142. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/python/device.h +0 -0
  143. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/python/dlpack.cpp +0 -0
  144. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/python/dlpack.h +0 -0
  145. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/python/ernie/__init__.py +0 -0
  146. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/python/module.cpp +0 -0
  147. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/python/render.cpp +0 -0
  148. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/python/render.h +0 -0
  149. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/python/scene.cpp +0 -0
  150. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/python/scene.h +0 -0
  151. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/CMakeLists.txt +0 -0
  152. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/geometry.cpp +0 -0
  153. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/geometry.h +0 -0
  154. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/instances.cpp +0 -0
  155. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/instances.h +0 -0
  156. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/prim_rows.cpp +0 -0
  157. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/prim_rows.h +0 -0
  158. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/products.cpp +0 -0
  159. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/products.h +0 -0
  160. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/rt/camera_pass.cpp +0 -0
  161. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/rt/camera_pass.h +0 -0
  162. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/rt/ray_tracer.cpp +0 -0
  163. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/rt/ray_tracer.h +0 -0
  164. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/rt/top_levels.cpp +0 -0
  165. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/rt/top_levels.h +0 -0
  166. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/scene_columns.h +0 -0
  167. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/transform_graph.cpp +0 -0
  168. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/render/transform_graph.h +0 -0
  169. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/CMakeLists.txt +0 -0
  170. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/animation.cpp +0 -0
  171. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/convert.h +0 -0
  172. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/edit_history.cpp +0 -0
  173. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/edit_history.h +0 -0
  174. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/extent_cache.cpp +0 -0
  175. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/extent_cache.h +0 -0
  176. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/holder_index.cpp +0 -0
  177. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/holder_index.h +0 -0
  178. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/inherit.cpp +0 -0
  179. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/json.cpp +0 -0
  180. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/json.h +0 -0
  181. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/json_value.h +0 -0
  182. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/path.cpp +0 -0
  183. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/path.h +0 -0
  184. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/reference.cpp +0 -0
  185. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/reference.h +0 -0
  186. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/scene.cpp +0 -0
  187. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/scene.h +0 -0
  188. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/schema/camera.cpp +0 -0
  189. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/schema/camera.h +0 -0
  190. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/schema/collection.h +0 -0
  191. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/schema/geom.cpp +0 -0
  192. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/schema/geom.h +0 -0
  193. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/schema/instancer.cpp +0 -0
  194. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/schema/instancer.h +0 -0
  195. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/schema/lux.cpp +0 -0
  196. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/schema/lux.h +0 -0
  197. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/schema/mesh.cpp +0 -0
  198. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/schema/mesh.h +0 -0
  199. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/schema/planet.cpp +0 -0
  200. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/schema/planet.h +0 -0
  201. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/schema/registry.cpp +0 -0
  202. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/schema/render.cpp +0 -0
  203. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/schema/render.h +0 -0
  204. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/schema/shade.cpp +0 -0
  205. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/schema/shade.h +0 -0
  206. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/schema/vol.cpp +0 -0
  207. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/schema/vol.h +0 -0
  208. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/schema.cpp +0 -0
  209. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/schema.h +0 -0
  210. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/storage.cpp +0 -0
  211. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/storage.h +0 -0
  212. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/time_samples.cpp +0 -0
  213. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/time_samples.h +0 -0
  214. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/tokens.h +0 -0
  215. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/usd_plugin.cpp +0 -0
  216. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/validate.cpp +0 -0
  217. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/value.h +0 -0
  218. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/view.cpp +0 -0
  219. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/view.h +0 -0
  220. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/xform.cpp +0 -0
  221. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/scene/xform.h +0 -0
  222. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/shaders/CMakeLists.txt +0 -0
  223. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/shaders/device/bindless.slang +0 -0
  224. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/shaders/device/buffer_ref.slang +0 -0
  225. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/shaders/math/affine.slang +0 -0
  226. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/shaders/math/double_float.slang +0 -0
  227. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/shaders/rt/ray_tracer.slang +0 -0
  228. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/shaders/rt/write_instances.slang +0 -0
  229. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/shaders/scene/geometry.slang +0 -0
  230. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/shaders/scene/shapes.slang +0 -0
  231. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/shaders/scene/transform.slang +0 -0
  232. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/shaders/sensors/camera.slang +0 -0
  233. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/shaders/sensors/lens.slang +0 -0
  234. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/shaders/shared.h +0 -0
  235. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/shaders/spectral/spectrum.slang +0 -0
  236. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/CMakeLists.txt +0 -0
  237. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/algorithm.h +0 -0
  238. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/bytes.h +0 -0
  239. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/disk_cache.cpp +0 -0
  240. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/disk_cache.h +0 -0
  241. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/file.cpp +0 -0
  242. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/file.h +0 -0
  243. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/glm.h +0 -0
  244. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/hash_index.h +0 -0
  245. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/library.cpp +0 -0
  246. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/library.h +0 -0
  247. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/linear_algebra.h +0 -0
  248. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/log.cpp +0 -0
  249. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/log.h +0 -0
  250. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/math.h +0 -0
  251. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/noise.cpp +0 -0
  252. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/noise.h +0 -0
  253. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/numbers.h +0 -0
  254. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/on_failure.h +0 -0
  255. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/parallel.h +0 -0
  256. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/profiler.cpp +0 -0
  257. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/profiler.h +0 -0
  258. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/random.h +0 -0
  259. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/tensor.cpp +0 -0
  260. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/tensor.h +0 -0
  261. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/text.h +0 -0
  262. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/version.cpp +0 -0
  263. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/version.h +0 -0
  264. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/ernie/util/worker_pool.h +0 -0
  265. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/mkdocs.yml +0 -0
  266. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/pyproject.toml +0 -0
  267. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/CMakeLists.txt +0 -0
  268. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/app/orbit_camera_test.cpp +0 -0
  269. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/app/shell_test.cpp +0 -0
  270. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/app/view_test.cpp +0 -0
  271. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/app/viewer_test.cpp +0 -0
  272. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/common.h +0 -0
  273. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/consumer/CMakeLists.txt +0 -0
  274. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/consumer/first_render.cpp +0 -0
  275. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/consumer/main.cpp +0 -0
  276. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/device/acceleration_test.cpp +0 -0
  277. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/device/arena_test.cpp +0 -0
  278. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/device/bindless_test.cpp +0 -0
  279. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/device/column_test.cpp +0 -0
  280. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/device/columns.h +0 -0
  281. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/device/common.h +0 -0
  282. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/device/context_test.cpp +0 -0
  283. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/device/cuda_test.cpp +0 -0
  284. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/device/external_test.cpp +0 -0
  285. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/device/kernel_test.cpp +0 -0
  286. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/device/pose_step.h +0 -0
  287. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/device/profile_test.cpp +0 -0
  288. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/device/vulkan_devices_test.cpp +0 -0
  289. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/exr/README.md +0 -0
  290. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/exr/make_exr.py +0 -0
  291. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/exr/rgb_float_zip.exr +0 -0
  292. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/exr/rgba_half_window.exr +0 -0
  293. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/exr/y_half_zips.exr +0 -0
  294. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/ies/README.md +0 -0
  295. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/ies/downlight_quadrant.ies +0 -0
  296. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/ies/floodlight_type_b.ies +0 -0
  297. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/ies/lamp.tilt +0 -0
  298. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/images/grey16.png +0 -0
  299. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/ktx2/README.md +0 -0
  300. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/ktx2/quadrants_etc1s.ktx2 +0 -0
  301. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/ktx2/quadrants_uastc_zstd.ktx2 +0 -0
  302. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/ktx2/tilted_normal_etc1s.ktx2 +0 -0
  303. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/ktx2/tilted_normal_uastc.ktx2 +0 -0
  304. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/scenes/README.md +0 -0
  305. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/scenes/invalid/problems.expected +0 -0
  306. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/scenes/invalid/problems.json +0 -0
  307. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/scenes/rover.json +0 -0
  308. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/scenes/rover.saved.json +0 -0
  309. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/tiff/README.md +0 -0
  310. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/tiff/float_deflate_predictor3.tif +0 -0
  311. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/tiff/float_raw.tif +0 -0
  312. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/tiff/int16_bigtiff_bigendian.tif +0 -0
  313. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/tiff/rgb_lzw_predictor2.tif +0 -0
  314. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/tiff/rgb_planar_lzw.tif +0 -0
  315. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/tiff/rgb_planar_raw.tif +0 -0
  316. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/tiff/rgb_tiled_deflate.tif +0 -0
  317. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/volumes/cube.nvdb +0 -0
  318. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/fixtures/volumes/make_nvdb.py +0 -0
  319. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/geometry/bounds_test.cpp +0 -0
  320. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/geometry/triangulation_test.cpp +0 -0
  321. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/graph/dependencies_test.cpp +0 -0
  322. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/io/ies_test.cpp +0 -0
  323. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/io/image_test.cpp +0 -0
  324. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/io/nanovdb_test.cpp +0 -0
  325. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/io/raster_test.cpp +0 -0
  326. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/io/texture_test.cpp +0 -0
  327. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/physics/astronomy_test.cpp +0 -0
  328. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/physics/atmosphere_test.cpp +0 -0
  329. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/physics/cloud_test.cpp +0 -0
  330. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/physics/reflectance_library_test.cpp +0 -0
  331. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/physics/regolith_test.cpp +0 -0
  332. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/physics/scattering_test.cpp +0 -0
  333. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/physics/solar_test.cpp +0 -0
  334. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/physics/spectrum_test.cpp +0 -0
  335. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/python/conftest.py +0 -0
  336. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/python/test_device_dlpack.py +0 -0
  337. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/python/test_device_torch.py +0 -0
  338. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/python/test_package.py +0 -0
  339. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/python/test_render.py +0 -0
  340. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/python/test_scene.py +0 -0
  341. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/python/test_scene_schema.py +0 -0
  342. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/render/acceleration_scene_test.cpp +0 -0
  343. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/render/camera_pass_test.cpp +0 -0
  344. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/render/common.h +0 -0
  345. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/render/device_scene_test.cpp +0 -0
  346. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/render/geometry_test.cpp +0 -0
  347. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/render/gradients_test.cpp +0 -0
  348. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/render/ray_tracer_test.cpp +0 -0
  349. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/render/scene_columns_test.cpp +0 -0
  350. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/render/shaders_test.cpp +0 -0
  351. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/render/transform_graph_test.cpp +0 -0
  352. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/scene/edit_history_test.cpp +0 -0
  353. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/scene/extent_cache_test.cpp +0 -0
  354. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/scene/inherit_test.cpp +0 -0
  355. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/scene/instancer_test.cpp +0 -0
  356. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/scene/json_test.cpp +0 -0
  357. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/scene/lux_test.cpp +0 -0
  358. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/scene/mesh_test.cpp +0 -0
  359. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/scene/path_test.cpp +0 -0
  360. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/scene/planet_test.cpp +0 -0
  361. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/scene/reference_test.cpp +0 -0
  362. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/scene/render_test.cpp +0 -0
  363. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/scene/scene_test.cpp +0 -0
  364. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/scene/schema_test.cpp +0 -0
  365. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/scene/shade_test.cpp +0 -0
  366. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/scene/storage_test.cpp +0 -0
  367. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/scene/time_samples_test.cpp +0 -0
  368. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/scene/vol_test.cpp +0 -0
  369. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/scene/xform_test.cpp +0 -0
  370. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/util/algorithm_test.cpp +0 -0
  371. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/util/bytes_test.cpp +0 -0
  372. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/util/disk_cache_test.cpp +0 -0
  373. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/util/file_test.cpp +0 -0
  374. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/util/hash_index_test.cpp +0 -0
  375. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/util/linear_algebra_test.cpp +0 -0
  376. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/util/log_test.cpp +0 -0
  377. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/util/math_test.cpp +0 -0
  378. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/util/noise_test.cpp +0 -0
  379. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/util/parallel_test.cpp +0 -0
  380. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/util/profiler_test.cpp +0 -0
  381. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/util/random_test.cpp +0 -0
  382. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/util/tensor_test.cpp +0 -0
  383. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/util/text_test.cpp +0 -0
  384. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/util/version_test.cpp +0 -0
  385. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/tests/util/worker_pool_test.cpp +0 -0
  386. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/CMakeLists.txt +0 -0
  387. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/README.md +0 -0
  388. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/LICENSE +0 -0
  389. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/LICENSES/Apache-2.0.txt +0 -0
  390. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/LICENSES/BSD-3-clause.txt +0 -0
  391. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/LICENSES/MIT.txt +0 -0
  392. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/NOTICE +0 -0
  393. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/README.md +0 -0
  394. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu.h +0 -0
  395. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_astc_cfgs.inl +0 -0
  396. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_astc_hdr_core.h +0 -0
  397. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_astc_helpers.h +0 -0
  398. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_containers.h +0 -0
  399. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_containers_impl.h +0 -0
  400. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_dds_transcoder.inl +0 -0
  401. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_etc1_mods.inl +0 -0
  402. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_file_headers.h +0 -0
  403. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_idct.h +0 -0
  404. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_transcoder.cpp +0 -0
  405. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_transcoder.h +0 -0
  406. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_transcoder_internal.h +0 -0
  407. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_transcoder_tables_astc.inc +0 -0
  408. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_transcoder_tables_astc_0_255.inc +0 -0
  409. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_transcoder_tables_atc_55.inc +0 -0
  410. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_transcoder_tables_atc_56.inc +0 -0
  411. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_transcoder_tables_bc7_m5_alpha.inc +0 -0
  412. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_transcoder_tables_bc7_m5_color.inc +0 -0
  413. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_transcoder_tables_dxt1_5.inc +0 -0
  414. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_transcoder_tables_dxt1_6.inc +0 -0
  415. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_transcoder_tables_pvrtc2_45.inc +0 -0
  416. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_transcoder_tables_pvrtc2_alpha_33.inc +0 -0
  417. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_transcoder_uastc.h +0 -0
  418. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_xbc7_decoder.h +0 -0
  419. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/transcoder/basisu_xbc7_decoder.inl +0 -0
  420. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/zstd/LICENSE +0 -0
  421. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/zstd/zstd.h +0 -0
  422. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/basisu/zstd/zstd_errors.h +0 -0
  423. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/bc7enc/LICENSE +0 -0
  424. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/bc7enc/README.md +0 -0
  425. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/bc7enc/bc7decomp.cpp +0 -0
  426. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/bc7enc/bc7decomp.h +0 -0
  427. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/bc7enc/bc7enc.cpp +0 -0
  428. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/bc7enc/bc7enc.h +0 -0
  429. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/bc7enc/rgbcx.cpp +0 -0
  430. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/bc7enc/rgbcx.h +0 -0
  431. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/bc7enc/rgbcx_table4.h +0 -0
  432. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/bc7enc/rgbcx_table4_small.h +0 -0
  433. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/dlpack/LICENSE +0 -0
  434. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/dlpack/README.md +0 -0
  435. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/dlpack/include/dlpack/dlpack.h +0 -0
  436. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/README.md +0 -0
  437. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/copying.txt +0 -0
  438. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/common.hpp +0 -0
  439. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/_features.hpp +0 -0
  440. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/_fixes.hpp +0 -0
  441. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/_noise.hpp +0 -0
  442. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/_swizzle.hpp +0 -0
  443. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/_swizzle_func.hpp +0 -0
  444. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/_vectorize.hpp +0 -0
  445. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/compute_common.hpp +0 -0
  446. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/compute_vector_decl.hpp +0 -0
  447. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/compute_vector_relational.hpp +0 -0
  448. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/func_common.inl +0 -0
  449. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/func_common_simd.inl +0 -0
  450. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/func_exponential.inl +0 -0
  451. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/func_exponential_simd.inl +0 -0
  452. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/func_geometric.inl +0 -0
  453. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/func_geometric_simd.inl +0 -0
  454. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/func_integer.inl +0 -0
  455. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/func_integer_simd.inl +0 -0
  456. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/func_matrix.inl +0 -0
  457. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/func_matrix_simd.inl +0 -0
  458. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/func_packing.inl +0 -0
  459. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/func_packing_simd.inl +0 -0
  460. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/func_trigonometric.inl +0 -0
  461. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/func_trigonometric_simd.inl +0 -0
  462. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/func_vector_relational.inl +0 -0
  463. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/func_vector_relational_simd.inl +0 -0
  464. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/qualifier.hpp +0 -0
  465. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/setup.hpp +0 -0
  466. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_float.hpp +0 -0
  467. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_half.hpp +0 -0
  468. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_half.inl +0 -0
  469. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_mat2x2.hpp +0 -0
  470. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_mat2x2.inl +0 -0
  471. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_mat2x3.hpp +0 -0
  472. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_mat2x3.inl +0 -0
  473. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_mat2x4.hpp +0 -0
  474. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_mat2x4.inl +0 -0
  475. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_mat3x2.hpp +0 -0
  476. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_mat3x2.inl +0 -0
  477. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_mat3x3.hpp +0 -0
  478. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_mat3x3.inl +0 -0
  479. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_mat3x4.hpp +0 -0
  480. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_mat3x4.inl +0 -0
  481. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_mat4x2.hpp +0 -0
  482. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_mat4x2.inl +0 -0
  483. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_mat4x3.hpp +0 -0
  484. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_mat4x3.inl +0 -0
  485. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_mat4x4.hpp +0 -0
  486. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_mat4x4.inl +0 -0
  487. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_mat4x4_simd.inl +0 -0
  488. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_quat.hpp +0 -0
  489. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_quat.inl +0 -0
  490. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_quat_simd.inl +0 -0
  491. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_vec1.hpp +0 -0
  492. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_vec1.inl +0 -0
  493. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_vec2.hpp +0 -0
  494. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_vec2.inl +0 -0
  495. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_vec3.hpp +0 -0
  496. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_vec3.inl +0 -0
  497. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_vec4.hpp +0 -0
  498. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_vec4.inl +0 -0
  499. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/detail/type_vec_simd.inl +0 -0
  500. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/exponential.hpp +0 -0
  501. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/_matrix_vectorize.hpp +0 -0
  502. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_clip_space.hpp +0 -0
  503. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_clip_space.inl +0 -0
  504. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_common.hpp +0 -0
  505. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_common.inl +0 -0
  506. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_double2x2.hpp +0 -0
  507. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_double2x2_precision.hpp +0 -0
  508. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_double2x3.hpp +0 -0
  509. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_double2x3_precision.hpp +0 -0
  510. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_double2x4.hpp +0 -0
  511. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_double2x4_precision.hpp +0 -0
  512. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_double3x2.hpp +0 -0
  513. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_double3x2_precision.hpp +0 -0
  514. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_double3x3.hpp +0 -0
  515. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_double3x3_precision.hpp +0 -0
  516. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_double3x4.hpp +0 -0
  517. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_double3x4_precision.hpp +0 -0
  518. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_double4x2.hpp +0 -0
  519. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_double4x2_precision.hpp +0 -0
  520. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_double4x3.hpp +0 -0
  521. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_double4x3_precision.hpp +0 -0
  522. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_double4x4.hpp +0 -0
  523. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_double4x4_precision.hpp +0 -0
  524. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_float2x2.hpp +0 -0
  525. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_float2x2_precision.hpp +0 -0
  526. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_float2x3.hpp +0 -0
  527. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_float2x3_precision.hpp +0 -0
  528. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_float2x4.hpp +0 -0
  529. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_float2x4_precision.hpp +0 -0
  530. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_float3x2.hpp +0 -0
  531. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_float3x2_precision.hpp +0 -0
  532. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_float3x3.hpp +0 -0
  533. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_float3x3_precision.hpp +0 -0
  534. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_float3x4.hpp +0 -0
  535. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_float3x4_precision.hpp +0 -0
  536. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_float4x2.hpp +0 -0
  537. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_float4x2_precision.hpp +0 -0
  538. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_float4x3.hpp +0 -0
  539. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_float4x3_precision.hpp +0 -0
  540. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_float4x4.hpp +0 -0
  541. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_float4x4_precision.hpp +0 -0
  542. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_int2x2.hpp +0 -0
  543. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_int2x2_sized.hpp +0 -0
  544. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_int2x3.hpp +0 -0
  545. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_int2x3_sized.hpp +0 -0
  546. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_int2x4.hpp +0 -0
  547. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_int2x4_sized.hpp +0 -0
  548. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_int3x2.hpp +0 -0
  549. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_int3x2_sized.hpp +0 -0
  550. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_int3x3.hpp +0 -0
  551. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_int3x3_sized.hpp +0 -0
  552. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_int3x4.hpp +0 -0
  553. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_int3x4_sized.hpp +0 -0
  554. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_int4x2.hpp +0 -0
  555. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_int4x2_sized.hpp +0 -0
  556. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_int4x3.hpp +0 -0
  557. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_int4x3_sized.hpp +0 -0
  558. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_int4x4.hpp +0 -0
  559. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_int4x4_sized.hpp +0 -0
  560. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_integer.hpp +0 -0
  561. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_integer.inl +0 -0
  562. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_projection.hpp +0 -0
  563. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_projection.inl +0 -0
  564. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_relational.hpp +0 -0
  565. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_relational.inl +0 -0
  566. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_transform.hpp +0 -0
  567. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_transform.inl +0 -0
  568. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_uint2x2.hpp +0 -0
  569. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_uint2x2_sized.hpp +0 -0
  570. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_uint2x3.hpp +0 -0
  571. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_uint2x3_sized.hpp +0 -0
  572. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_uint2x4.hpp +0 -0
  573. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_uint2x4_sized.hpp +0 -0
  574. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_uint3x2.hpp +0 -0
  575. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_uint3x2_sized.hpp +0 -0
  576. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_uint3x3.hpp +0 -0
  577. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_uint3x3_sized.hpp +0 -0
  578. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_uint3x4.hpp +0 -0
  579. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_uint3x4_sized.hpp +0 -0
  580. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_uint4x2.hpp +0 -0
  581. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_uint4x2_sized.hpp +0 -0
  582. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_uint4x3.hpp +0 -0
  583. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_uint4x3_sized.hpp +0 -0
  584. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_uint4x4.hpp +0 -0
  585. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/matrix_uint4x4_sized.hpp +0 -0
  586. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/quaternion_common.hpp +0 -0
  587. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/quaternion_common.inl +0 -0
  588. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/quaternion_common_simd.inl +0 -0
  589. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/quaternion_double.hpp +0 -0
  590. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/quaternion_double_precision.hpp +0 -0
  591. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/quaternion_exponential.hpp +0 -0
  592. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/quaternion_exponential.inl +0 -0
  593. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/quaternion_float.hpp +0 -0
  594. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/quaternion_float_precision.hpp +0 -0
  595. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/quaternion_geometric.hpp +0 -0
  596. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/quaternion_geometric.inl +0 -0
  597. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/quaternion_relational.hpp +0 -0
  598. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/quaternion_relational.inl +0 -0
  599. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/quaternion_transform.hpp +0 -0
  600. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/quaternion_transform.inl +0 -0
  601. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/quaternion_trigonometric.hpp +0 -0
  602. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/quaternion_trigonometric.inl +0 -0
  603. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/scalar_common.hpp +0 -0
  604. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/scalar_common.inl +0 -0
  605. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/scalar_constants.hpp +0 -0
  606. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/scalar_constants.inl +0 -0
  607. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/scalar_int_sized.hpp +0 -0
  608. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/scalar_integer.hpp +0 -0
  609. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/scalar_integer.inl +0 -0
  610. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/scalar_packing.hpp +0 -0
  611. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/scalar_packing.inl +0 -0
  612. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/scalar_reciprocal.hpp +0 -0
  613. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/scalar_reciprocal.inl +0 -0
  614. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/scalar_relational.hpp +0 -0
  615. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/scalar_relational.inl +0 -0
  616. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/scalar_uint_sized.hpp +0 -0
  617. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/scalar_ulp.hpp +0 -0
  618. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/scalar_ulp.inl +0 -0
  619. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_bool1.hpp +0 -0
  620. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_bool1_precision.hpp +0 -0
  621. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_bool2.hpp +0 -0
  622. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_bool2_precision.hpp +0 -0
  623. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_bool3.hpp +0 -0
  624. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_bool3_precision.hpp +0 -0
  625. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_bool4.hpp +0 -0
  626. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_bool4_precision.hpp +0 -0
  627. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_common.hpp +0 -0
  628. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_common.inl +0 -0
  629. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_double1.hpp +0 -0
  630. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_double1_precision.hpp +0 -0
  631. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_double2.hpp +0 -0
  632. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_double2_precision.hpp +0 -0
  633. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_double3.hpp +0 -0
  634. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_double3_precision.hpp +0 -0
  635. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_double4.hpp +0 -0
  636. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_double4_precision.hpp +0 -0
  637. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_float1.hpp +0 -0
  638. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_float1_precision.hpp +0 -0
  639. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_float2.hpp +0 -0
  640. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_float2_precision.hpp +0 -0
  641. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_float3.hpp +0 -0
  642. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_float3_precision.hpp +0 -0
  643. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_float4.hpp +0 -0
  644. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_float4_precision.hpp +0 -0
  645. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_int1.hpp +0 -0
  646. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_int1_sized.hpp +0 -0
  647. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_int2.hpp +0 -0
  648. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_int2_sized.hpp +0 -0
  649. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_int3.hpp +0 -0
  650. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_int3_sized.hpp +0 -0
  651. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_int4.hpp +0 -0
  652. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_int4_sized.hpp +0 -0
  653. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_integer.hpp +0 -0
  654. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_integer.inl +0 -0
  655. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_packing.hpp +0 -0
  656. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_packing.inl +0 -0
  657. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_reciprocal.hpp +0 -0
  658. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_reciprocal.inl +0 -0
  659. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_relational.hpp +0 -0
  660. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_relational.inl +0 -0
  661. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_uint1.hpp +0 -0
  662. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_uint1_sized.hpp +0 -0
  663. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_uint2.hpp +0 -0
  664. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_uint2_sized.hpp +0 -0
  665. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_uint3.hpp +0 -0
  666. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_uint3_sized.hpp +0 -0
  667. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_uint4.hpp +0 -0
  668. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_uint4_sized.hpp +0 -0
  669. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_ulp.hpp +0 -0
  670. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext/vector_ulp.inl +0 -0
  671. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/ext.hpp +0 -0
  672. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/fwd.hpp +0 -0
  673. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/geometric.hpp +0 -0
  674. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/glm.hpp +0 -0
  675. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/bitfield.hpp +0 -0
  676. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/bitfield.inl +0 -0
  677. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/color_space.hpp +0 -0
  678. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/color_space.inl +0 -0
  679. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/constants.hpp +0 -0
  680. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/constants.inl +0 -0
  681. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/epsilon.hpp +0 -0
  682. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/epsilon.inl +0 -0
  683. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/integer.hpp +0 -0
  684. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/integer.inl +0 -0
  685. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/matrix_access.hpp +0 -0
  686. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/matrix_access.inl +0 -0
  687. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/matrix_integer.hpp +0 -0
  688. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/matrix_inverse.hpp +0 -0
  689. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/matrix_inverse.inl +0 -0
  690. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/matrix_transform.hpp +0 -0
  691. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/matrix_transform.inl +0 -0
  692. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/noise.hpp +0 -0
  693. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/noise.inl +0 -0
  694. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/packing.hpp +0 -0
  695. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/packing.inl +0 -0
  696. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/quaternion.hpp +0 -0
  697. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/quaternion.inl +0 -0
  698. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/quaternion_simd.inl +0 -0
  699. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/random.hpp +0 -0
  700. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/random.inl +0 -0
  701. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/reciprocal.hpp +0 -0
  702. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/round.hpp +0 -0
  703. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/round.inl +0 -0
  704. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/type_aligned.hpp +0 -0
  705. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/type_precision.hpp +0 -0
  706. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/type_precision.inl +0 -0
  707. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/type_ptr.hpp +0 -0
  708. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/type_ptr.inl +0 -0
  709. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/ulp.hpp +0 -0
  710. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/ulp.inl +0 -0
  711. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtc/vec1.hpp +0 -0
  712. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/associated_min_max.hpp +0 -0
  713. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/associated_min_max.inl +0 -0
  714. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/bit.hpp +0 -0
  715. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/bit.inl +0 -0
  716. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/closest_point.hpp +0 -0
  717. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/closest_point.inl +0 -0
  718. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/color_encoding.hpp +0 -0
  719. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/color_encoding.inl +0 -0
  720. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/color_space.hpp +0 -0
  721. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/color_space.inl +0 -0
  722. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/color_space_YCoCg.hpp +0 -0
  723. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/color_space_YCoCg.inl +0 -0
  724. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/common.hpp +0 -0
  725. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/common.inl +0 -0
  726. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/compatibility.hpp +0 -0
  727. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/compatibility.inl +0 -0
  728. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/component_wise.hpp +0 -0
  729. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/component_wise.inl +0 -0
  730. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/dual_quaternion.hpp +0 -0
  731. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/dual_quaternion.inl +0 -0
  732. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/easing.hpp +0 -0
  733. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/easing.inl +0 -0
  734. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/euler_angles.hpp +0 -0
  735. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/euler_angles.inl +0 -0
  736. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/extend.hpp +0 -0
  737. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/extend.inl +0 -0
  738. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/extended_min_max.hpp +0 -0
  739. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/extended_min_max.inl +0 -0
  740. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/exterior_product.hpp +0 -0
  741. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/exterior_product.inl +0 -0
  742. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/fast_exponential.hpp +0 -0
  743. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/fast_exponential.inl +0 -0
  744. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/fast_square_root.hpp +0 -0
  745. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/fast_square_root.inl +0 -0
  746. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/fast_trigonometry.hpp +0 -0
  747. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/fast_trigonometry.inl +0 -0
  748. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/float_normalize.inl +0 -0
  749. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/functions.hpp +0 -0
  750. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/functions.inl +0 -0
  751. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/gradient_paint.hpp +0 -0
  752. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/gradient_paint.inl +0 -0
  753. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/handed_coordinate_space.hpp +0 -0
  754. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/handed_coordinate_space.inl +0 -0
  755. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/hash.hpp +0 -0
  756. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/hash.inl +0 -0
  757. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/integer.hpp +0 -0
  758. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/integer.inl +0 -0
  759. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/intersect.hpp +0 -0
  760. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/intersect.inl +0 -0
  761. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/io.hpp +0 -0
  762. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/io.inl +0 -0
  763. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/iteration.hpp +0 -0
  764. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/iteration.inl +0 -0
  765. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/log_base.hpp +0 -0
  766. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/log_base.inl +0 -0
  767. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/matrix_cross_product.hpp +0 -0
  768. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/matrix_cross_product.inl +0 -0
  769. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/matrix_decompose.hpp +0 -0
  770. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/matrix_decompose.inl +0 -0
  771. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/matrix_factorisation.hpp +0 -0
  772. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/matrix_factorisation.inl +0 -0
  773. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/matrix_interpolation.hpp +0 -0
  774. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/matrix_interpolation.inl +0 -0
  775. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/matrix_major_storage.hpp +0 -0
  776. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/matrix_major_storage.inl +0 -0
  777. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/matrix_operation.hpp +0 -0
  778. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/matrix_operation.inl +0 -0
  779. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/matrix_query.hpp +0 -0
  780. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/matrix_query.inl +0 -0
  781. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/matrix_transform_2d.hpp +0 -0
  782. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/matrix_transform_2d.inl +0 -0
  783. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/mixed_product.hpp +0 -0
  784. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/mixed_product.inl +0 -0
  785. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/norm.hpp +0 -0
  786. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/norm.inl +0 -0
  787. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/normal.hpp +0 -0
  788. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/normal.inl +0 -0
  789. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/normalize_dot.hpp +0 -0
  790. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/normalize_dot.inl +0 -0
  791. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/number_precision.hpp +0 -0
  792. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/optimum_pow.hpp +0 -0
  793. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/optimum_pow.inl +0 -0
  794. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/orthonormalize.hpp +0 -0
  795. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/orthonormalize.inl +0 -0
  796. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/pca.hpp +0 -0
  797. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/pca.inl +0 -0
  798. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/perpendicular.hpp +0 -0
  799. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/perpendicular.inl +0 -0
  800. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/polar_coordinates.hpp +0 -0
  801. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/polar_coordinates.inl +0 -0
  802. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/projection.hpp +0 -0
  803. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/projection.inl +0 -0
  804. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/quaternion.hpp +0 -0
  805. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/quaternion.inl +0 -0
  806. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/range.hpp +0 -0
  807. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/raw_data.hpp +0 -0
  808. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/raw_data.inl +0 -0
  809. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/rotate_normalized_axis.hpp +0 -0
  810. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/rotate_normalized_axis.inl +0 -0
  811. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/rotate_vector.hpp +0 -0
  812. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/rotate_vector.inl +0 -0
  813. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/scalar_multiplication.hpp +0 -0
  814. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/scalar_relational.hpp +0 -0
  815. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/scalar_relational.inl +0 -0
  816. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/spline.hpp +0 -0
  817. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/spline.inl +0 -0
  818. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/std_based_type.hpp +0 -0
  819. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/std_based_type.inl +0 -0
  820. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/string_cast.hpp +0 -0
  821. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/string_cast.inl +0 -0
  822. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/structured_bindings.hpp +0 -0
  823. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/structured_bindings.inl +0 -0
  824. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/texture.hpp +0 -0
  825. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/texture.inl +0 -0
  826. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/transform.hpp +0 -0
  827. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/transform.inl +0 -0
  828. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/transform2.hpp +0 -0
  829. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/transform2.inl +0 -0
  830. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/type_aligned.hpp +0 -0
  831. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/type_aligned.inl +0 -0
  832. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/type_trait.hpp +0 -0
  833. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/type_trait.inl +0 -0
  834. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/vec_swizzle.hpp +0 -0
  835. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/vector_angle.hpp +0 -0
  836. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/vector_angle.inl +0 -0
  837. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/vector_query.hpp +0 -0
  838. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/vector_query.inl +0 -0
  839. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/wrap.hpp +0 -0
  840. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/gtx/wrap.inl +0 -0
  841. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/integer.hpp +0 -0
  842. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/mat2x2.hpp +0 -0
  843. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/mat2x3.hpp +0 -0
  844. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/mat2x4.hpp +0 -0
  845. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/mat3x2.hpp +0 -0
  846. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/mat3x3.hpp +0 -0
  847. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/mat3x4.hpp +0 -0
  848. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/mat4x2.hpp +0 -0
  849. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/mat4x3.hpp +0 -0
  850. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/mat4x4.hpp +0 -0
  851. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/matrix.hpp +0 -0
  852. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/packing.hpp +0 -0
  853. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/simd/common.h +0 -0
  854. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/simd/exponential.h +0 -0
  855. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/simd/geometric.h +0 -0
  856. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/simd/integer.h +0 -0
  857. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/simd/matrix.h +0 -0
  858. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/simd/neon.h +0 -0
  859. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/simd/packing.h +0 -0
  860. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/simd/platform.h +0 -0
  861. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/simd/trigonometric.h +0 -0
  862. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/simd/vector_relational.h +0 -0
  863. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/trigonometric.hpp +0 -0
  864. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/vec2.hpp +0 -0
  865. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/vec3.hpp +0 -0
  866. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/vec4.hpp +0 -0
  867. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/glm/glm/vector_relational.hpp +0 -0
  868. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/json/LICENSE.MIT +0 -0
  869. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/json/README.md +0 -0
  870. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/json/include/nlohmann/json.hpp +0 -0
  871. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/json/include/nlohmann/json_fwd.hpp +0 -0
  872. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/nanovdb/LICENSE +0 -0
  873. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/nanovdb/PNanoVDB.h +0 -0
  874. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/stb/LICENSE +0 -0
  875. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/stb/README.md +0 -0
  876. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/stb/stb_image.h +0 -0
  877. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/stb/stb_image_write.h +0 -0
  878. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/stb.cpp +0 -0
  879. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vma/LICENSE.txt +0 -0
  880. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vma/README.md +0 -0
  881. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vma/include/vk_mem_alloc.h +0 -0
  882. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vma.cpp +0 -0
  883. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/volk/LICENSE.md +0 -0
  884. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/volk/README.md +0 -0
  885. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/volk/volk.c +0 -0
  886. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/volk/volk.h +0 -0
  887. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/LICENSE.md +0 -0
  888. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/LICENSES/Apache-2.0.txt +0 -0
  889. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/LICENSES/MIT.txt +0 -0
  890. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/README.md +0 -0
  891. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vk_video/vulkan_video_codec_av1std.h +0 -0
  892. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vk_video/vulkan_video_codec_av1std_decode.h +0 -0
  893. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vk_video/vulkan_video_codec_av1std_encode.h +0 -0
  894. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vk_video/vulkan_video_codec_h264std.h +0 -0
  895. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vk_video/vulkan_video_codec_h264std_decode.h +0 -0
  896. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vk_video/vulkan_video_codec_h264std_encode.h +0 -0
  897. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vk_video/vulkan_video_codec_h265std.h +0 -0
  898. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vk_video/vulkan_video_codec_h265std_decode.h +0 -0
  899. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vk_video/vulkan_video_codec_h265std_encode.h +0 -0
  900. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vk_video/vulkan_video_codec_vp9std.h +0 -0
  901. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vk_video/vulkan_video_codec_vp9std_decode.h +0 -0
  902. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vk_video/vulkan_video_codecs_common.h +0 -0
  903. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vulkan/vk_icd.h +0 -0
  904. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vulkan/vk_layer.h +0 -0
  905. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vulkan/vk_platform.h +0 -0
  906. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vulkan/vulkan.h +0 -0
  907. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vulkan/vulkan_android.h +0 -0
  908. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vulkan/vulkan_beta.h +0 -0
  909. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vulkan/vulkan_core.h +0 -0
  910. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vulkan/vulkan_directfb.h +0 -0
  911. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vulkan/vulkan_fuchsia.h +0 -0
  912. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vulkan/vulkan_ggp.h +0 -0
  913. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vulkan/vulkan_ios.h +0 -0
  914. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vulkan/vulkan_macos.h +0 -0
  915. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vulkan/vulkan_metal.h +0 -0
  916. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vulkan/vulkan_ohos.h +0 -0
  917. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vulkan/vulkan_screen.h +0 -0
  918. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vulkan/vulkan_ubm.h +0 -0
  919. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vulkan/vulkan_vi.h +0 -0
  920. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vulkan/vulkan_wayland.h +0 -0
  921. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vulkan/vulkan_win32.h +0 -0
  922. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vulkan/vulkan_xcb.h +0 -0
  923. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vulkan/vulkan_xlib.h +0 -0
  924. {ernie_renderer-0.2.0.dev149 → ernie_renderer-0.2.0.dev150}/third_party/vulkan_headers/include/vulkan/vulkan_xlib_xrandr.h +0 -0
@@ -15,7 +15,7 @@ project(
15
15
  )
16
16
 
17
17
  # Pre-release suffix such as .dev12, written by CI.
18
- set(ERNIE_VERSION_SUFFIX ".dev149" CACHE STRING "Pre-release suffix of Ernie's version")
18
+ set(ERNIE_VERSION_SUFFIX ".dev150" CACHE STRING "Pre-release suffix of Ernie's version")
19
19
  set(ERNIE_VERSION "${PROJECT_VERSION}${ERNIE_VERSION_SUFFIX}")
20
20
 
21
21
  option(ERNIE_BUILD_TESTS "Build Ernie's tests" OFF)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ernie-renderer
3
- Version: 0.2.0.dev149
3
+ Version: 0.2.0.dev150
4
4
  Summary: Efficient Renderer for Natural and Interplanetary Environments: a physically based, spectral Vulkan ray tracer
5
5
  Author: Alex Maietta
6
6
  License-Expression: BSD-3-Clause
@@ -3,6 +3,7 @@ add_executable(
3
3
  ernie_benchmarks
4
4
  main.cpp
5
5
  device/pose_step.cpp
6
+ render/batch_step.cpp
6
7
  render/transform_graph.cpp
7
8
  scene/extents.cpp
8
9
  scene/storage.cpp
@@ -0,0 +1,114 @@
1
+ // SPDX-License-Identifier: BSD-3-Clause
2
+ /// @file batch_step.cpp
3
+ /// @brief Batched rendering as reinforcement learning uses it, after Madrona's procedural benchmark
4
+ /// scenes: thousands of worlds, each a few shapes over a shared ground, a 64 x 64 camera a world
5
+ /// rendering colour and depth, every view in one dispatch. Reports views a second.
6
+ #include "benchmarks/bench.h"
7
+ #include "ernie/device/context.h"
8
+ #include "ernie/render/renderer.h"
9
+ #include "ernie/scene/schema/camera.h"
10
+ #include "ernie/scene/schema/geom.h"
11
+ #include "ernie/scene/schema/planet.h"
12
+ #include "ernie/scene/schema/render.h"
13
+ #include "ernie/scene/tokens.h"
14
+ #include "ernie/scene/xform.h"
15
+ #include "ernie/util/profiler.h"
16
+
17
+ #include <cstdio>
18
+ #include <cstdlib>
19
+ #include <memory>
20
+ #include <random>
21
+ #include <string>
22
+ #include <vector>
23
+
24
+ namespace ernie::bench {
25
+ namespace {
26
+
27
+ constexpr int kShapesPerWorld = 8;
28
+ constexpr glm::uvec2 kSize{64, 64};
29
+
30
+ /// @brief A scene of `worlds` worlds side by side, each with shapes scattered in front of its
31
+ /// camera, and the products rendering every camera's colour and depth.
32
+ void BuildWorlds(Scene& scene, int worlds) {
33
+ GroundPlane::Define(scene, "/Ground");
34
+ const std::vector<Path> vars{Path("/Render/Vars/Colour"), Path("/Render/Vars/Depth")};
35
+ RenderVar::Define(scene, vars[0]).SetSourceName(std::string(render_vars::kLdrColor));
36
+ RenderVar::Define(scene, vars[1]).SetSourceName(std::string(render_vars::kDistanceToCamera));
37
+ std::mt19937 random(7);
38
+ std::uniform_real_distribution<double> spread(-2.0, 2.0);
39
+ std::vector<Path> products;
40
+ for (int world = 0; world < worlds; ++world) {
41
+ const std::string root = "/World" + std::to_string(world);
42
+ Xform::Define(scene, root).SetWorld(world);
43
+ for (int shape = 0; shape < kShapesPerWorld; ++shape) {
44
+ const std::string path = root + "/Shape" + std::to_string(shape);
45
+ if (shape % 2 == 0) {
46
+ Sphere::Define(scene, path).SetRadius(0.4);
47
+ } else {
48
+ Cube::Define(scene, path).SetSize(0.7);
49
+ }
50
+ SetXform(scene, path,
51
+ {.translate = glm::dvec3(spread(random), 5.0 + spread(random),
52
+ 0.5 + 0.2 * spread(random))});
53
+ }
54
+ const std::string camera = root + "/Camera";
55
+ Camera::Define(scene, camera).SetHorizontalAperture(0.036).SetVerticalAperture(0.036);
56
+ scene.Set(camera, tokens::kTransform,
57
+ LookAtTransform({0.0, 0.0, 1.5}, {0.0, 5.0, 0.5}, {0.0, 0.0, 1.0}));
58
+ products.emplace_back("/Render/View" + std::to_string(world));
59
+ RenderProduct::Define(scene, products.back())
60
+ .SetCamera(camera)
61
+ .SetResolution(glm::dvec2(kSize))
62
+ .SetOrderedVars(vars);
63
+ }
64
+ RenderSettings::Define(scene, "/Render/Settings").SetProducts(products);
65
+ }
66
+
67
+ Timing StepWorlds(int worlds, double targetMs) {
68
+ std::unique_ptr<Renderer> renderer;
69
+ try {
70
+ renderer = std::make_unique<Renderer>();
71
+ } catch (const std::exception& error) {
72
+ std::printf("skipped: %s\n", error.what());
73
+ return {0.0, targetMs};
74
+ }
75
+ Scene scene;
76
+ BuildWorlds(scene, worlds);
77
+ // The first step builds every bottom level; later ones rebuild only the top levels.
78
+ renderer->Step(scene);
79
+ renderer->Context().WaitIdle();
80
+ const double host = Fastest([] {}, [&] { renderer->Step(scene); });
81
+ renderer->Context().WaitIdle();
82
+ const double ms = Fastest([] {},
83
+ [&] {
84
+ renderer->Step(scene);
85
+ renderer->Context().WaitIdle();
86
+ });
87
+ std::printf(" %d views of %u x %u: %.0f views a second, %.2f ms submitting, on %s\n", worlds,
88
+ kSize.x, kSize.y, 1000.0 * worlds / ms, host,
89
+ renderer->Context().Info().name.c_str());
90
+ if (std::getenv("ERNIE_BENCH_PROFILE") != nullptr) {
91
+ profiler::SetEnabled(true);
92
+ profiler::SetGpuEnabled(false);
93
+ for (int step = 0; step < 8; ++step) {
94
+ profiler::BeginFrame();
95
+ renderer->Step(scene);
96
+ renderer->Context().WaitIdle();
97
+ }
98
+ profiler::BeginFrame();
99
+ const std::vector<profiler::Frame> frames = profiler::Frames();
100
+ std::printf("%s", profiler::ReportText(profiler::Summarize(frames, profiler::ThreadNames()),
101
+ {.depth = 4, .minMs = 0.1, .byTime = true})
102
+ .c_str());
103
+ profiler::SetEnabled(false);
104
+ }
105
+ return {ms, targetMs};
106
+ }
107
+
108
+ const bool kBatch1k =
109
+ Register("render.batch_step.1024_worlds_64x64", [] { return StepWorlds(1024, 5.0); });
110
+ const bool kBatch4k =
111
+ Register("render.batch_step.4096_worlds_64x64", [] { return StepWorlds(4096, 20.0); });
112
+
113
+ } // namespace
114
+ } // namespace ernie::bench
@@ -97,10 +97,54 @@ Queue::~Queue() {
97
97
  vkDestroyCommandPool(device_, pool_, nullptr);
98
98
  }
99
99
 
100
+ Recording::~Recording() {
101
+ queue_.GiveBack(commands_, last_);
102
+ }
103
+
100
104
  Ticket Queue::Submit(const std::function<void(VkCommandBuffer)>& record,
101
105
  std::span<const Ticket> waits, BinarySemaphores binary) {
102
106
  // One recording at a time: the command pool is not thread-safe.
103
107
  const std::lock_guard recording(recording_);
108
+ const std::vector<VkSemaphoreSubmitInfo> waitInfos = WaitInfos(waits, binary);
109
+ const VkCommandBuffer commands =
110
+ RecordBuffer(record, VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT);
111
+ const std::lock_guard lock(mutex_);
112
+ try {
113
+ const Ticket ticket = SubmitBuffer(commands, waitInfos, binary);
114
+ inFlight_.emplace_back(commands, ticket.value);
115
+ return ticket;
116
+ } catch (...) {
117
+ free_.push_back(commands);
118
+ throw;
119
+ }
120
+ }
121
+
122
+ std::unique_ptr<Recording> Queue::Record(const std::function<void(VkCommandBuffer)>& record) {
123
+ const std::lock_guard recording(recording_);
124
+ // Simultaneous use, so a replay may be submitted before the last has finished.
125
+ return std::unique_ptr<Recording>(
126
+ new Recording(*this, RecordBuffer(record, VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT)));
127
+ }
128
+
129
+ Ticket Queue::Submit(Recording& recorded, std::span<const Ticket> waits, BinarySemaphores binary) {
130
+ if (&recorded.queue_ != this) {
131
+ throw DeviceError(DeviceErrorKind::Failed,
132
+ name_ + " cannot submit another queue's recording");
133
+ }
134
+ const std::vector<VkSemaphoreSubmitInfo> waitInfos = WaitInfos(waits, binary);
135
+ const std::lock_guard lock(mutex_);
136
+ const Ticket ticket = SubmitBuffer(recorded.commands_, waitInfos, binary);
137
+ recorded.last_ = ticket.value;
138
+ return ticket;
139
+ }
140
+
141
+ void Queue::GiveBack(VkCommandBuffer commands, std::uint64_t last) {
142
+ const std::lock_guard lock(mutex_);
143
+ inFlight_.emplace_back(commands, last);
144
+ }
145
+
146
+ std::vector<VkSemaphoreSubmitInfo> Queue::WaitInfos(std::span<const Ticket> waits,
147
+ BinarySemaphores binary) const {
104
148
  std::vector<VkSemaphoreSubmitInfo> waitInfos;
105
149
  for (const Ticket& wait : waits) {
106
150
  if (wait.timeline == nullptr) {
@@ -124,7 +168,11 @@ Ticket Queue::Submit(const std::function<void(VkCommandBuffer)>& record,
124
168
  .semaphore = binary.wait,
125
169
  .stageMask = VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT});
126
170
  }
171
+ return waitInfos;
172
+ }
127
173
 
174
+ VkCommandBuffer Queue::RecordBuffer(const std::function<void(VkCommandBuffer)>& record,
175
+ VkCommandBufferUsageFlags usage) {
128
176
  std::unique_lock lock(mutex_);
129
177
  Recycle();
130
178
  VkCommandBuffer commands = VK_NULL_HANDLE;
@@ -145,7 +193,7 @@ Ticket Queue::Submit(const std::function<void(VkCommandBuffer)>& record,
145
193
  CheckVk(vkResetCommandBuffer(commands, 0),
146
194
  [&] { return "Resetting " + name_ + "'s command buffer"; });
147
195
  const VkCommandBufferBeginInfo begin{.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
148
- .flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT};
196
+ .flags = usage};
149
197
  try {
150
198
  CheckVk(vkBeginCommandBuffer(commands, &begin), [&] { return "Recording on " + name_; });
151
199
  record(commands);
@@ -156,8 +204,12 @@ Ticket Queue::Submit(const std::function<void(VkCommandBuffer)>& record,
156
204
  free_.push_back(commands);
157
205
  throw;
158
206
  }
207
+ return commands;
208
+ }
159
209
 
160
- lock.lock();
210
+ Ticket Queue::SubmitBuffer(VkCommandBuffer commands,
211
+ const std::vector<VkSemaphoreSubmitInfo>& waitInfos,
212
+ BinarySemaphores binary) {
161
213
  const std::uint64_t value = submitted_ + 1;
162
214
  const VkCommandBufferSubmitInfo commandInfo{
163
215
  .sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO, .commandBuffer = commands};
@@ -177,13 +229,9 @@ Ticket Queue::Submit(const std::function<void(VkCommandBuffer)>& record,
177
229
  .pCommandBufferInfos = &commandInfo,
178
230
  .signalSemaphoreInfoCount = binary.signal != VK_NULL_HANDLE ? 2u : 1u,
179
231
  .pSignalSemaphoreInfos = signals.data()};
180
- const VkResult submitted = vkQueueSubmit2(queue_, 1, &submit, VK_NULL_HANDLE);
181
- if (submitted < VK_SUCCESS) {
182
- free_.push_back(commands);
183
- }
184
- CheckVk(submitted, [&] { return "Submitting to " + name_; });
232
+ CheckVk(vkQueueSubmit2(queue_, 1, &submit, VK_NULL_HANDLE),
233
+ [&] { return "Submitting to " + name_; });
185
234
  submitted_ = value;
186
- inFlight_.emplace_back(commands, value);
187
235
  return timeline_.At(value);
188
236
  }
189
237
 
@@ -9,6 +9,7 @@
9
9
 
10
10
  #include <cstdint>
11
11
  #include <functional>
12
+ #include <memory>
12
13
  #include <mutex>
13
14
  #include <span>
14
15
  #include <string>
@@ -81,6 +82,26 @@ struct BinarySemaphores {
81
82
  VkSemaphore signal = VK_NULL_HANDLE;
82
83
  };
83
84
 
85
+ class Queue;
86
+
87
+ /// @brief Commands recorded once and submitted again and again, as a captured frame is replayed.
88
+ /// Its command buffer goes back to its queue once its last submission is done.
89
+ class Recording {
90
+ public:
91
+ ~Recording();
92
+ Recording(const Recording&) = delete;
93
+ Recording& operator=(const Recording&) = delete;
94
+
95
+ private:
96
+ friend class Queue;
97
+ Recording(Queue& queue, VkCommandBuffer commands) : queue_(queue), commands_(commands) {}
98
+
99
+ Queue& queue_;
100
+ VkCommandBuffer commands_;
101
+ /// The timeline value of its latest submission; 0 before its first.
102
+ std::uint64_t last_ = 0;
103
+ };
104
+
84
105
  /// @brief A queue of one family. Submissions take a recording function and return a ticket on the
85
106
  /// queue's timeline; command buffers are recycled once their tickets complete. Any thread may
86
107
  /// submit, one recording at a time, and test or wait on tickets.
@@ -97,6 +118,13 @@ class Queue {
97
118
  /// @throws DeviceError if a wait is another device's, or submission fails.
98
119
  Ticket Submit(const std::function<void(VkCommandBuffer)>& record,
99
120
  std::span<const Ticket> waits = {}, BinarySemaphores binary = {});
121
+ /// @brief Records commands to submit any number of times. Submissions may overlap: what one
122
+ /// must see of the last, it waits for.
123
+ std::unique_ptr<Recording> Record(const std::function<void(VkCommandBuffer)>& record);
124
+ /// @brief Submits a recording once `waits` are done.
125
+ /// @throws DeviceError for another queue's recording, as `Submit`.
126
+ Ticket Submit(Recording& recorded, std::span<const Ticket> waits = {},
127
+ BinarySemaphores binary = {});
100
128
  /// @return The ticket of the latest submission: waiting on it waits for all of them.
101
129
  Ticket Last() const;
102
130
  /// @brief Presents swapchain images, between submissions from any thread.
@@ -124,8 +152,21 @@ class Queue {
124
152
  }
125
153
 
126
154
  private:
155
+ friend class Recording;
156
+
127
157
  /// Moves finished command buffers to the free list.
128
158
  void Recycle();
159
+ std::vector<VkSemaphoreSubmitInfo> WaitInfos(std::span<const Ticket> waits,
160
+ BinarySemaphores binary) const;
161
+ /// @return A free command buffer with `record`'s commands.
162
+ VkCommandBuffer RecordBuffer(const std::function<void(VkCommandBuffer)>& record,
163
+ VkCommandBufferUsageFlags usage);
164
+ /// Submits a recorded buffer, with `mutex_` held.
165
+ Ticket SubmitBuffer(VkCommandBuffer commands,
166
+ const std::vector<VkSemaphoreSubmitInfo>& waitInfos,
167
+ BinarySemaphores binary);
168
+ /// Takes a recording's buffer back, to recycle once `last` is reached.
169
+ void GiveBack(VkCommandBuffer commands, std::uint64_t last);
129
170
 
130
171
  VkDevice device_;
131
172
  std::uint32_t family_;
@@ -160,6 +160,10 @@ void PassBuilder::NeverCull() {
160
160
  graph_.passes_[pass_].neverCull = true;
161
161
  }
162
162
 
163
+ void PassBuilder::OneShot() {
164
+ graph_.passes_[pass_].oneShot = true;
165
+ }
166
+
163
167
  void PassContext::Check(std::uint32_t id) const {
164
168
  const Graph::Pass& pass = graph_.passes_[pass_];
165
169
  if (std::ranges::none_of(
@@ -470,13 +474,21 @@ void Graph::RecordPass(VkCommandBuffer commands, std::uint32_t order, std::uint3
470
474
  scope = scopes_[scope].parent;
471
475
  }
472
476
  if (scope != kNoScope && scopes_[scope].depth == depth) {
473
- ERNIE_GPU_ZONE(context_, commands, scopes_[scope].name.c_str());
477
+ std::optional<GpuZone> zone;
478
+ if (timed_) {
479
+ zone.emplace(context_, commands, scopes_[scope].name.c_str());
480
+ }
474
481
  RecordPass(commands, order, depth + 1);
475
482
  return;
476
483
  }
477
484
  ERNIE_ZONE("Record a pass");
478
485
  ERNIE_ZONE_TEXT(pass.name);
479
- ERNIE_GPU_ZONE(context_, commands, pass.name.c_str());
486
+ // Ernie's own reports name each pass by a zone of its own.
487
+ const profiler::ScopedZone named(profiler::Enabled() ? profiler::Intern(pass.name) : "");
488
+ std::optional<GpuZone> zone;
489
+ if (timed_) {
490
+ zone.emplace(context_, commands, pass.name.c_str());
491
+ }
480
492
  Record(commands, dependencies_.passes[order]);
481
493
  if (fullBarriers_) {
482
494
  ernie::Barrier(commands, VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT, VK_ACCESS_2_MEMORY_WRITE_BIT,
@@ -529,6 +541,67 @@ Ticket Graph::Execute(Queue& queue, std::span<const Ticket> waits, BinarySemapho
529
541
  return ticket;
530
542
  }
531
543
 
544
+ bool Graph::Capturable() {
545
+ Compile();
546
+ return std::ranges::none_of(live_, [&](std::uint32_t p) { return passes_[p].oneShot; });
547
+ }
548
+
549
+ std::unique_ptr<CapturedGraph> Graph::Capture(Queue& queue) {
550
+ if (executed_) {
551
+ throw std::logic_error("A frame graph executes or is captured once");
552
+ }
553
+ if (!Capturable()) {
554
+ throw std::logic_error("A frame graph with one-shot passes cannot be captured");
555
+ }
556
+ executed_ = true;
557
+ timed_ = false;
558
+ auto captured = std::unique_ptr<CapturedGraph>(new CapturedGraph(context_, pool_, queue));
559
+ captured->recording_ = queue.Record([&](VkCommandBuffer commands) {
560
+ for (std::uint32_t order = 0; order < live_.size(); ++order) {
561
+ RecordPass(commands, order);
562
+ }
563
+ Record(commands, dependencies_.after);
564
+ });
565
+ // The transients stay leased to the capture, which gives them back.
566
+ for (Resource& resource : resources_) {
567
+ if (resource.imported) {
568
+ continue;
569
+ }
570
+ if (resource.deviceImage != nullptr) {
571
+ captured->firstWaits_.push_back(resource.deviceImage->Ready());
572
+ captured->images_.push_back(std::exchange(resource.deviceImage, nullptr));
573
+ }
574
+ if (resource.slice.buffer != nullptr) {
575
+ captured->ranges_.push_back(resource.range);
576
+ resource.slice = {};
577
+ }
578
+ }
579
+ leased_ = false;
580
+ captured->kept_ = std::move(kept_);
581
+ kept_.clear();
582
+ return captured;
583
+ }
584
+
585
+ CapturedGraph::~CapturedGraph() {
586
+ // The pool takes leases back once every queue's work so far, the last submission's, is done.
587
+ for (const DeviceImage* image : images_) {
588
+ pool_.Release(*image);
589
+ }
590
+ for (const BufferRange& range : ranges_) {
591
+ pool_.Release(range);
592
+ }
593
+ for (std::shared_ptr<const void>& object : kept_) {
594
+ context_.Retire(std::move(object));
595
+ }
596
+ }
597
+
598
+ Ticket CapturedGraph::Submit(std::span<const Ticket> waits) {
599
+ std::vector<Ticket> after(waits.begin(), waits.end());
600
+ after.insert(after.end(), firstWaits_.begin(), firstWaits_.end());
601
+ firstWaits_.clear();
602
+ return queue_.Submit(*recording_, after);
603
+ }
604
+
532
605
  std::vector<std::string> Graph::ExecutedPasses() const {
533
606
  std::vector<std::string> names;
534
607
  for (const std::uint32_t p : live_) {
@@ -578,6 +651,7 @@ void AddUploadPass(Graph& graph, std::string_view name, Uploader& uploader,
578
651
  graph.Add(
579
652
  name, Kind::Copy,
580
653
  [&](PassBuilder& pass) {
654
+ pass.OneShot();
581
655
  for (Buffer& target : targets) {
582
656
  if (target.Valid()) {
583
657
  target = pass.Write(target, Use::CopyDst);
@@ -100,6 +100,7 @@ struct BufferSlice {
100
100
  };
101
101
 
102
102
  class Graph;
103
+ class CapturedGraph;
103
104
 
104
105
  /// @brief Declares one pass's accesses during setup.
105
106
  class PassBuilder {
@@ -128,6 +129,9 @@ class PassBuilder {
128
129
  Acceleration Read(Acceleration structure, Use use = Use::Trace);
129
130
  /// @brief Keeps the pass though nothing reads what it writes, as for one the host reads.
130
131
  void NeverCull();
132
+ /// @brief Marks the pass as recording this frame's data, as an upload's or a build of new
133
+ /// geometry does: a graph with one is not captured to replay (`Graph::Capturable`).
134
+ void OneShot();
131
135
 
132
136
  private:
133
137
  friend class Graph;
@@ -242,6 +246,14 @@ class Graph {
242
246
  /// @return The ticket of the graph's work, which CUDA can wait on too.
243
247
  /// @throws GraphError as `Compile`; std::logic_error if executed already.
244
248
  Ticket Execute(Queue& queue, std::span<const Ticket> waits = {}, BinarySemaphores binary = {});
249
+ /// @return Whether the graph can be captured: it has no one-shot pass. Compiles it.
250
+ bool Capturable();
251
+ /// @brief Records every kept pass once, for submitting again and again while what the passes
252
+ /// record stays as it was: the same resources, laid out as now. The capture keeps the
253
+ /// transients and the objects passes keep. Passes are not timed on the GPU.
254
+ /// @return The capture, not yet submitted.
255
+ /// @throws std::logic_error unless `Capturable`, or if executed or captured already.
256
+ std::unique_ptr<CapturedGraph> Capture(Queue& queue);
245
257
 
246
258
  /// @brief Adds a full barrier before every pass; on by default with
247
259
  /// ERNIE_GRAPH_FULL_BARRIERS=1.
@@ -296,6 +308,7 @@ class Graph {
296
308
  /// The innermost scope it was added in.
297
309
  std::uint32_t scope = kNoScope;
298
310
  bool neverCull = false;
311
+ bool oneShot = false;
299
312
  };
300
313
  struct ScopeNode {
301
314
  std::string name;
@@ -330,6 +343,36 @@ class Graph {
330
343
  bool leased_ = false;
331
344
  bool fullBarriers_ = false;
332
345
  bool flushEachPass_ = false;
346
+ /// Whether passes record GPU timing zones, which a capture cannot replay.
347
+ bool timed_ = true;
348
+ };
349
+
350
+ /// @brief A graph's commands recorded once and submitted per frame, while the transients they use
351
+ /// stay leased to it. Releasing it gives them back once its last submission is done.
352
+ class CapturedGraph {
353
+ public:
354
+ ~CapturedGraph();
355
+ CapturedGraph(const CapturedGraph&) = delete;
356
+ CapturedGraph& operator=(const CapturedGraph&) = delete;
357
+
358
+ /// @brief Submits the commands after `waits`; the first submission also waits for transient
359
+ /// images new to the pool.
360
+ /// @return The submission's ticket.
361
+ Ticket Submit(std::span<const Ticket> waits = {});
362
+
363
+ private:
364
+ friend class Graph;
365
+ CapturedGraph(DeviceContext& context, TransientPool& pool, Queue& queue)
366
+ : context_(context), pool_(pool), queue_(queue) {}
367
+
368
+ DeviceContext& context_;
369
+ TransientPool& pool_;
370
+ Queue& queue_;
371
+ std::unique_ptr<Recording> recording_;
372
+ std::vector<Ticket> firstWaits_;
373
+ std::vector<const DeviceImage*> images_;
374
+ std::vector<BufferRange> ranges_;
375
+ std::vector<std::shared_ptr<const void>> kept_;
333
376
  };
334
377
 
335
378
  /// @brief Adds a copy pass recording what `uploader` staged into `targets`, which later passes then
@@ -10,7 +10,7 @@ namespace ernie {
10
10
 
11
11
  DeviceScene::DeviceScene(DeviceContext& context, Arenas& arenas, const Scene& scene,
12
12
  const ShaderCompiler& compiler)
13
- : context_(context), pool_(context), columns_(context, arenas, scene),
13
+ : context_(context), scene_(scene), pool_(context), columns_(context, arenas, scene),
14
14
  transforms_(context, arenas, scene, compiler), geometry_(context, arenas, scene),
15
15
  instances_(context, arenas) {
16
16
  if (context.Capabilities().rayQuery) {
@@ -30,7 +30,37 @@ bool DeviceScene::Follow(const glm::dvec3& viewpoint) {
30
30
  Ticket DeviceScene::Execute(const std::function<void(graph::Graph&)>& passes,
31
31
  std::span<const Ticket> waits, BinarySemaphores binary) {
32
32
  ERNIE_ZONE("Run a frame");
33
+ captured_.reset();
33
34
  graph::Graph graph(context_, pool_);
35
+ AddFrame(graph, passes);
36
+ return graph.Execute(context_.Main(), waits, binary);
37
+ }
38
+
39
+ Ticket DeviceScene::Step(const std::function<void(graph::Graph&)>& passes, std::uint64_t key,
40
+ std::span<const Ticket> waits) {
41
+ const CaptureKey now{scene_.Store().Version(), transforms_.Origin(), key};
42
+ replayed_ = captured_ && now == capturedKey_ && Settled();
43
+ if (replayed_) {
44
+ ERNIE_ZONE("Replay a frame");
45
+ return captured_->Submit(waits);
46
+ }
47
+ ERNIE_ZONE("Run a frame");
48
+ captured_.reset();
49
+ graph::Graph graph(context_, pool_);
50
+ AddFrame(graph, passes);
51
+ if (!Settled() || !graph.Capturable()) {
52
+ return graph.Execute(context_.Main(), waits);
53
+ }
54
+ captured_ = graph.Capture(context_.Main());
55
+ capturedKey_ = now;
56
+ return captured_->Submit(waits);
57
+ }
58
+
59
+ bool DeviceScene::Settled() const {
60
+ return !tracer_ || tracer_->Bottoms().Idle();
61
+ }
62
+
63
+ void DeviceScene::AddFrame(graph::Graph& graph, const std::function<void(graph::Graph&)>& passes) {
34
64
  columns_.AddSync(graph);
35
65
  transforms_.AddUpdate(graph);
36
66
  const GeometryPool::Changes changes = geometry_.Update();
@@ -43,7 +73,6 @@ Ticket DeviceScene::Execute(const std::function<void(graph::Graph&)>& passes,
43
73
  if (passes) {
44
74
  passes(graph);
45
75
  }
46
- return graph.Execute(context_.Main(), waits, binary);
47
76
  }
48
77
 
49
78
  } // namespace ernie
@@ -74,15 +74,45 @@ class DeviceScene {
74
74
  /// @throws graph::GraphError when the passes cannot run.
75
75
  Ticket Execute(const std::function<void(graph::Graph&)>& passes,
76
76
  std::span<const Ticket> waits = {}, BinarySemaphores binary = {});
77
+ /// @brief `Execute`, or the last frame's commands submitted again while nothing they record
78
+ /// has changed: the scene (its version), the render origin, the bottom levels (none waiting)
79
+ /// and `key`, which the caller changes whenever `passes` would record something else. A frame
80
+ /// is kept to replay when it runs no one-shot pass, so a step whose data all comes from device
81
+ /// columns costs the host one submission.
82
+ /// @return The frame's ticket.
83
+ Ticket Step(const std::function<void(graph::Graph&)>& passes, std::uint64_t key,
84
+ std::span<const Ticket> waits = {});
85
+ /// @return Whether the last `Step` replayed a captured frame.
86
+ bool Replayed() const {
87
+ return replayed_;
88
+ }
77
89
 
78
90
  private:
91
+ /// What a captured frame recorded from.
92
+ struct CaptureKey {
93
+ std::uint64_t version = 0;
94
+ glm::dvec3 origin{0.0};
95
+ std::uint64_t passes = 0;
96
+ bool operator==(const CaptureKey&) const = default;
97
+ };
98
+
99
+ /// Adds a frame's passes: the columns' sync, the transforms, the geometry, the ray tracer's
100
+ /// builds, then `passes`'.
101
+ void AddFrame(graph::Graph& graph, const std::function<void(graph::Graph&)>& passes);
102
+ /// @return Whether no work waits for a later frame.
103
+ bool Settled() const;
104
+
79
105
  DeviceContext& context_;
106
+ const Scene& scene_;
80
107
  graph::TransientPool pool_;
81
108
  SceneColumns columns_;
82
109
  TransformGraph transforms_;
83
110
  GeometryPool geometry_;
84
111
  InstanceTable instances_;
85
112
  std::unique_ptr<RayTracer> tracer_;
113
+ std::unique_ptr<graph::CapturedGraph> captured_;
114
+ CaptureKey capturedKey_;
115
+ bool replayed_ = false;
86
116
  };
87
117
 
88
118
  } // namespace ernie
@@ -89,6 +89,10 @@ struct Renderer::Device {
89
89
  std::unique_ptr<DeviceScene> deviceScene;
90
90
  std::vector<Batch> batches;
91
91
  std::vector<RenderBatch> rendered;
92
+ /// The scene's version the batches were planned at.
93
+ std::uint64_t plannedVersion = 0;
94
+ /// Changed whenever the passes would record something else: a new plan or binding.
95
+ std::uint64_t recorded = 0;
92
96
  /// What the next step waits for.
93
97
  std::vector<Ticket> waits;
94
98
 
@@ -186,14 +190,21 @@ DeviceScene& Renderer::Device::Follow(const Scene& scene) {
186
190
  std::span<const RenderBatch> Renderer::Step(Scene& scene) {
187
191
  ERNIE_ZONE("Render step");
188
192
  scene.Update();
189
- const std::vector<ProductSpec> specs = ReadProducts(scene);
190
193
  Device& device = *device_;
191
194
  DeviceScene& deviceScene = device.Follow(scene);
192
- device.Plan(scene, specs);
193
- const auto highest = std::ranges::max(specs, {}, &ProductSpec::world).world;
194
- deviceScene.Instances().ReserveWorlds(highest + 1);
195
+ // Products are read again only after host edits: a step whose poses all come from device
196
+ // columns costs the host nothing a view.
197
+ if (device.batches.empty() || scene.Store().Version() != device.plannedVersion) {
198
+ const std::vector<ProductSpec> specs = ReadProducts(scene);
199
+ device.Plan(scene, specs);
200
+ const auto highest = std::ranges::max(specs, {}, &ProductSpec::world).world;
201
+ deviceScene.Instances().ReserveWorlds(highest + 1);
202
+ device.plannedVersion = scene.Store().Version();
203
+ ++device.recorded;
204
+ }
195
205
  deviceScene.Follow(glm::dvec3(device.batches.front().views.front().cameraToWorld[3]));
196
- deviceScene.Execute(
206
+ // Replayed while the plan and bindings stand: the camera records only their data.
207
+ deviceScene.Step(
197
208
  [&](graph::Graph& graph) {
198
209
  for (const Batch& batch : device.batches) {
199
210
  CameraOutputs outputs;
@@ -204,7 +215,7 @@ std::span<const RenderBatch> Renderer::Step(Scene& scene) {
204
215
  device.camera->Add(graph, batch.views, outputs);
205
216
  }
206
217
  },
207
- device.waits);
218
+ device.recorded, device.waits);
208
219
  device.waits.clear();
209
220
  return device.rendered;
210
221
  }
@@ -215,6 +226,7 @@ const DeviceColumn& Renderer::BindTransformOp(Scene& scene, const Path& prim,
215
226
  const BucketId bucket = scene.Store().PrimBucket(scene.Require(prim));
216
227
  const DeviceColumn& column = deviceScene.Columns().Bind(bucket, attribute);
217
228
  deviceScene.Transforms().Bind(bucket, attribute, column);
229
+ ++device_->recorded;
218
230
  return column;
219
231
  }
220
232
 
@@ -222,6 +234,10 @@ void Renderer::WaitFor(const Ticket& ticket) {
222
234
  device_->waits.push_back(ticket);
223
235
  }
224
236
 
237
+ bool Renderer::Replayed() const {
238
+ return device_->deviceScene && device_->deviceScene->Replayed();
239
+ }
240
+
225
241
  Tensor Renderer::Read(const RenderVarOutput& var) {
226
242
  DeviceContext& context = *device_->context;
227
243
  const Ticket done = context.Main().Last();