@woosh/meep-engine 3.12.0 → 3.13.1

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.
Files changed (301) hide show
  1. package/package.json +1 -1
  2. package/src/core/geom/3d/shape/ConvexHullShape3D.d.ts.map +1 -1
  3. package/src/core/geom/3d/shape/ConvexHullShape3D.js +41 -25
  4. package/src/core/geom/3d/shape/PosedShape3D.d.ts.map +1 -1
  5. package/src/core/geom/3d/shape/PosedShape3D.js +7 -2
  6. package/src/engine/graphics3/decal/GPUDecalRenderer.js +3 -3
  7. package/src/engine/graphics3/decal/shader_decal_composite.d.ts.map +1 -1
  8. package/src/engine/graphics3/decal/shader_decal_composite.js +4 -2
  9. package/src/engine/graphics3/highlight/GPUHighlightRenderer.d.ts.map +1 -1
  10. package/src/engine/graphics3/highlight/GPUHighlightRenderer.js +2 -3
  11. package/src/engine/graphics3/highlight/shader_highlight_outline.js +150 -150
  12. package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
  13. package/src/shade/RENDERER_CONTRACT.md +2 -1
  14. package/src/shade/descriptor/pipeline/compute/ComputePipelineDescriptor.d.ts +18 -0
  15. package/src/shade/descriptor/pipeline/compute/ComputePipelineDescriptor.d.ts.map +1 -1
  16. package/src/shade/descriptor/pipeline/compute/ComputePipelineDescriptor.js +73 -0
  17. package/src/shade/device/PASS_ENCODER_PROPOSAL_2026_08_31.md +755 -0
  18. package/src/shade/device/ShadeGPUCommandContext.d.ts +10 -16
  19. package/src/shade/device/ShadeGPUCommandContext.d.ts.map +1 -1
  20. package/src/shade/device/ShadeGPUCommandContext.js +801 -994
  21. package/src/shade/device/pass/ShadeGPUComputePassEncoder.d.ts +107 -0
  22. package/src/shade/device/pass/ShadeGPUComputePassEncoder.d.ts.map +1 -0
  23. package/src/shade/device/pass/ShadeGPUComputePassEncoder.js +222 -0
  24. package/src/shade/device/pass/ShadeGPURenderPassEncoder.d.ts +168 -0
  25. package/src/shade/device/pass/ShadeGPURenderPassEncoder.d.ts.map +1 -0
  26. package/src/shade/device/pass/ShadeGPURenderPassEncoder.js +317 -0
  27. package/src/shade/device/timing/GPUTimerArray.d.ts +4 -9
  28. package/src/shade/device/timing/GPUTimerArray.d.ts.map +1 -1
  29. package/src/shade/device/timing/GPUTimerArray.js +261 -289
  30. package/src/shade/device/timing/GPU_PROFILER_PROPOSAL_2026_08_28.md +20 -2
  31. package/src/shade/device/timing/ShadeGPUContextProfiler.d.ts +59 -0
  32. package/src/shade/device/timing/ShadeGPUContextProfiler.d.ts.map +1 -0
  33. package/src/shade/device/timing/ShadeGPUContextProfiler.js +182 -0
  34. package/src/shade/device/timing/profile/GPUProfileSession.d.ts +4 -4
  35. package/src/shade/device/timing/profile/GPUProfileSession.js +4 -4
  36. package/src/shade/playground/skinned_blas_refit/shader_blas_audit_leaf_triangles.d.ts.map +1 -1
  37. package/src/shade/playground/skinned_blas_refit/shader_blas_audit_leaf_triangles.js +3 -1
  38. package/src/shade/playground/skinned_blas_refit/shader_blas_audit_points.d.ts.map +1 -1
  39. package/src/shade/playground/skinned_blas_refit/shader_blas_audit_points.js +3 -1
  40. package/src/shade/playground/skinned_blas_refit/shader_blas_audit_visibility.d.ts.map +1 -1
  41. package/src/shade/playground/skinned_blas_refit/shader_blas_audit_visibility.js +3 -1
  42. package/src/shade/playground/skinned_blas_refit/verify_leaf_triangles.js +2 -2
  43. package/src/shade/playground/skinned_blas_refit/verify_traversal_reachability.js +2 -2
  44. package/src/shade/renderer/Renderer.d.ts +0 -6
  45. package/src/shade/renderer/Renderer.d.ts.map +1 -1
  46. package/src/shade/renderer/Renderer.js +0 -29
  47. package/src/shade/renderer/animation/GPUAnimationManager.d.ts.map +1 -1
  48. package/src/shade/renderer/animation/GPUAnimationManager.js +1 -3
  49. package/src/shade/renderer/animation/shader_animation_tick.d.ts.map +1 -1
  50. package/src/shade/renderer/animation/shader_animation_tick.js +128 -125
  51. package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.d.ts.map +1 -1
  52. package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.js +8 -18
  53. package/src/shade/renderer/animation/skinning/bounds_refresh/shader_geometry_sphere_derive.d.ts.map +1 -1
  54. package/src/shade/renderer/animation/skinning/bounds_refresh/shader_geometry_sphere_derive.js +100 -98
  55. package/src/shade/renderer/animation/skinning/bounds_refresh/shader_meshlet_bounds_reduce.d.ts.map +1 -1
  56. package/src/shade/renderer/animation/skinning/bounds_refresh/shader_meshlet_bounds_reduce.js +215 -212
  57. package/src/shade/renderer/animation/skinning/bounds_refresh/shader_meshlet_bounds_scatter.d.ts +1 -1
  58. package/src/shade/renderer/animation/skinning/bounds_refresh/shader_meshlet_bounds_scatter.d.ts.map +1 -1
  59. package/src/shade/renderer/animation/skinning/bounds_refresh/shader_meshlet_bounds_scatter.js +135 -120
  60. package/src/shade/renderer/animation/skinning/bounds_refresh/shader_skinned_mesh_bounds_refresh.d.ts.map +1 -1
  61. package/src/shade/renderer/animation/skinning/bounds_refresh/shader_skinned_mesh_bounds_refresh.js +77 -75
  62. package/src/shade/renderer/animation/skinning/shader_meshlet_apply_skinning.d.ts.map +1 -1
  63. package/src/shade/renderer/animation/skinning/shader_meshlet_apply_skinning.js +375 -371
  64. package/src/shade/renderer/atmosphere/shader_transmittance_lut.js +3 -3
  65. package/src/shade/renderer/buffer/graph_inspect_gpu_buffer.js +1 -1
  66. package/src/shade/renderer/buffer/table/GPUDatabase.d.ts.map +1 -1
  67. package/src/shade/renderer/buffer/table/GPUDatabase.js +14 -19
  68. package/src/shade/renderer/buffer/table/gpu_table_element_upload_shader.d.ts.map +1 -1
  69. package/src/shade/renderer/buffer/table/gpu_table_element_upload_shader.js +7 -2
  70. package/src/shade/renderer/buffer/table/single/GPUSingleTypeTable.d.ts.map +1 -1
  71. package/src/shade/renderer/buffer/table/single/GPUSingleTypeTable.js +325 -319
  72. package/src/shade/renderer/buffer/util/shader_buffer_copy_storage_to_storage.d.ts.map +1 -1
  73. package/src/shade/renderer/buffer/util/shader_buffer_copy_storage_to_storage.js +3 -1
  74. package/src/shade/renderer/deferred/shader_tonemap_HDR.d.ts.map +1 -1
  75. package/src/shade/renderer/deferred/shader_tonemap_HDR.js +4 -1
  76. package/src/shade/renderer/dynamic/GPUDynamicMeshResidency.d.ts +2 -2
  77. package/src/shade/renderer/dynamic/GPUDynamicMeshResidency.d.ts.map +1 -1
  78. package/src/shade/renderer/dynamic/GPUDynamicMeshResidency.js +167 -167
  79. package/src/shade/renderer/fow/GPUFogOfWarRenderer.js +3 -3
  80. package/src/shade/renderer/fow/shader_fog_of_war.d.ts.map +1 -1
  81. package/src/shade/renderer/fow/shader_fog_of_war.js +3 -1
  82. package/src/shade/renderer/geometry/bvh/record_blas_refit.js +102 -102
  83. package/src/shade/renderer/geometry/bvh/shader_blas_refit_leaf_bounds.d.ts.map +1 -1
  84. package/src/shade/renderer/geometry/bvh/shader_blas_refit_leaf_bounds.js +125 -121
  85. package/src/shade/renderer/geometry/meshlet/GPUMeshletManager.d.ts.map +1 -1
  86. package/src/shade/renderer/geometry/meshlet/GPUMeshletManager.js +766 -774
  87. package/src/shade/renderer/geometry/meshlet/shader_meshlet_metadata_address_patch.d.ts.map +1 -1
  88. package/src/shade/renderer/geometry/meshlet/shader_meshlet_metadata_address_patch.js +72 -69
  89. package/src/shade/renderer/geometry/sdf/GPUGeometrySDFManager.d.ts.map +1 -1
  90. package/src/shade/renderer/geometry/sdf/GPUGeometrySDFManager.js +5 -10
  91. package/src/shade/renderer/geometry/sdf/shader_build_sdf.js +129 -129
  92. package/src/shade/renderer/geometry/sdf/shader_sdf_visualize.d.ts.map +1 -1
  93. package/src/shade/renderer/geometry/sdf/shader_sdf_visualize.js +5 -3
  94. package/src/shade/renderer/global_illumination/brick4/gpu/bake/shader_brick4_bake_probes.d.ts.map +1 -1
  95. package/src/shade/renderer/global_illumination/brick4/gpu/bake/shader_brick4_bake_probes.js +4 -1
  96. package/src/shade/renderer/global_illumination/brick4/gpu/bake/shader_brick4_bake_resolve_probes.d.ts.map +1 -1
  97. package/src/shade/renderer/global_illumination/brick4/gpu/bake/shader_brick4_bake_resolve_probes.js +3 -1
  98. package/src/shade/renderer/global_illumination/clipmap/shader_update_clipmap_cascade.d.ts.map +1 -1
  99. package/src/shade/renderer/global_illumination/clipmap/shader_update_clipmap_cascade.js +114 -112
  100. package/src/shade/renderer/global_illumination/probe/octahedral/convolve/graph_lpv_store_sh.d.ts.map +1 -1
  101. package/src/shade/renderer/global_illumination/probe/octahedral/convolve/graph_lpv_store_sh.js +4 -1
  102. package/src/shade/renderer/global_illumination/probe/octahedral/convolve/graph_lvp_atlas_to_sh.d.ts.map +1 -1
  103. package/src/shade/renderer/global_illumination/probe/octahedral/convolve/graph_lvp_atlas_to_sh.js +187 -184
  104. package/src/shade/renderer/global_illumination/probe/octahedral/convolve/graph_reduce_atlas_to_sh.d.ts.map +1 -1
  105. package/src/shade/renderer/global_illumination/probe/octahedral/convolve/graph_reduce_atlas_to_sh.js +4 -1
  106. package/src/shade/renderer/global_illumination/sharc/SpatialHashRadianceCache.d.ts.map +1 -1
  107. package/src/shade/renderer/global_illumination/sharc/SpatialHashRadianceCache.js +6 -8
  108. package/src/shade/renderer/global_illumination/sharc/shader/shader_sharc_evict.d.ts.map +1 -1
  109. package/src/shade/renderer/global_illumination/sharc/shader/shader_sharc_evict.js +3 -1
  110. package/src/shade/renderer/global_illumination/sharc/shader/shader_sharc_update.d.ts.map +1 -1
  111. package/src/shade/renderer/global_illumination/sharc/shader/shader_sharc_update.js +3 -1
  112. package/src/shade/renderer/gpu_primitive/bvh/GPU_BVH_BUILD_PLAN.md +3 -3
  113. package/src/shade/renderer/gpu_primitive/bvh/PHASE1_HANDOVER.md +3 -3
  114. package/src/shade/renderer/gpu_primitive/bvh/graph_bvh_build_lbvh.js +217 -217
  115. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_emit_hierarchy.d.ts.map +1 -1
  116. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_emit_hierarchy.js +145 -142
  117. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_morton.d.ts.map +1 -1
  118. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_morton.js +87 -82
  119. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_refit.d.ts.map +1 -1
  120. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_refit.js +143 -140
  121. package/src/shade/renderer/gpu_primitive/bvh/verify_gpu_bvh_build.d.ts +2 -2
  122. package/src/shade/renderer/gpu_primitive/bvh/verify_gpu_bvh_build.d.ts.map +1 -1
  123. package/src/shade/renderer/gpu_primitive/bvh/verify_gpu_bvh_build.js +43 -8
  124. package/src/shade/renderer/gpu_primitive/sort/graph_radix_sort.d.ts.map +1 -1
  125. package/src/shade/renderer/gpu_primitive/sort/graph_radix_sort.js +4 -5
  126. package/src/shade/renderer/gpu_primitive/sort/shader_radix_sort_histogram.d.ts.map +1 -1
  127. package/src/shade/renderer/gpu_primitive/sort/shader_radix_sort_histogram.js +88 -84
  128. package/src/shade/renderer/gpu_primitive/sort/shader_radix_sort_scatter.d.ts.map +1 -1
  129. package/src/shade/renderer/gpu_primitive/sort/shader_radix_sort_scatter.js +194 -191
  130. package/src/shade/renderer/hiz/HierarchicalZBuffer.d.ts.map +1 -1
  131. package/src/shade/renderer/hiz/HierarchicalZBuffer.js +33 -69
  132. package/src/shade/renderer/hiz/shader_hzb_reduce_any.d.ts.map +1 -1
  133. package/src/shade/renderer/hiz/shader_hzb_reduce_any.js +6 -1
  134. package/src/shade/renderer/hiz/shader_hzb_reduce_mip0_clip.d.ts.map +1 -1
  135. package/src/shade/renderer/hiz/shader_hzb_reduce_mip0_clip.js +23 -7
  136. package/src/shade/renderer/light/environment/execute_filter_environment_map.d.ts.map +1 -1
  137. package/src/shade/renderer/light/environment/execute_filter_environment_map.js +1 -2
  138. package/src/shade/renderer/light/environment/shader_convolve_reflection_map.d.ts.map +1 -1
  139. package/src/shade/renderer/light/environment/shader_convolve_reflection_map.js +6 -1
  140. package/src/shade/renderer/lightmap/bake/raster/graph_draw_lightmap_viz_buffer.d.ts.map +1 -1
  141. package/src/shade/renderer/lightmap/bake/raster/graph_draw_lightmap_viz_buffer.js +234 -219
  142. package/src/shade/renderer/lightmap/bake/raster/shader_lightmap_to_viz_buffer.js +2 -2
  143. package/src/shade/renderer/lightmap/bake/shader_lightmap_denoise_sh.js +191 -191
  144. package/src/shade/renderer/lightmap/bake/tile/shader_lightmap_accummulate_tile.d.ts.map +1 -1
  145. package/src/shade/renderer/lightmap/bake/tile/shader_lightmap_accummulate_tile.js +85 -82
  146. package/src/shade/renderer/particles/graph_particles.d.ts.map +1 -1
  147. package/src/shade/renderer/particles/graph_particles.js +5 -3
  148. package/src/shade/renderer/particles/prototypeParticleSystem.js +3 -4
  149. package/src/shade/renderer/particles/shaders/shader_particle_emit.d.ts.map +1 -1
  150. package/src/shade/renderer/particles/shaders/shader_particle_emit.js +132 -117
  151. package/src/shade/renderer/particles/shaders/shader_particle_finalize.d.ts.map +1 -1
  152. package/src/shade/renderer/particles/shaders/shader_particle_finalize.js +79 -77
  153. package/src/shade/renderer/particles/shaders/shader_particle_simulate.d.ts.map +1 -1
  154. package/src/shade/renderer/particles/shaders/shader_particle_simulate.js +111 -99
  155. package/src/shade/renderer/particles/sort/shader_particle_sort.d.ts.map +1 -1
  156. package/src/shade/renderer/particles/sort/shader_particle_sort.js +187 -158
  157. package/src/shade/renderer/path_tracer/accumulating/AccumulatingPathTracer.d.ts.map +1 -1
  158. package/src/shade/renderer/path_tracer/accumulating/AccumulatingPathTracer.js +7 -10
  159. package/src/shade/renderer/path_tracer/accumulating/shader_accumulating_path_tracer.d.ts.map +1 -1
  160. package/src/shade/renderer/path_tracer/accumulating/shader_accumulating_path_tracer.js +4 -1
  161. package/src/shade/renderer/postprocess/bloom/shader_bloom_mix.d.ts.map +1 -1
  162. package/src/shade/renderer/postprocess/bloom/shader_bloom_mix.js +3 -1
  163. package/src/shade/renderer/postprocess/cas/shader_ffx_rcas.d.ts.map +1 -1
  164. package/src/shade/renderer/postprocess/cas/shader_ffx_rcas.js +4 -2
  165. package/src/shade/renderer/postprocess/denoise/fragment_shader_denoise_ao.js +147 -147
  166. package/src/shade/renderer/postprocess/denoise/graph_atorus_denoise_luma.d.ts.map +1 -1
  167. package/src/shade/renderer/postprocess/denoise/graph_atorus_denoise_luma.js +121 -119
  168. package/src/shade/renderer/postprocess/dof/gather/graph_postprocess_dof2.d.ts.map +1 -1
  169. package/src/shade/renderer/postprocess/dof/gather/graph_postprocess_dof2.js +1 -2
  170. package/src/shade/renderer/postprocess/dof/gather/shader_dof2_gather_far.d.ts.map +1 -1
  171. package/src/shade/renderer/postprocess/dof/gather/shader_dof2_gather_far.js +4 -1
  172. package/src/shade/renderer/postprocess/dof/gather/shader_dof2_gather_near.d.ts.map +1 -1
  173. package/src/shade/renderer/postprocess/dof/gather/shader_dof2_gather_near.js +4 -1
  174. package/src/shade/renderer/postprocess/dof/gather/shader_dof2_recombine.d.ts.map +1 -1
  175. package/src/shade/renderer/postprocess/dof/gather/shader_dof2_recombine.js +4 -1
  176. package/src/shade/renderer/postprocess/dof/gather/shader_dof2_setup.d.ts.map +1 -1
  177. package/src/shade/renderer/postprocess/dof/gather/shader_dof2_setup.js +4 -1
  178. package/src/shade/renderer/postprocess/dof/raymarch/graph_postprocess_dof.d.ts.map +1 -1
  179. package/src/shade/renderer/postprocess/dof/raymarch/graph_postprocess_dof.js +2 -4
  180. package/src/shade/renderer/postprocess/dof/raymarch/shader_dof_composite.d.ts.map +1 -1
  181. package/src/shade/renderer/postprocess/dof/raymarch/shader_dof_composite.js +4 -1
  182. package/src/shade/renderer/postprocess/dof/raymarch/shader_dof_prefilter.d.ts.map +1 -1
  183. package/src/shade/renderer/postprocess/dof/raymarch/shader_dof_prefilter.js +4 -1
  184. package/src/shade/renderer/postprocess/dof/raymarch/shader_dof_raymarch.d.ts.map +1 -1
  185. package/src/shade/renderer/postprocess/dof/raymarch/shader_dof_raymarch.js +4 -1
  186. package/src/shade/renderer/postprocess/dof/raymarch/shader_dof_raymarch_compute.d.ts.map +1 -1
  187. package/src/shade/renderer/postprocess/dof/raymarch/shader_dof_raymarch_compute.js +269 -266
  188. package/src/shade/renderer/postprocess/dof/raymarch/shader_dof_slice_compute.d.ts.map +1 -1
  189. package/src/shade/renderer/postprocess/dof/raymarch/shader_dof_slice_compute.js +273 -270
  190. package/src/shade/renderer/postprocess/dof/shader_dof_autofocus.d.ts.map +1 -1
  191. package/src/shade/renderer/postprocess/dof/shader_dof_autofocus.js +4 -1
  192. package/src/shade/renderer/postprocess/eye/GPUCameraExposureManager.d.ts.map +1 -1
  193. package/src/shade/renderer/postprocess/eye/GPUCameraExposureManager.js +8 -11
  194. package/src/shade/renderer/postprocess/eye/shader_autoexposure_adapt.d.ts.map +1 -1
  195. package/src/shade/renderer/postprocess/eye/shader_autoexposure_adapt.js +5 -1
  196. package/src/shade/renderer/postprocess/gtao/fragment_shader_gtao.d.ts.map +1 -1
  197. package/src/shade/renderer/postprocess/gtao/fragment_shader_gtao.js +11 -8
  198. package/src/shade/renderer/postprocess/gtao/fragment_shader_gtao_with_irradiance.d.ts.map +1 -1
  199. package/src/shade/renderer/postprocess/gtao/fragment_shader_gtao_with_irradiance.js +7 -8
  200. package/src/shade/renderer/postprocess/motion_blur/shader_motion_blur_reconstruct.d.ts.map +1 -1
  201. package/src/shade/renderer/postprocess/motion_blur/shader_motion_blur_reconstruct.js +3 -1
  202. package/src/shade/renderer/postprocess/nss/NSS.d.ts +1 -1
  203. package/src/shade/renderer/postprocess/nss/shader_nss_concat.d.ts.map +1 -1
  204. package/src/shade/renderer/postprocess/nss/shader_nss_concat.js +70 -68
  205. package/src/shade/renderer/postprocess/ssr/depth_max_shader.d.ts.map +1 -1
  206. package/src/shade/renderer/postprocess/ssr/depth_max_shader.js +70 -68
  207. package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader_IBL.d.ts.map +1 -1
  208. package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader_IBL.js +3 -1
  209. package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader_LPV.d.ts.map +1 -1
  210. package/src/shade/renderer/postprocess/ssr/resolve/ssr_resolve_shader_LPV.js +4 -1
  211. package/src/shade/renderer/postprocess/ssr/shader_downsample_encoded_normal.d.ts.map +1 -1
  212. package/src/shade/renderer/postprocess/ssr/shader_downsample_encoded_normal.js +103 -101
  213. package/src/shade/renderer/postprocess/ssr/ssr_spatial_denoise_shader.d.ts.map +1 -1
  214. package/src/shade/renderer/postprocess/ssr/ssr_spatial_denoise_shader.js +4 -2
  215. package/src/shade/renderer/postprocess/ssr/ssr_trace_shader.d.ts.map +1 -1
  216. package/src/shade/renderer/postprocess/ssr/ssr_trace_shader.js +3 -1
  217. package/src/shade/renderer/postprocess/taa/shader_taa.d.ts.map +1 -1
  218. package/src/shade/renderer/postprocess/taa/shader_taa.js +4 -1
  219. package/src/shade/renderer/postprocess/upscale-dither/fragment_shader_upscale_dither.js +5 -5
  220. package/src/shade/renderer/rasterize/bucket/prepare_meshlet_draw_commands_by_material.d.ts.map +1 -1
  221. package/src/shade/renderer/rasterize/bucket/prepare_meshlet_draw_commands_by_material.js +339 -341
  222. package/src/shade/renderer/rasterize/cull/hzb/shader_hzb_mesh_filter_2way.d.ts.map +1 -1
  223. package/src/shade/renderer/rasterize/cull/hzb/shader_hzb_mesh_filter_2way.js +114 -109
  224. package/src/shade/renderer/rasterize/cull/hzb/shader_hzb_meshlet_filter_1way_full.d.ts.map +1 -1
  225. package/src/shade/renderer/rasterize/cull/hzb/shader_hzb_meshlet_filter_1way_full.js +118 -115
  226. package/src/shade/renderer/rasterize/expand/bucket/meshlet/shader_meshlets_extract_bucket.d.ts.map +1 -1
  227. package/src/shade/renderer/rasterize/expand/bucket/meshlet/shader_meshlets_extract_bucket.js +69 -65
  228. package/src/shade/renderer/rasterize/native/oit/graph_rasterize_meshes_transparent_oit.js +722 -722
  229. package/src/shade/renderer/rasterize/standard/graph_rasterize_partial_opaque.d.ts.map +1 -1
  230. package/src/shade/renderer/rasterize/standard/graph_rasterize_partial_opaque.js +1 -9
  231. package/src/shade/renderer/rasterize/standard/graph_rasterize_remaining_opaque.d.ts.map +1 -1
  232. package/src/shade/renderer/rasterize/standard/graph_rasterize_remaining_opaque.js +1 -6
  233. package/src/shade/renderer/restir/di/graph_restir_di.d.ts.map +1 -1
  234. package/src/shade/renderer/restir/di/graph_restir_di.js +2 -3
  235. package/src/shade/renderer/restir/di/graph_restir_di_denoise.d.ts.map +1 -1
  236. package/src/shade/renderer/restir/di/graph_restir_di_denoise.js +1 -2
  237. package/src/shade/renderer/restir/di/shader_restir_di_denoise.d.ts.map +1 -1
  238. package/src/shade/renderer/restir/di/shader_restir_di_denoise.js +139 -136
  239. package/src/shade/renderer/restir/di/shader_restir_di_resample.d.ts.map +1 -1
  240. package/src/shade/renderer/restir/di/shader_restir_di_resample.js +131 -129
  241. package/src/shade/renderer/restir/di/shader_restir_di_resolve.d.ts.map +1 -1
  242. package/src/shade/renderer/restir/di/shader_restir_di_resolve.js +101 -99
  243. package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.d.ts.map +1 -1
  244. package/src/shade/renderer/scene/GPUInstancesAccelerationStructure.js +379 -383
  245. package/src/shade/renderer/scene/Mesh.d.ts.map +1 -1
  246. package/src/shade/renderer/scene/Mesh.js +4 -6
  247. package/src/shade/renderer/scene/shader_bvh_extract_instance_leaves.d.ts.map +1 -1
  248. package/src/shade/renderer/scene/shader_bvh_extract_instance_leaves.js +147 -144
  249. package/src/shade/renderer/shader/ComputeShader.d.ts +2 -2
  250. package/src/shade/renderer/shader/ComputeShader.d.ts.map +1 -1
  251. package/src/shade/renderer/shader/ComputeShader.js +14 -17
  252. package/src/shade/renderer/shader/pass/RenderPassDescriptor.d.ts +2 -2
  253. package/src/shade/renderer/shader/pass/RenderPassDescriptor.d.ts.map +1 -1
  254. package/src/shade/renderer/shader/pass/RenderPassDescriptor.js +189 -189
  255. package/src/shade/renderer/shader/resource/ShaderResourceSetDescriptor.d.ts.map +1 -1
  256. package/src/shade/renderer/shader/resource/ShaderResourceSetDescriptor.js +3 -1
  257. package/src/shade/renderer/shadow/map/GPUSceneShadowmapContext.d.ts +16 -7
  258. package/src/shade/renderer/shadow/map/GPUSceneShadowmapContext.d.ts.map +1 -1
  259. package/src/shade/renderer/shadow/map/GPUSceneShadowmapContext.js +1342 -1326
  260. package/src/shade/renderer/shadow/map/Shadowmap.d.ts +13 -0
  261. package/src/shade/renderer/shadow/map/Shadowmap.d.ts.map +1 -1
  262. package/src/shade/renderer/shadow/map/Shadowmap.js +14 -0
  263. package/src/shade/renderer/shadow/map/ShadowmapDrawSelector.d.ts +79 -0
  264. package/src/shade/renderer/shadow/map/ShadowmapDrawSelector.d.ts.map +1 -0
  265. package/src/shade/renderer/shadow/map/ShadowmapDrawSelector.js +196 -0
  266. package/src/shade/renderer/shadow/map/ShadowmapRegistry.d.ts +91 -0
  267. package/src/shade/renderer/shadow/map/ShadowmapRegistry.d.ts.map +1 -0
  268. package/src/shade/renderer/shadow/map/ShadowmapRegistry.js +156 -0
  269. package/src/shade/renderer/shadow/map/shader/shader_shadowmap_remap_cube_to_octahedral.d.ts.map +1 -1
  270. package/src/shade/renderer/shadow/map/shader/shader_shadowmap_remap_cube_to_octahedral.js +5 -1
  271. package/src/shade/renderer/shadow/ray/shader_shadow_upscale.d.ts.map +1 -1
  272. package/src/shade/renderer/shadow/ray/shader_shadow_upscale.js +3 -1
  273. package/src/shade/renderer/shadow/ray/staged/gen/graph_gen_rays.js +73 -73
  274. package/src/shade/renderer/shadow/ray/staged/gen/shader_generate_rays.d.ts.map +1 -1
  275. package/src/shade/renderer/shadow/ray/staged/gen/shader_generate_rays.js +151 -148
  276. package/src/shade/renderer/shadow/ray/staged/trace/graph_trace_rays.d.ts.map +1 -1
  277. package/src/shade/renderer/shadow/ray/staged/trace/graph_trace_rays.js +4 -2
  278. package/src/shade/renderer/shadow/ray/staged/trace/shader_trace_rays.d.ts.map +1 -1
  279. package/src/shade/renderer/shadow/ray/staged/trace/shader_trace_rays.js +18 -4
  280. package/src/shade/renderer/shadow/sdf/cascade/CascadedSceneSDF.d.ts.map +1 -1
  281. package/src/shade/renderer/shadow/sdf/cascade/CascadedSceneSDF.js +7 -8
  282. package/src/shade/renderer/shadow/sdf/cascade/shader_build_scene_sdf_f32.d.ts.map +1 -1
  283. package/src/shade/renderer/shadow/sdf/cascade/shader_build_scene_sdf_f32.js +6 -2
  284. package/src/shade/renderer/shadow/sdf/cascade/shader_scene_sdf_debug_viz.d.ts.map +1 -1
  285. package/src/shade/renderer/shadow/sdf/cascade/shader_scene_sdf_debug_viz.js +129 -127
  286. package/src/shade/renderer/shadow/sdf/graph_draw_sdf_shadows.d.ts.map +1 -1
  287. package/src/shade/renderer/shadow/sdf/graph_draw_sdf_shadows.js +5 -3
  288. package/src/shade/renderer/texture/virtual/VirtualTextureManager.d.ts.map +1 -1
  289. package/src/shade/renderer/texture/virtual/VirtualTextureManager.js +2 -5
  290. package/src/shade/renderer/texture/virtual/build_shader_vt_feedback.d.ts.map +1 -1
  291. package/src/shade/renderer/texture/virtual/build_shader_vt_feedback.js +233 -231
  292. package/src/shade/renderer/volumetrics/graph_build_volumetrics.d.ts.map +1 -1
  293. package/src/shade/renderer/volumetrics/graph_build_volumetrics.js +2 -4
  294. package/src/shade/wgsl/validate_wgsl_source.d.ts.map +1 -1
  295. package/src/shade/wgsl/validate_wgsl_source.js +8 -3
  296. package/src/shade/device/timing/profile/make_profiling_pass_encoder.d.ts +0 -21
  297. package/src/shade/device/timing/profile/make_profiling_pass_encoder.d.ts.map +0 -1
  298. package/src/shade/device/timing/profile/make_profiling_pass_encoder.js +0 -114
  299. package/src/shade/device/timing/profile/parse_workgroup_size.d.ts +0 -20
  300. package/src/shade/device/timing/profile/parse_workgroup_size.d.ts.map +0 -1
  301. package/src/shade/device/timing/profile/parse_workgroup_size.js +0 -43
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Decorates {@link GPUComputePassEncoder}.
3
+ *
4
+ * **Every compute pass Shade opens is one of these.** There is no unwrapped path and no conditional
5
+ * wrapping, and that is what makes hand-written forwarding safe: a method missing here is
6
+ * `pass.setPipeline is not a function` on the first frame of every build, rather than a call
7
+ * silently dropped in the one configuration nobody runs. The `Proxy` this replaces forwarded
8
+ * everything by reflection precisely because it was conditional, and a conditional wrapper's
9
+ * defects only appear while profiling.
10
+ *
11
+ * The method names follow WebGPU's to remove friction for anyone who already knows the API. They
12
+ * are **not** a promise of substitutability — see {@link setBindGroupRange}, which is Shade's own
13
+ * name for a form WebGPU resolves by counting arguments.
14
+ *
15
+ * When a capture is running the pass is handed a {@link GPUProfileWork} to tally into. This class
16
+ * imports nothing from the profiler and does not know what a capture is; `work` is a record of
17
+ * counters, and `null` is the ordinary case.
18
+ *
19
+ * @author Alex Goldring
20
+ * @copyright Company Named Limited (c) 2026
21
+ */
22
+ export class ShadeGPUComputePassEncoder {
23
+ /**
24
+ * @param {GPUComputePassEncoder} pass
25
+ * @param {GPUProfileWork|null} work
26
+ */
27
+ constructor(pass: GPUComputePassEncoder, work: GPUProfileWork | null);
28
+ /**
29
+ * @param {string} value
30
+ */
31
+ set label(arg: string);
32
+ /**
33
+ * @returns {string}
34
+ */
35
+ get label(): string;
36
+ /**
37
+ * @param {GPUComputePipeline} pipeline
38
+ */
39
+ setPipeline(pipeline: GPUComputePipeline): void;
40
+ /**
41
+ * @param {number} x
42
+ * @param {number} [y=1]
43
+ * @param {number} [z=1]
44
+ */
45
+ dispatchWorkgroups(x: number, y?: number, z?: number): void;
46
+ /**
47
+ * @param {GPUBuffer} indirect_buffer
48
+ * @param {number} indirect_offset
49
+ */
50
+ dispatchWorkgroupsIndirect(indirect_buffer: GPUBuffer, indirect_offset: number): void;
51
+ end(): void;
52
+ /**
53
+ * @param {number} index
54
+ * @param {GPUBindGroup} bind_group
55
+ * @param {number[]} [dynamic_offsets]
56
+ */
57
+ setBindGroup(index: number, bind_group: GPUBindGroup, dynamic_offsets?: number[]): void;
58
+ /**
59
+ * The `Uint32Array`-slice form of {@link setBindGroup}.
60
+ *
61
+ * Named apart rather than overloaded on arity. Both forms then pass every argument they
62
+ * declare, so neither can select the other's overload by accident, and the name says at the
63
+ * call site which one is meant.
64
+ *
65
+ * @param {number} index
66
+ * @param {GPUBindGroup} bind_group
67
+ * @param {Uint32Array} dynamic_offsets_data
68
+ * @param {number} data_start
69
+ * @param {number} data_length
70
+ */
71
+ setBindGroupRange(index: number, bind_group: GPUBindGroup, dynamic_offsets_data: Uint32Array, data_start: number, data_length: number): void;
72
+ /**
73
+ * Rest arguments, so the arity that arrives is the arity that leaves — `data_size` has no
74
+ * default to stand in for, and a trailing `undefined` is not the same as an absent argument.
75
+ * @see setBindGroup
76
+ *
77
+ * @param {number} range_offset
78
+ * @param {ArrayBufferView|ArrayBuffer} data
79
+ * @param {number} [data_offset]
80
+ * @param {number} [data_size]
81
+ */
82
+ setImmediates(...args: any[]): void;
83
+ /**
84
+ * @param {string} label
85
+ */
86
+ pushDebugGroup(label: string): void;
87
+ popDebugGroup(): void;
88
+ /**
89
+ * @param {string} label
90
+ */
91
+ insertDebugMarker(label: string): void;
92
+ /**
93
+ * Record which pipeline descriptor this pass ran.
94
+ *
95
+ * Separate from {@link setPipeline} because that receives the compiled
96
+ * {@link GPUComputePipeline}, and neither the label the descriptor was given nor its workgroup
97
+ * size is on it. Only `constructComputePass` holds the descriptor, so a pass begun the long way
98
+ * records its counts but not what ran them — which the model represents as an unknown rather
99
+ * than a zero.
100
+ *
101
+ * @param {ComputePipelineDescriptor} descriptor
102
+ * @returns {void}
103
+ */
104
+ record_pipeline(descriptor: ComputePipelineDescriptor): void;
105
+ #private;
106
+ }
107
+ //# sourceMappingURL=ShadeGPUComputePassEncoder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShadeGPUComputePassEncoder.d.ts","sourceRoot":"","sources":["../../../../../src/shade/device/pass/ShadeGPUComputePassEncoder.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH;IAmBI;;;OAGG;IACH,+CAFW,iBAAe,IAAI,EAO7B;IASD;;OAEG;IACH,uBAEC;IAZD;;OAEG;IACH,oBAEC;IAWD;;OAEG;IACH,gDAEC;IAED;;;;OAIG;IACH,sBAJW,MAAM,MACN,MAAM,MACN,MAAM,QAahB;IAED;;;OAGG;IACH,wEAFW,MAAM,QAYhB;IAED,YAMC;IAID;;;;OAIG;IACH,oBAJW,MAAM,8CAEN,MAAM,EAAE,QAqBlB;IAED;;;;;;;;;;;;OAYG;IACH,yBANW,MAAM,kDAEN,WAAW,cACX,MAAM,eACN,MAAM,QAIhB;IAED;;;;;;;;;OASG;IACH,oCAEC;IAID;;OAEG;IACH,sBAFW,MAAM,QAIhB;IAED,sBAEC;IAED;;OAEG;IACH,yBAFW,MAAM,QAIhB;IAID;;;;;;;;;;;OAWG;IACH,wDAFa,IAAI,CAWhB;;CACJ"}
@@ -0,0 +1,222 @@
1
+ import { assert } from "../../../core/assert.js";
2
+
3
+ /**
4
+ * Decorates {@link GPUComputePassEncoder}.
5
+ *
6
+ * **Every compute pass Shade opens is one of these.** There is no unwrapped path and no conditional
7
+ * wrapping, and that is what makes hand-written forwarding safe: a method missing here is
8
+ * `pass.setPipeline is not a function` on the first frame of every build, rather than a call
9
+ * silently dropped in the one configuration nobody runs. The `Proxy` this replaces forwarded
10
+ * everything by reflection precisely because it was conditional, and a conditional wrapper's
11
+ * defects only appear while profiling.
12
+ *
13
+ * The method names follow WebGPU's to remove friction for anyone who already knows the API. They
14
+ * are **not** a promise of substitutability — see {@link setBindGroupRange}, which is Shade's own
15
+ * name for a form WebGPU resolves by counting arguments.
16
+ *
17
+ * When a capture is running the pass is handed a {@link GPUProfileWork} to tally into. This class
18
+ * imports nothing from the profiler and does not know what a capture is; `work` is a record of
19
+ * counters, and `null` is the ordinary case.
20
+ *
21
+ * @author Alex Goldring
22
+ * @copyright Company Named Limited (c) 2026
23
+ */
24
+ export class ShadeGPUComputePassEncoder {
25
+
26
+ /**
27
+ * @type {GPUComputePassEncoder}
28
+ */
29
+ #pass;
30
+
31
+ /**
32
+ * Where this pass's encoded work is tallied, or null when nothing is profiling.
33
+ *
34
+ * @type {GPUProfileWork|null}
35
+ */
36
+ #work;
37
+
38
+ /**
39
+ * @type {boolean}
40
+ */
41
+ #ended = false;
42
+
43
+ /**
44
+ * @param {GPUComputePassEncoder} pass
45
+ * @param {GPUProfileWork|null} work
46
+ */
47
+ constructor(pass, work) {
48
+ assert.defined(pass, 'pass');
49
+
50
+ this.#pass = pass;
51
+ this.#work = work;
52
+ }
53
+
54
+ /**
55
+ * @returns {string}
56
+ */
57
+ get label() {
58
+ return this.#pass.label;
59
+ }
60
+
61
+ /**
62
+ * @param {string} value
63
+ */
64
+ set label(value) {
65
+ this.#pass.label = value;
66
+ }
67
+
68
+ // --- GPUComputePassEncoder ----------------------------------------------
69
+
70
+ /**
71
+ * @param {GPUComputePipeline} pipeline
72
+ */
73
+ setPipeline(pipeline) {
74
+ this.#pass.setPipeline(pipeline);
75
+ }
76
+
77
+ /**
78
+ * @param {number} x
79
+ * @param {number} [y=1]
80
+ * @param {number} [z=1]
81
+ */
82
+ dispatchWorkgroups(x, y = 1, z = 1) {
83
+ const work = this.#work;
84
+
85
+ if (work !== null) {
86
+ work.dispatch_count++;
87
+ work.workgroups[0] += x;
88
+ work.workgroups[1] += y;
89
+ work.workgroups[2] += z;
90
+ }
91
+
92
+ this.#pass.dispatchWorkgroups(x, y, z);
93
+ }
94
+
95
+ /**
96
+ * @param {GPUBuffer} indirect_buffer
97
+ * @param {number} indirect_offset
98
+ */
99
+ dispatchWorkgroupsIndirect(indirect_buffer, indirect_offset) {
100
+ const work = this.#work;
101
+
102
+ if (work !== null) {
103
+ // Size lives in a GPU buffer, so there is nothing to add to `workgroups`. Counted apart
104
+ // so the totals are not read as covering this.
105
+ work.indirect_dispatch_count++;
106
+ }
107
+
108
+ this.#pass.dispatchWorkgroupsIndirect(indirect_buffer, indirect_offset);
109
+ }
110
+
111
+ end() {
112
+ assert.notOk(this.#ended, 'pass already ended');
113
+
114
+ this.#ended = true;
115
+
116
+ this.#pass.end();
117
+ }
118
+
119
+ // --- GPUBindingCommandsMixin --------------------------------------------
120
+
121
+ /**
122
+ * @param {number} index
123
+ * @param {GPUBindGroup} bind_group
124
+ * @param {number[]} [dynamic_offsets]
125
+ */
126
+ setBindGroup(index, bind_group, dynamic_offsets) {
127
+ /*
128
+ Omitted, not forwarded as `undefined`.
129
+
130
+ `dynamicOffsets` is declared optional with a default of `[]`, which reads as though an
131
+ explicit `undefined` would take that default. Some Chrome builds accept it; others convert
132
+ what they were handed and raise "the provided value cannot be converted to a sequence",
133
+ which takes out every ordinary two-argument call in the renderer. This shipped broken for
134
+ exactly that reason.
135
+
136
+ So the rule this file follows, having learnt it the hard way: forward exactly the arity
137
+ that arrived, and never reason about what a binding layer will do with a trailing
138
+ `undefined`. It costs one branch and it is true on every build.
139
+ */
140
+ if (dynamic_offsets === undefined) {
141
+ this.#pass.setBindGroup(index, bind_group);
142
+ } else {
143
+ this.#pass.setBindGroup(index, bind_group, dynamic_offsets);
144
+ }
145
+ }
146
+
147
+ /**
148
+ * The `Uint32Array`-slice form of {@link setBindGroup}.
149
+ *
150
+ * Named apart rather than overloaded on arity. Both forms then pass every argument they
151
+ * declare, so neither can select the other's overload by accident, and the name says at the
152
+ * call site which one is meant.
153
+ *
154
+ * @param {number} index
155
+ * @param {GPUBindGroup} bind_group
156
+ * @param {Uint32Array} dynamic_offsets_data
157
+ * @param {number} data_start
158
+ * @param {number} data_length
159
+ */
160
+ setBindGroupRange(index, bind_group, dynamic_offsets_data, data_start, data_length) {
161
+ this.#pass.setBindGroup(index, bind_group, dynamic_offsets_data, data_start, data_length);
162
+ }
163
+
164
+ /**
165
+ * Rest arguments, so the arity that arrives is the arity that leaves — `data_size` has no
166
+ * default to stand in for, and a trailing `undefined` is not the same as an absent argument.
167
+ * @see setBindGroup
168
+ *
169
+ * @param {number} range_offset
170
+ * @param {ArrayBufferView|ArrayBuffer} data
171
+ * @param {number} [data_offset]
172
+ * @param {number} [data_size]
173
+ */
174
+ setImmediates(...args) {
175
+ this.#pass.setImmediates(...args);
176
+ }
177
+
178
+ // --- GPUDebugCommandsMixin ----------------------------------------------
179
+
180
+ /**
181
+ * @param {string} label
182
+ */
183
+ pushDebugGroup(label) {
184
+ this.#pass.pushDebugGroup(label);
185
+ }
186
+
187
+ popDebugGroup() {
188
+ this.#pass.popDebugGroup();
189
+ }
190
+
191
+ /**
192
+ * @param {string} label
193
+ */
194
+ insertDebugMarker(label) {
195
+ this.#pass.insertDebugMarker(label);
196
+ }
197
+
198
+ // --- Shade --------------------------------------------------------------
199
+
200
+ /**
201
+ * Record which pipeline descriptor this pass ran.
202
+ *
203
+ * Separate from {@link setPipeline} because that receives the compiled
204
+ * {@link GPUComputePipeline}, and neither the label the descriptor was given nor its workgroup
205
+ * size is on it. Only `constructComputePass` holds the descriptor, so a pass begun the long way
206
+ * records its counts but not what ran them — which the model represents as an unknown rather
207
+ * than a zero.
208
+ *
209
+ * @param {ComputePipelineDescriptor} descriptor
210
+ * @returns {void}
211
+ */
212
+ record_pipeline(descriptor) {
213
+ const work = this.#work;
214
+
215
+ if (work === null) {
216
+ return;
217
+ }
218
+
219
+ work.pipeline = descriptor.label ?? "";
220
+ work.workgroup_size = descriptor.workgroup_size;
221
+ }
222
+ }
@@ -0,0 +1,168 @@
1
+ /**
2
+ * Decorates {@link GPURenderPassEncoder}.
3
+ *
4
+ * The render half of {@link ShadeGPUComputePassEncoder} — see there for why the forwarding is
5
+ * hand-written, why every pass is wrapped rather than only the profiled ones, and what `work` is.
6
+ *
7
+ * **Known blind spot:** draws inside a {@link GPURenderBundle} handed to {@link executeBundles} are
8
+ * not counted, because the bundle was encoded somewhere this pass never saw. The `Proxy` this
9
+ * replaces had the same gap and nothing in Shade uses bundles.
10
+ *
11
+ * @author Alex Goldring
12
+ * @copyright Company Named Limited (c) 2026
13
+ */
14
+ export class ShadeGPURenderPassEncoder {
15
+ /**
16
+ * @param {GPURenderPassEncoder} pass
17
+ * @param {GPUProfileWork|null} work
18
+ */
19
+ constructor(pass: GPURenderPassEncoder, work: GPUProfileWork | null);
20
+ /**
21
+ * @param {string} value
22
+ */
23
+ set label(arg: string);
24
+ /**
25
+ * @returns {string}
26
+ */
27
+ get label(): string;
28
+ /**
29
+ * @param {number} x
30
+ * @param {number} y
31
+ * @param {number} width
32
+ * @param {number} height
33
+ * @param {number} min_depth
34
+ * @param {number} max_depth
35
+ */
36
+ setViewport(x: number, y: number, width: number, height: number, min_depth: number, max_depth: number): void;
37
+ /**
38
+ * @param {number} x
39
+ * @param {number} y
40
+ * @param {number} width
41
+ * @param {number} height
42
+ */
43
+ setScissorRect(x: number, y: number, width: number, height: number): void;
44
+ /**
45
+ * @param {GPUColor} color
46
+ */
47
+ setBlendConstant(color: GPUColor): void;
48
+ /**
49
+ * @param {number} reference
50
+ */
51
+ setStencilReference(reference: number): void;
52
+ /**
53
+ * @param {number} query_index
54
+ */
55
+ beginOcclusionQuery(query_index: number): void;
56
+ endOcclusionQuery(): void;
57
+ /**
58
+ * @param {Iterable<GPURenderBundle>} bundles
59
+ */
60
+ executeBundles(bundles: Iterable<GPURenderBundle>): void;
61
+ end(): void;
62
+ /**
63
+ * @param {GPURenderPipeline} pipeline
64
+ */
65
+ setPipeline(pipeline: GPURenderPipeline): void;
66
+ /**
67
+ * Rest arguments, so the arity that arrives is the arity that leaves — `size` has no default to
68
+ * stand in for, it means "the rest of the buffer", and a trailing `undefined` is not the same
69
+ * as an absent argument.
70
+ * @see ShadeGPUComputePassEncoder#setBindGroup
71
+ *
72
+ * @param {GPUBuffer} buffer
73
+ * @param {GPUIndexFormat} index_format
74
+ * @param {number} [offset]
75
+ * @param {number} [size]
76
+ */
77
+ setIndexBuffer(...args: any[]): void;
78
+ /**
79
+ * Rest arguments, for the reason given on {@link setIndexBuffer}.
80
+ *
81
+ * @param {number} slot
82
+ * @param {GPUBuffer} buffer
83
+ * @param {number} [offset]
84
+ * @param {number} [size]
85
+ */
86
+ setVertexBuffer(...args: any[]): void;
87
+ /**
88
+ * Named parameters rather than rest arguments, because the counts have to be read — and the
89
+ * defaults are WebGPU's own, so materialising them here passes four defined values instead of
90
+ * a trailing `undefined`. @see ShadeGPUComputePassEncoder#setBindGroup
91
+ *
92
+ * @param {number} vertex_count
93
+ * @param {number} [instance_count=1]
94
+ * @param {number} [first_vertex=0]
95
+ * @param {number} [first_instance=0]
96
+ */
97
+ draw(vertex_count: number, instance_count?: number, first_vertex?: number, first_instance?: number): void;
98
+ /**
99
+ * Named parameters with WebGPU's own defaults, for the reason given on {@link draw}.
100
+ *
101
+ * @param {number} index_count
102
+ * @param {number} [instance_count=1]
103
+ * @param {number} [first_index=0]
104
+ * @param {number} [base_vertex=0]
105
+ * @param {number} [first_instance=0]
106
+ */
107
+ drawIndexed(index_count: number, instance_count?: number, first_index?: number, base_vertex?: number, first_instance?: number): void;
108
+ /**
109
+ * @param {GPUBuffer} indirect_buffer
110
+ * @param {number} indirect_offset
111
+ */
112
+ drawIndirect(indirect_buffer: GPUBuffer, indirect_offset: number): void;
113
+ /**
114
+ * @param {GPUBuffer} indirect_buffer
115
+ * @param {number} indirect_offset
116
+ */
117
+ drawIndexedIndirect(indirect_buffer: GPUBuffer, indirect_offset: number): void;
118
+ /**
119
+ * @see ShadeGPUComputePassEncoder#setBindGroup for why the third argument is omitted rather
120
+ * than forwarded as `undefined`
121
+ *
122
+ * @param {number} index
123
+ * @param {GPUBindGroup} bind_group
124
+ * @param {number[]} [dynamic_offsets]
125
+ */
126
+ setBindGroup(index: number, bind_group: GPUBindGroup, dynamic_offsets?: number[]): void;
127
+ /**
128
+ * The `Uint32Array`-slice form of {@link setBindGroup}.
129
+ *
130
+ * @see ShadeGPUComputePassEncoder#setBindGroupRange for why this is named rather than overloaded
131
+ *
132
+ * @param {number} index
133
+ * @param {GPUBindGroup} bind_group
134
+ * @param {Uint32Array} dynamic_offsets_data
135
+ * @param {number} data_start
136
+ * @param {number} data_length
137
+ */
138
+ setBindGroupRange(index: number, bind_group: GPUBindGroup, dynamic_offsets_data: Uint32Array, data_start: number, data_length: number): void;
139
+ /**
140
+ * Rest arguments, for the reason given on {@link setIndexBuffer}.
141
+ *
142
+ * @param {number} range_offset
143
+ * @param {ArrayBufferView|ArrayBuffer} data
144
+ * @param {number} [data_offset]
145
+ * @param {number} [data_size]
146
+ */
147
+ setImmediates(...args: any[]): void;
148
+ /**
149
+ * @param {string} label
150
+ */
151
+ pushDebugGroup(label: string): void;
152
+ popDebugGroup(): void;
153
+ /**
154
+ * @param {string} label
155
+ */
156
+ insertDebugMarker(label: string): void;
157
+ /**
158
+ * Record which pipeline descriptor this pass ran.
159
+ *
160
+ * @see ShadeGPUComputePassEncoder#record_pipeline
161
+ *
162
+ * @param {RenderPipelineDescriptor} descriptor
163
+ * @returns {void}
164
+ */
165
+ record_pipeline(descriptor: RenderPipelineDescriptor): void;
166
+ #private;
167
+ }
168
+ //# sourceMappingURL=ShadeGPURenderPassEncoder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShadeGPURenderPassEncoder.d.ts","sourceRoot":"","sources":["../../../../../src/shade/device/pass/ShadeGPURenderPassEncoder.js"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH;IAmBI;;;OAGG;IACH,8CAFW,iBAAe,IAAI,EAO7B;IASD;;OAEG;IACH,uBAEC;IAZD;;OAEG;IACH,oBAEC;IAWD;;;;;;;OAOG;IACH,eAPW,MAAM,KACN,MAAM,SACN,MAAM,UACN,MAAM,aACN,MAAM,aACN,MAAM,QAIhB;IAED;;;;;OAKG;IACH,kBALW,MAAM,KACN,MAAM,SACN,MAAM,UACN,MAAM,QAIhB;IAED;;OAEG;IACH,wCAEC;IAED;;OAEG;IACH,+BAFW,MAAM,QAIhB;IAED;;OAEG;IACH,iCAFW,MAAM,QAIhB;IAED,0BAEC;IAED;;OAEG;IACH,wBAFW,yBAAyB,QAInC;IAED,YAMC;IAID;;OAEG;IACH,+CAEC;IAED;;;;;;;;;;OAUG;IACH,qCAEC;IAED;;;;;;;OAOG;IACH,sCAEC;IAED;;;;;;;;;OASG;IACH,mBALW,MAAM,mBACN,MAAM,iBACN,MAAM,mBACN,MAAM,QAYhB;IAED;;;;;;;;OAQG;IACH,yBANW,MAAM,mBACN,MAAM,gBACN,MAAM,gBACN,MAAM,mBACN,MAAM,QAYhB;IAED;;;OAGG;IACH,0DAFW,MAAM,QAYhB;IAED;;;OAGG;IACH,iEAFW,MAAM,QAUhB;IAID;;;;;;;OAOG;IACH,oBAJW,MAAM,8CAEN,MAAM,EAAE,QAQlB;IAED;;;;;;;;;;OAUG;IACH,yBANW,MAAM,kDAEN,WAAW,cACX,MAAM,eACN,MAAM,QAIhB;IAED;;;;;;;OAOG;IACH,oCAEC;IAID;;OAEG;IACH,sBAFW,MAAM,QAIhB;IAED,sBAEC;IAED;;OAEG;IACH,yBAFW,MAAM,QAIhB;IAID;;;;;;;OAOG;IACH,uDAFa,IAAI,CAUhB;;CACJ"}