react-native-wgpu 0.5.13 → 0.5.15

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 (409) hide show
  1. package/README.md +4 -398
  2. package/lib/commonjs/index.js +7 -4
  3. package/lib/commonjs/index.js.map +1 -1
  4. package/lib/module/index.js +4 -4
  5. package/lib/module/index.js.map +1 -1
  6. package/lib/typescript/{src → webgpu/src}/Canvas.d.ts +9 -0
  7. package/lib/typescript/webgpu/src/Canvas.d.ts.map +1 -0
  8. package/lib/typescript/webgpu/src/NativeWebGPUModule.d.ts.map +1 -0
  9. package/lib/typescript/webgpu/src/Offscreen.d.ts.map +1 -0
  10. package/lib/typescript/webgpu/src/WebGPUViewNativeComponent.d.ts.map +1 -0
  11. package/lib/typescript/webgpu/src/constants.d.ts +6 -0
  12. package/lib/typescript/webgpu/src/constants.d.ts.map +1 -0
  13. package/lib/typescript/webgpu/src/external/ModuleProxy.d.ts.map +1 -0
  14. package/lib/typescript/webgpu/src/external/index.d.ts.map +1 -0
  15. package/lib/typescript/webgpu/src/external/reanimated/ReanimatedProxy.d.ts.map +1 -0
  16. package/lib/typescript/webgpu/src/external/reanimated/index.d.ts.map +1 -0
  17. package/lib/typescript/webgpu/src/external/reanimated/registerWebGPUForReanimated.d.ts.map +1 -0
  18. package/lib/typescript/webgpu/src/hooks.d.ts.map +1 -0
  19. package/lib/typescript/{src → webgpu/src}/index.d.ts +5 -2
  20. package/lib/typescript/webgpu/src/index.d.ts.map +1 -0
  21. package/lib/typescript/webgpu/src/install.d.ts +34 -0
  22. package/lib/typescript/webgpu/src/install.d.ts.map +1 -0
  23. package/lib/typescript/webgpu/src/main/index.d.ts.map +1 -0
  24. package/lib/typescript/{src → webgpu/src}/types.d.ts +34 -2
  25. package/lib/typescript/webgpu/src/types.d.ts.map +1 -0
  26. package/lib/typescript/{eslint.config.d.mts.map → webgpu-shim/eslint.config.d.mts.map} +1 -1
  27. package/lib/typescript/{lib → webgpu-shim/lib}/commonjs/index.d.ts.map +1 -1
  28. package/lib/typescript/webgpu-shim/lib/module/index.d.ts +2 -0
  29. package/lib/typescript/{lib → webgpu-shim/lib}/module/index.d.ts.map +1 -1
  30. package/lib/typescript/webgpu-shim/src/index.d.ts +2 -0
  31. package/lib/typescript/webgpu-shim/src/index.d.ts.map +1 -0
  32. package/package.json +12 -81
  33. package/src/index.ts +9 -0
  34. package/LICENSE +0 -20
  35. package/android/CMakeLists.txt +0 -110
  36. package/android/build.gradle +0 -138
  37. package/android/cpp/AndroidPlatformContext.h +0 -328
  38. package/android/cpp/cpp-adapter.cpp +0 -71
  39. package/android/src/main/AndroidManifest.xml +0 -3
  40. package/android/src/main/java/com/webgpu/WebGPUAHBView.java +0 -298
  41. package/android/src/main/java/com/webgpu/WebGPUAPI.java +0 -20
  42. package/android/src/main/java/com/webgpu/WebGPUBaseView.java +0 -61
  43. package/android/src/main/java/com/webgpu/WebGPUModule.java +0 -50
  44. package/android/src/main/java/com/webgpu/WebGPUSurfaceView.java +0 -41
  45. package/android/src/main/java/com/webgpu/WebGPUSurfaceViewWithSC.java +0 -79
  46. package/android/src/main/java/com/webgpu/WebGPUTextureView.java +0 -46
  47. package/android/src/main/java/com/webgpu/WebGPUView.java +0 -108
  48. package/android/src/main/java/com/webgpu/WebGPUViewManager.java +0 -38
  49. package/android/src/main/java/com/webgpu/WebGPUViewPackage.java +0 -50
  50. package/android/src/newarch/com/webgpu/WebGPUViewManagerSpec.java +0 -24
  51. package/apple/ApplePlatformContext.h +0 -44
  52. package/apple/ApplePlatformContext.mm +0 -302
  53. package/apple/AppleVideoPlayer.h +0 -31
  54. package/apple/AppleVideoPlayer.mm +0 -314
  55. package/apple/MetalView.h +0 -13
  56. package/apple/MetalView.mm +0 -50
  57. package/apple/RNWGUIKit.h +0 -16
  58. package/apple/WebGPUModule.h +0 -13
  59. package/apple/WebGPUModule.mm +0 -89
  60. package/apple/WebGPUView.h +0 -12
  61. package/apple/WebGPUView.mm +0 -66
  62. package/cpp/WGPULogger.h +0 -100
  63. package/cpp/dawn_logging.cpp +0 -119
  64. package/cpp/jsi/EnumMapper.h +0 -45
  65. package/cpp/jsi/JSIConverter.h +0 -473
  66. package/cpp/jsi/NativeObject.h +0 -607
  67. package/cpp/jsi/Promise.cpp +0 -44
  68. package/cpp/jsi/Promise.h +0 -35
  69. package/cpp/jsi/RuntimeAwareCache.cpp +0 -7
  70. package/cpp/jsi/RuntimeAwareCache.h +0 -100
  71. package/cpp/jsi/RuntimeLifecycleMonitor.cpp +0 -72
  72. package/cpp/jsi/RuntimeLifecycleMonitor.h +0 -32
  73. package/cpp/rnwgpu/ArrayBuffer.h +0 -117
  74. package/cpp/rnwgpu/PlatformContext.h +0 -127
  75. package/cpp/rnwgpu/RNWebGPUManager.cpp +0 -237
  76. package/cpp/rnwgpu/RNWebGPUManager.h +0 -46
  77. package/cpp/rnwgpu/SurfaceRegistry.h +0 -230
  78. package/cpp/rnwgpu/api/Canvas.h +0 -57
  79. package/cpp/rnwgpu/api/Convertors.h +0 -783
  80. package/cpp/rnwgpu/api/External.h +0 -12
  81. package/cpp/rnwgpu/api/GPU.cpp +0 -154
  82. package/cpp/rnwgpu/api/GPU.h +0 -58
  83. package/cpp/rnwgpu/api/GPUAdapter.cpp +0 -267
  84. package/cpp/rnwgpu/api/GPUAdapter.h +0 -59
  85. package/cpp/rnwgpu/api/GPUAdapterInfo.h +0 -57
  86. package/cpp/rnwgpu/api/GPUBindGroup.cpp +0 -3
  87. package/cpp/rnwgpu/api/GPUBindGroup.h +0 -51
  88. package/cpp/rnwgpu/api/GPUBindGroupLayout.h +0 -52
  89. package/cpp/rnwgpu/api/GPUBuffer.cpp +0 -97
  90. package/cpp/rnwgpu/api/GPUBuffer.h +0 -87
  91. package/cpp/rnwgpu/api/GPUCanvasContext.cpp +0 -67
  92. package/cpp/rnwgpu/api/GPUCanvasContext.h +0 -66
  93. package/cpp/rnwgpu/api/GPUCommandBuffer.h +0 -45
  94. package/cpp/rnwgpu/api/GPUCommandEncoder.cpp +0 -179
  95. package/cpp/rnwgpu/api/GPUCommandEncoder.h +0 -111
  96. package/cpp/rnwgpu/api/GPUCompilationInfo.h +0 -79
  97. package/cpp/rnwgpu/api/GPUCompilationMessage.h +0 -36
  98. package/cpp/rnwgpu/api/GPUComputePassEncoder.cpp +0 -60
  99. package/cpp/rnwgpu/api/GPUComputePassEncoder.h +0 -85
  100. package/cpp/rnwgpu/api/GPUComputePipeline.cpp +0 -12
  101. package/cpp/rnwgpu/api/GPUComputePipeline.h +0 -60
  102. package/cpp/rnwgpu/api/GPUDevice.cpp +0 -545
  103. package/cpp/rnwgpu/api/GPUDevice.h +0 -265
  104. package/cpp/rnwgpu/api/GPUDeviceLostInfo.cpp +0 -7
  105. package/cpp/rnwgpu/api/GPUDeviceLostInfo.h +0 -40
  106. package/cpp/rnwgpu/api/GPUError.h +0 -35
  107. package/cpp/rnwgpu/api/GPUExtent3D.h +0 -66
  108. package/cpp/rnwgpu/api/GPUExternalTexture.cpp +0 -335
  109. package/cpp/rnwgpu/api/GPUExternalTexture.h +0 -90
  110. package/cpp/rnwgpu/api/GPUFeatures.h +0 -206
  111. package/cpp/rnwgpu/api/GPUInternalError.h +0 -31
  112. package/cpp/rnwgpu/api/GPUOrigin2D.h +0 -55
  113. package/cpp/rnwgpu/api/GPUOrigin3D.h +0 -62
  114. package/cpp/rnwgpu/api/GPUOutOfMemoryError.h +0 -33
  115. package/cpp/rnwgpu/api/GPUPipelineLayout.h +0 -45
  116. package/cpp/rnwgpu/api/GPUQuerySet.cpp +0 -11
  117. package/cpp/rnwgpu/api/GPUQuerySet.h +0 -73
  118. package/cpp/rnwgpu/api/GPUQueue.cpp +0 -169
  119. package/cpp/rnwgpu/api/GPUQueue.h +0 -81
  120. package/cpp/rnwgpu/api/GPURenderBundle.h +0 -44
  121. package/cpp/rnwgpu/api/GPURenderBundleEncoder.cpp +0 -131
  122. package/cpp/rnwgpu/api/GPURenderBundleEncoder.h +0 -110
  123. package/cpp/rnwgpu/api/GPURenderPassEncoder.cpp +0 -165
  124. package/cpp/rnwgpu/api/GPURenderPassEncoder.h +0 -130
  125. package/cpp/rnwgpu/api/GPURenderPipeline.cpp +0 -13
  126. package/cpp/rnwgpu/api/GPURenderPipeline.h +0 -61
  127. package/cpp/rnwgpu/api/GPUSampler.h +0 -44
  128. package/cpp/rnwgpu/api/GPUShaderModule.cpp +0 -50
  129. package/cpp/rnwgpu/api/GPUShaderModule.h +0 -66
  130. package/cpp/rnwgpu/api/GPUSharedTextureMemory.cpp +0 -80
  131. package/cpp/rnwgpu/api/GPUSharedTextureMemory.h +0 -71
  132. package/cpp/rnwgpu/api/GPUSupportedLimits.cpp +0 -129
  133. package/cpp/rnwgpu/api/GPUSupportedLimits.h +0 -131
  134. package/cpp/rnwgpu/api/GPUTexture.cpp +0 -47
  135. package/cpp/rnwgpu/api/GPUTexture.h +0 -162
  136. package/cpp/rnwgpu/api/GPUTextureView.h +0 -44
  137. package/cpp/rnwgpu/api/GPUUncapturedErrorEvent.h +0 -71
  138. package/cpp/rnwgpu/api/GPUValidationError.h +0 -32
  139. package/cpp/rnwgpu/api/ImageBitmap.h +0 -48
  140. package/cpp/rnwgpu/api/RNWebGPU.h +0 -241
  141. package/cpp/rnwgpu/api/RnFeatures.h +0 -53
  142. package/cpp/rnwgpu/api/VideoFrame.h +0 -76
  143. package/cpp/rnwgpu/api/VideoPlayer.h +0 -69
  144. package/cpp/rnwgpu/api/descriptors/GPUBindGroupDescriptor.h +0 -65
  145. package/cpp/rnwgpu/api/descriptors/GPUBindGroupEntry.h +0 -81
  146. package/cpp/rnwgpu/api/descriptors/GPUBindGroupLayoutDescriptor.h +0 -57
  147. package/cpp/rnwgpu/api/descriptors/GPUBindGroupLayoutEntry.h +0 -98
  148. package/cpp/rnwgpu/api/descriptors/GPUBlendComponent.h +0 -58
  149. package/cpp/rnwgpu/api/descriptors/GPUBlendState.h +0 -53
  150. package/cpp/rnwgpu/api/descriptors/GPUBufferBinding.h +0 -57
  151. package/cpp/rnwgpu/api/descriptors/GPUBufferBindingLayout.h +0 -57
  152. package/cpp/rnwgpu/api/descriptors/GPUBufferDescriptor.h +0 -60
  153. package/cpp/rnwgpu/api/descriptors/GPUBufferUsage.h +0 -39
  154. package/cpp/rnwgpu/api/descriptors/GPUCanvasConfiguration.h +0 -76
  155. package/cpp/rnwgpu/api/descriptors/GPUColor.h +0 -67
  156. package/cpp/rnwgpu/api/descriptors/GPUColorTargetState.h +0 -59
  157. package/cpp/rnwgpu/api/descriptors/GPUColorWrite.h +0 -29
  158. package/cpp/rnwgpu/api/descriptors/GPUCommandBufferDescriptor.h +0 -46
  159. package/cpp/rnwgpu/api/descriptors/GPUCommandEncoderDescriptor.h +0 -46
  160. package/cpp/rnwgpu/api/descriptors/GPUComputePassDescriptor.h +0 -57
  161. package/cpp/rnwgpu/api/descriptors/GPUComputePassTimestampWrites.h +0 -59
  162. package/cpp/rnwgpu/api/descriptors/GPUComputePipelineDescriptor.h +0 -68
  163. package/cpp/rnwgpu/api/descriptors/GPUDawnTogglesDescriptor.h +0 -57
  164. package/cpp/rnwgpu/api/descriptors/GPUDepthStencilState.h +0 -104
  165. package/cpp/rnwgpu/api/descriptors/GPUDeviceDescriptor.h +0 -115
  166. package/cpp/rnwgpu/api/descriptors/GPUExternalTextureBindingLayout.h +0 -39
  167. package/cpp/rnwgpu/api/descriptors/GPUExternalTextureDescriptor.h +0 -82
  168. package/cpp/rnwgpu/api/descriptors/GPUFragmentState.h +0 -74
  169. package/cpp/rnwgpu/api/descriptors/GPUImageCopyBuffer.h +0 -63
  170. package/cpp/rnwgpu/api/descriptors/GPUImageCopyExternalImage.h +0 -63
  171. package/cpp/rnwgpu/api/descriptors/GPUImageCopyTexture.h +0 -66
  172. package/cpp/rnwgpu/api/descriptors/GPUImageCopyTextureTagged.h +0 -82
  173. package/cpp/rnwgpu/api/descriptors/GPUImageDataLayout.h +0 -55
  174. package/cpp/rnwgpu/api/descriptors/GPUMapMode.h +0 -22
  175. package/cpp/rnwgpu/api/descriptors/GPUMultisampleState.h +0 -55
  176. package/cpp/rnwgpu/api/descriptors/GPUPipelineLayoutDescriptor.h +0 -58
  177. package/cpp/rnwgpu/api/descriptors/GPUPrimitiveState.h +0 -70
  178. package/cpp/rnwgpu/api/descriptors/GPUProgrammableStage.h +0 -62
  179. package/cpp/rnwgpu/api/descriptors/GPUQuerySetDescriptor.h +0 -56
  180. package/cpp/rnwgpu/api/descriptors/GPUQueueDescriptor.h +0 -44
  181. package/cpp/rnwgpu/api/descriptors/GPURenderBundleDescriptor.h +0 -46
  182. package/cpp/rnwgpu/api/descriptors/GPURenderBundleEncoderDescriptor.h +0 -81
  183. package/cpp/rnwgpu/api/descriptors/GPURenderPassColorAttachment.h +0 -82
  184. package/cpp/rnwgpu/api/descriptors/GPURenderPassDepthStencilAttachment.h +0 -102
  185. package/cpp/rnwgpu/api/descriptors/GPURenderPassDescriptor.h +0 -93
  186. package/cpp/rnwgpu/api/descriptors/GPURenderPassTimestampWrites.h +0 -59
  187. package/cpp/rnwgpu/api/descriptors/GPURenderPipelineDescriptor.h +0 -104
  188. package/cpp/rnwgpu/api/descriptors/GPURequestAdapterOptions.h +0 -52
  189. package/cpp/rnwgpu/api/descriptors/GPUSamplerBindingLayout.h +0 -46
  190. package/cpp/rnwgpu/api/descriptors/GPUSamplerDescriptor.h +0 -111
  191. package/cpp/rnwgpu/api/descriptors/GPUShaderModuleCompilationHint.h +0 -61
  192. package/cpp/rnwgpu/api/descriptors/GPUShaderModuleDescriptor.h +0 -63
  193. package/cpp/rnwgpu/api/descriptors/GPUShaderStage.h +0 -25
  194. package/cpp/rnwgpu/api/descriptors/GPUSharedTextureMemoryDescriptor.h +0 -62
  195. package/cpp/rnwgpu/api/descriptors/GPUStencilFaceState.h +0 -65
  196. package/cpp/rnwgpu/api/descriptors/GPUStorageTextureBindingLayout.h +0 -60
  197. package/cpp/rnwgpu/api/descriptors/GPUTextureBindingLayout.h +0 -60
  198. package/cpp/rnwgpu/api/descriptors/GPUTextureDescriptor.h +0 -92
  199. package/cpp/rnwgpu/api/descriptors/GPUTextureUsage.h +0 -29
  200. package/cpp/rnwgpu/api/descriptors/GPUTextureViewDescriptor.h +0 -92
  201. package/cpp/rnwgpu/api/descriptors/GPUUncapturedErrorEventInit.h +0 -65
  202. package/cpp/rnwgpu/api/descriptors/GPUVertexAttribute.h +0 -54
  203. package/cpp/rnwgpu/api/descriptors/GPUVertexBufferLayout.h +0 -63
  204. package/cpp/rnwgpu/api/descriptors/GPUVertexState.h +0 -74
  205. package/cpp/rnwgpu/api/descriptors/Unions.h +0 -1979
  206. package/cpp/rnwgpu/async/AsyncDispatcher.h +0 -28
  207. package/cpp/rnwgpu/async/AsyncRunner.cpp +0 -215
  208. package/cpp/rnwgpu/async/AsyncRunner.h +0 -53
  209. package/cpp/rnwgpu/async/AsyncTaskHandle.cpp +0 -181
  210. package/cpp/rnwgpu/async/AsyncTaskHandle.h +0 -55
  211. package/cpp/rnwgpu/async/JSIMicrotaskDispatcher.cpp +0 -23
  212. package/cpp/rnwgpu/async/JSIMicrotaskDispatcher.h +0 -22
  213. package/cpp/webgpu/webgpu.h +0 -4979
  214. package/cpp/webgpu/webgpu_cpp.h +0 -10059
  215. package/cpp/webgpu/webgpu_cpp_chained_struct.h +0 -57
  216. package/cpp/webgpu/webgpu_cpp_print.h +0 -2844
  217. package/cpp/webgpu/webgpu_enum_class_bitmasks.h +0 -161
  218. package/lib/commonjs/Canvas.js +0 -55
  219. package/lib/commonjs/Canvas.js.map +0 -1
  220. package/lib/commonjs/NativeWebGPUModule.js +0 -10
  221. package/lib/commonjs/NativeWebGPUModule.js.map +0 -1
  222. package/lib/commonjs/Offscreen.js +0 -103
  223. package/lib/commonjs/Offscreen.js.map +0 -1
  224. package/lib/commonjs/WebGPUViewNativeComponent.js +0 -10
  225. package/lib/commonjs/WebGPUViewNativeComponent.js.map +0 -1
  226. package/lib/commonjs/WebGPUViewNativeComponent.web.js +0 -103
  227. package/lib/commonjs/WebGPUViewNativeComponent.web.js.map +0 -1
  228. package/lib/commonjs/WebPolyfillGPUModule.js +0 -40
  229. package/lib/commonjs/WebPolyfillGPUModule.js.map +0 -1
  230. package/lib/commonjs/external/ModuleProxy.js +0 -36
  231. package/lib/commonjs/external/ModuleProxy.js.map +0 -1
  232. package/lib/commonjs/external/index.js +0 -17
  233. package/lib/commonjs/external/index.js.map +0 -1
  234. package/lib/commonjs/external/reanimated/ReanimatedProxy.js +0 -18
  235. package/lib/commonjs/external/reanimated/ReanimatedProxy.js.map +0 -1
  236. package/lib/commonjs/external/reanimated/index.js +0 -21
  237. package/lib/commonjs/external/reanimated/index.js.map +0 -1
  238. package/lib/commonjs/external/reanimated/registerWebGPUForReanimated.js +0 -49
  239. package/lib/commonjs/external/reanimated/registerWebGPUForReanimated.js.map +0 -1
  240. package/lib/commonjs/hooks.js +0 -83
  241. package/lib/commonjs/hooks.js.map +0 -1
  242. package/lib/commonjs/main/index.js +0 -91
  243. package/lib/commonjs/main/index.js.map +0 -1
  244. package/lib/commonjs/main/index.web.js +0 -51
  245. package/lib/commonjs/main/index.web.js.map +0 -1
  246. package/lib/commonjs/types.js +0 -2
  247. package/lib/commonjs/types.js.map +0 -1
  248. package/lib/commonjs/utils.js +0 -11
  249. package/lib/commonjs/utils.js.map +0 -1
  250. package/lib/module/Canvas.js +0 -46
  251. package/lib/module/Canvas.js.map +0 -1
  252. package/lib/module/NativeWebGPUModule.js +0 -4
  253. package/lib/module/NativeWebGPUModule.js.map +0 -1
  254. package/lib/module/Offscreen.js +0 -96
  255. package/lib/module/Offscreen.js.map +0 -1
  256. package/lib/module/WebGPUViewNativeComponent.js +0 -4
  257. package/lib/module/WebGPUViewNativeComponent.js.map +0 -1
  258. package/lib/module/WebGPUViewNativeComponent.web.js +0 -96
  259. package/lib/module/WebGPUViewNativeComponent.web.js.map +0 -1
  260. package/lib/module/WebPolyfillGPUModule.js +0 -38
  261. package/lib/module/WebPolyfillGPUModule.js.map +0 -1
  262. package/lib/module/external/ModuleProxy.js +0 -28
  263. package/lib/module/external/ModuleProxy.js.map +0 -1
  264. package/lib/module/external/index.js +0 -2
  265. package/lib/module/external/index.js.map +0 -1
  266. package/lib/module/external/reanimated/ReanimatedProxy.js +0 -12
  267. package/lib/module/external/reanimated/ReanimatedProxy.js.map +0 -1
  268. package/lib/module/external/reanimated/index.js +0 -3
  269. package/lib/module/external/reanimated/index.js.map +0 -1
  270. package/lib/module/external/reanimated/registerWebGPUForReanimated.js +0 -42
  271. package/lib/module/external/reanimated/registerWebGPUForReanimated.js.map +0 -1
  272. package/lib/module/hooks.js +0 -70
  273. package/lib/module/hooks.js.map +0 -1
  274. package/lib/module/main/index.js +0 -33
  275. package/lib/module/main/index.js.map +0 -1
  276. package/lib/module/main/index.web.js +0 -8
  277. package/lib/module/main/index.web.js.map +0 -1
  278. package/lib/module/types.js +0 -2
  279. package/lib/module/types.js.map +0 -1
  280. package/lib/module/utils.js +0 -5
  281. package/lib/module/utils.js.map +0 -1
  282. package/lib/typescript/babel.config.d.ts +0 -3
  283. package/lib/typescript/babel.config.d.ts.map +0 -1
  284. package/lib/typescript/jest.config.d.ts +0 -9
  285. package/lib/typescript/jest.config.d.ts.map +0 -1
  286. package/lib/typescript/lib/commonjs/Canvas.d.ts +0 -7
  287. package/lib/typescript/lib/commonjs/Canvas.d.ts.map +0 -1
  288. package/lib/typescript/lib/commonjs/NativeWebGPUModule.d.ts +0 -5
  289. package/lib/typescript/lib/commonjs/NativeWebGPUModule.d.ts.map +0 -1
  290. package/lib/typescript/lib/commonjs/Offscreen.d.ts +0 -26
  291. package/lib/typescript/lib/commonjs/Offscreen.d.ts.map +0 -1
  292. package/lib/typescript/lib/commonjs/WebGPUViewNativeComponent.d.ts +0 -5
  293. package/lib/typescript/lib/commonjs/WebGPUViewNativeComponent.d.ts.map +0 -1
  294. package/lib/typescript/lib/commonjs/WebGPUViewNativeComponent.web.d.ts +0 -4
  295. package/lib/typescript/lib/commonjs/WebGPUViewNativeComponent.web.d.ts.map +0 -1
  296. package/lib/typescript/lib/commonjs/WebPolyfillGPUModule.d.ts +0 -2
  297. package/lib/typescript/lib/commonjs/WebPolyfillGPUModule.d.ts.map +0 -1
  298. package/lib/typescript/lib/commonjs/external/ModuleProxy.d.ts +0 -12
  299. package/lib/typescript/lib/commonjs/external/ModuleProxy.d.ts.map +0 -1
  300. package/lib/typescript/lib/commonjs/external/index.d.ts.map +0 -1
  301. package/lib/typescript/lib/commonjs/external/reanimated/ReanimatedProxy.d.ts +0 -6
  302. package/lib/typescript/lib/commonjs/external/reanimated/ReanimatedProxy.d.ts.map +0 -1
  303. package/lib/typescript/lib/commonjs/external/reanimated/index.d.ts +0 -4
  304. package/lib/typescript/lib/commonjs/external/reanimated/index.d.ts.map +0 -1
  305. package/lib/typescript/lib/commonjs/external/reanimated/registerWebGPUForReanimated.d.ts +0 -9
  306. package/lib/typescript/lib/commonjs/external/reanimated/registerWebGPUForReanimated.d.ts.map +0 -1
  307. package/lib/typescript/lib/commonjs/hooks.d.ts +0 -18
  308. package/lib/typescript/lib/commonjs/hooks.d.ts.map +0 -1
  309. package/lib/typescript/lib/commonjs/index.d.ts +0 -2
  310. package/lib/typescript/lib/commonjs/main/index.d.ts +0 -3
  311. package/lib/typescript/lib/commonjs/main/index.d.ts.map +0 -1
  312. package/lib/typescript/lib/commonjs/main/index.web.d.ts +0 -2
  313. package/lib/typescript/lib/commonjs/main/index.web.d.ts.map +0 -1
  314. package/lib/typescript/lib/commonjs/types.d.ts +0 -1
  315. package/lib/typescript/lib/commonjs/types.d.ts.map +0 -1
  316. package/lib/typescript/lib/commonjs/utils.d.ts +0 -3
  317. package/lib/typescript/lib/commonjs/utils.d.ts.map +0 -1
  318. package/lib/typescript/lib/module/Canvas.d.ts +0 -8
  319. package/lib/typescript/lib/module/Canvas.d.ts.map +0 -1
  320. package/lib/typescript/lib/module/NativeWebGPUModule.d.ts +0 -3
  321. package/lib/typescript/lib/module/NativeWebGPUModule.d.ts.map +0 -1
  322. package/lib/typescript/lib/module/Offscreen.d.ts +0 -25
  323. package/lib/typescript/lib/module/Offscreen.d.ts.map +0 -1
  324. package/lib/typescript/lib/module/WebGPUViewNativeComponent.d.ts +0 -3
  325. package/lib/typescript/lib/module/WebGPUViewNativeComponent.d.ts.map +0 -1
  326. package/lib/typescript/lib/module/WebGPUViewNativeComponent.web.d.ts +0 -3
  327. package/lib/typescript/lib/module/WebGPUViewNativeComponent.web.d.ts.map +0 -1
  328. package/lib/typescript/lib/module/WebPolyfillGPUModule.d.ts +0 -2
  329. package/lib/typescript/lib/module/WebPolyfillGPUModule.d.ts.map +0 -1
  330. package/lib/typescript/lib/module/external/ModuleProxy.d.ts +0 -7
  331. package/lib/typescript/lib/module/external/ModuleProxy.d.ts.map +0 -1
  332. package/lib/typescript/lib/module/external/index.d.ts.map +0 -1
  333. package/lib/typescript/lib/module/external/reanimated/ReanimatedProxy.d.ts +0 -5
  334. package/lib/typescript/lib/module/external/reanimated/ReanimatedProxy.d.ts.map +0 -1
  335. package/lib/typescript/lib/module/external/reanimated/index.d.ts.map +0 -1
  336. package/lib/typescript/lib/module/external/reanimated/registerWebGPUForReanimated.d.ts +0 -2
  337. package/lib/typescript/lib/module/external/reanimated/registerWebGPUForReanimated.d.ts.map +0 -1
  338. package/lib/typescript/lib/module/hooks.d.ts +0 -18
  339. package/lib/typescript/lib/module/hooks.d.ts.map +0 -1
  340. package/lib/typescript/lib/module/index.d.ts +0 -2
  341. package/lib/typescript/lib/module/main/index.d.ts.map +0 -1
  342. package/lib/typescript/lib/module/main/index.web.d.ts +0 -5
  343. package/lib/typescript/lib/module/main/index.web.d.ts.map +0 -1
  344. package/lib/typescript/lib/module/types.d.ts +0 -1
  345. package/lib/typescript/lib/module/types.d.ts.map +0 -1
  346. package/lib/typescript/lib/module/utils.d.ts +0 -2
  347. package/lib/typescript/lib/module/utils.d.ts.map +0 -1
  348. package/lib/typescript/src/Canvas.d.ts.map +0 -1
  349. package/lib/typescript/src/NativeWebGPUModule.d.ts.map +0 -1
  350. package/lib/typescript/src/Offscreen.d.ts.map +0 -1
  351. package/lib/typescript/src/WebGPUViewNativeComponent.d.ts.map +0 -1
  352. package/lib/typescript/src/WebGPUViewNativeComponent.web.d.ts +0 -9
  353. package/lib/typescript/src/WebGPUViewNativeComponent.web.d.ts.map +0 -1
  354. package/lib/typescript/src/WebPolyfillGPUModule.d.ts +0 -2
  355. package/lib/typescript/src/WebPolyfillGPUModule.d.ts.map +0 -1
  356. package/lib/typescript/src/external/ModuleProxy.d.ts.map +0 -1
  357. package/lib/typescript/src/external/index.d.ts +0 -2
  358. package/lib/typescript/src/external/index.d.ts.map +0 -1
  359. package/lib/typescript/src/external/reanimated/ReanimatedProxy.d.ts.map +0 -1
  360. package/lib/typescript/src/external/reanimated/index.d.ts +0 -3
  361. package/lib/typescript/src/external/reanimated/index.d.ts.map +0 -1
  362. package/lib/typescript/src/external/reanimated/registerWebGPUForReanimated.d.ts.map +0 -1
  363. package/lib/typescript/src/hooks.d.ts.map +0 -1
  364. package/lib/typescript/src/index.d.ts.map +0 -1
  365. package/lib/typescript/src/main/index.d.ts +0 -6
  366. package/lib/typescript/src/main/index.d.ts.map +0 -1
  367. package/lib/typescript/src/main/index.web.d.ts +0 -6
  368. package/lib/typescript/src/main/index.web.d.ts.map +0 -1
  369. package/lib/typescript/src/types.d.ts.map +0 -1
  370. package/lib/typescript/src/utils.d.ts +0 -2
  371. package/lib/typescript/src/utils.d.ts.map +0 -1
  372. package/libs/android/arm64-v8a/libwebgpu_dawn.so +0 -0
  373. package/libs/android/armeabi-v7a/libwebgpu_dawn.so +0 -0
  374. package/libs/android/x86/libwebgpu_dawn.so +0 -0
  375. package/libs/android/x86_64/libwebgpu_dawn.so +0 -0
  376. package/libs/apple/libwebgpu_dawn.xcframework/Info.plist +0 -59
  377. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64/libwebgpu_dawn.a +0 -0
  378. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64_x86_64-simulator/libwebgpu_dawn.a +0 -0
  379. package/libs/apple/libwebgpu_dawn.xcframework/macos-arm64_x86_64/libwebgpu_dawn.a +0 -0
  380. package/react-native-wgpu.podspec +0 -47
  381. package/src/Canvas.tsx +0 -76
  382. package/src/NativeWebGPUModule.ts +0 -9
  383. package/src/Offscreen.ts +0 -113
  384. package/src/WebGPUViewNativeComponent.ts +0 -11
  385. package/src/WebGPUViewNativeComponent.web.ts +0 -113
  386. package/src/WebPolyfillGPUModule.ts +0 -53
  387. package/src/external/ModuleProxy.ts +0 -30
  388. package/src/external/index.ts +0 -1
  389. package/src/external/reanimated/ReanimatedProxy.ts +0 -19
  390. package/src/external/reanimated/index.ts +0 -2
  391. package/src/external/reanimated/registerWebGPUForReanimated.ts +0 -43
  392. package/src/hooks.tsx +0 -93
  393. package/src/index.tsx +0 -91
  394. package/src/main/index.tsx +0 -40
  395. package/src/main/index.web.tsx +0 -8
  396. package/src/types.ts +0 -102
  397. package/src/utils.ts +0 -4
  398. /package/lib/typescript/{src → webgpu/src}/NativeWebGPUModule.d.ts +0 -0
  399. /package/lib/typescript/{src → webgpu/src}/Offscreen.d.ts +0 -0
  400. /package/lib/typescript/{src → webgpu/src}/WebGPUViewNativeComponent.d.ts +0 -0
  401. /package/lib/typescript/{src → webgpu/src}/external/ModuleProxy.d.ts +0 -0
  402. /package/lib/typescript/{lib/module → webgpu/src}/external/index.d.ts +0 -0
  403. /package/lib/typescript/{src → webgpu/src}/external/reanimated/ReanimatedProxy.d.ts +0 -0
  404. /package/lib/typescript/{lib/module → webgpu/src}/external/reanimated/index.d.ts +0 -0
  405. /package/lib/typescript/{src → webgpu/src}/external/reanimated/registerWebGPUForReanimated.d.ts +0 -0
  406. /package/lib/typescript/{src → webgpu/src}/hooks.d.ts +0 -0
  407. /package/lib/typescript/{lib/module → webgpu/src}/main/index.d.ts +0 -0
  408. /package/lib/typescript/{eslint.config.d.mts → webgpu-shim/eslint.config.d.mts} +0 -0
  409. /package/lib/typescript/{lib/commonjs/external → webgpu-shim/lib/commonjs}/index.d.ts +0 -0
@@ -1,52 +0,0 @@
1
- #pragma once
2
-
3
- #include <string>
4
-
5
- #include "Unions.h"
6
-
7
- #include "NativeObject.h"
8
-
9
- #include "webgpu/webgpu_cpp.h"
10
-
11
- namespace rnwgpu {
12
-
13
- namespace jsi = facebook::jsi;
14
-
15
- class GPUBindGroupLayout : public NativeObject<GPUBindGroupLayout> {
16
- public:
17
- static constexpr const char *CLASS_NAME = "GPUBindGroupLayout";
18
-
19
- explicit GPUBindGroupLayout(wgpu::BindGroupLayout instance, std::string label)
20
- : NativeObject(CLASS_NAME), _instance(instance), _label(label) {}
21
-
22
- public:
23
- std::string getBrand() { return CLASS_NAME; }
24
-
25
- std::string getLabel() { return _label; }
26
- void setLabel(const std::string &label) {
27
- _label = label;
28
- _instance.SetLabel(_label.c_str());
29
- }
30
-
31
- static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
32
- installGetter(runtime, prototype, "__brand", &GPUBindGroupLayout::getBrand);
33
- installGetterSetter(runtime, prototype, "label",
34
- &GPUBindGroupLayout::getLabel,
35
- &GPUBindGroupLayout::setLabel);
36
- }
37
-
38
- inline const wgpu::BindGroupLayout get() { return _instance; }
39
-
40
- size_t getMemoryPressure() override {
41
- // Bind group layouts define the structure/schema for bind groups
42
- // They store binding descriptors, types, and validation info
43
- // Estimate: 512 bytes per layout (smaller than actual bind groups)
44
- return 512;
45
- }
46
-
47
- private:
48
- wgpu::BindGroupLayout _instance;
49
- std::string _label;
50
- };
51
-
52
- } // namespace rnwgpu
@@ -1,97 +0,0 @@
1
- #include "GPUBuffer.h"
2
-
3
- #include <memory>
4
- #include <utility>
5
-
6
- #include "Convertors.h"
7
-
8
- namespace rnwgpu {
9
-
10
- std::shared_ptr<ArrayBuffer>
11
- GPUBuffer::getMappedRange(std::optional<size_t> o, std::optional<size_t> size) {
12
- auto offset = o.value_or(0);
13
- uint64_t s = size.has_value() ? size.value() : (_instance.GetSize() - offset);
14
-
15
- uint64_t start = offset;
16
- uint64_t end = offset + s;
17
- // for (auto& mapping : mappings_) {
18
- // if (mapping.Intersects(start, end)) {
19
- // Errors::OperationError(env).ThrowAsJavaScriptException();
20
- // return {};
21
- // }
22
- // }
23
-
24
- auto *ptr =
25
- (_instance.GetUsage() & wgpu::BufferUsage::MapWrite)
26
- ? _instance.GetMappedRange(offset, s)
27
- : const_cast<void *>(_instance.GetConstMappedRange(offset, s));
28
- if (!ptr) {
29
- throw std::runtime_error("Failed to get getMappedRange");
30
- }
31
- auto array_buffer = std::make_shared<ArrayBuffer>(ptr, s, 1);
32
- // TODO(crbug.com/dawn/1135): Ownership here is the wrong way around.
33
- // mappings_.emplace_back(Mapping{start, end,
34
- // Napi::Persistent(array_buffer)});
35
- return array_buffer;
36
- }
37
-
38
- void GPUBuffer::destroy() { _instance.Destroy(); }
39
-
40
- async::AsyncTaskHandle GPUBuffer::mapAsync(uint64_t modeIn,
41
- std::optional<uint64_t> offset,
42
- std::optional<uint64_t> size) {
43
- Convertor conv;
44
- wgpu::MapMode mode;
45
- if (!conv(mode, modeIn)) {
46
- throw std::runtime_error("Couldn't get MapMode");
47
- }
48
- uint64_t rangeSize = size.has_value()
49
- ? size.value()
50
- : (_instance.GetSize() - offset.value_or(0));
51
- auto bufferHandle = _instance;
52
- uint64_t resolvedOffset = offset.value_or(0);
53
-
54
- return _async->postTask(
55
- [bufferHandle, mode, resolvedOffset,
56
- rangeSize](const async::AsyncTaskHandle::ResolveFunction &resolve,
57
- const async::AsyncTaskHandle::RejectFunction &reject) {
58
- bufferHandle.MapAsync(mode, resolvedOffset, rangeSize,
59
- wgpu::CallbackMode::AllowProcessEvents,
60
- [resolve, reject](wgpu::MapAsyncStatus status,
61
- wgpu::StringView message) {
62
- switch (status) {
63
- case wgpu::MapAsyncStatus::Success:
64
- resolve(nullptr);
65
- break;
66
- case wgpu::MapAsyncStatus::CallbackCancelled:
67
- reject("MapAsyncStatus::CallbackCancelled");
68
- break;
69
- case wgpu::MapAsyncStatus::Error:
70
- reject("MapAsyncStatus::Error");
71
- break;
72
- case wgpu::MapAsyncStatus::Aborted:
73
- reject("MapAsyncStatus::Aborted");
74
- break;
75
- default:
76
- reject(
77
- "MapAsyncStatus: " +
78
- std::to_string(static_cast<int>(status)));
79
- break;
80
- }
81
- });
82
- });
83
- }
84
-
85
- void GPUBuffer::unmap() { _instance.Unmap(); }
86
-
87
- uint64_t GPUBuffer::getSize() { return _instance.GetSize(); }
88
-
89
- double GPUBuffer::getUsage() {
90
- return static_cast<double>(_instance.GetUsage());
91
- }
92
-
93
- wgpu::BufferMapState GPUBuffer::getMapState() {
94
- return _instance.GetMapState();
95
- }
96
-
97
- } // namespace rnwgpu
@@ -1,87 +0,0 @@
1
- #pragma once
2
-
3
- #include <memory>
4
- #include <optional>
5
- #include <string>
6
- #include <vector>
7
-
8
- #include "Unions.h"
9
-
10
- #include "NativeObject.h"
11
-
12
- #include "rnwgpu/async/AsyncRunner.h"
13
- #include "rnwgpu/async/AsyncTaskHandle.h"
14
-
15
- #include "webgpu/webgpu_cpp.h"
16
-
17
- #include "ArrayBuffer.h"
18
-
19
- namespace rnwgpu {
20
-
21
- namespace jsi = facebook::jsi;
22
-
23
- class GPUBuffer : public NativeObject<GPUBuffer> {
24
- public:
25
- static constexpr const char *CLASS_NAME = "GPUBuffer";
26
-
27
- explicit GPUBuffer(wgpu::Buffer instance,
28
- std::shared_ptr<async::AsyncRunner> async,
29
- std::string label)
30
- : NativeObject(CLASS_NAME), _instance(instance), _async(async),
31
- _label(label) {}
32
-
33
- public:
34
- std::string getBrand() { return CLASS_NAME; }
35
-
36
- async::AsyncTaskHandle mapAsync(uint64_t modeIn,
37
- std::optional<uint64_t> offset,
38
- std::optional<uint64_t> size);
39
- std::shared_ptr<ArrayBuffer> getMappedRange(std::optional<size_t> offset,
40
- std::optional<size_t> size);
41
- void unmap();
42
- void destroy();
43
-
44
- uint64_t getSize();
45
- double getUsage();
46
- wgpu::BufferMapState getMapState();
47
-
48
- std::string getLabel() { return _label; }
49
- void setLabel(const std::string &label) {
50
- _label = label;
51
- _instance.SetLabel(_label.c_str());
52
- }
53
-
54
- static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
55
- installGetter(runtime, prototype, "__brand", &GPUBuffer::getBrand);
56
- installMethod(runtime, prototype, "mapAsync", &GPUBuffer::mapAsync);
57
- installMethod(runtime, prototype, "getMappedRange",
58
- &GPUBuffer::getMappedRange);
59
- installMethod(runtime, prototype, "unmap", &GPUBuffer::unmap);
60
- installMethod(runtime, prototype, "destroy", &GPUBuffer::destroy);
61
- installGetter(runtime, prototype, "size", &GPUBuffer::getSize);
62
- installGetter(runtime, prototype, "usage", &GPUBuffer::getUsage);
63
- installGetter(runtime, prototype, "mapState", &GPUBuffer::getMapState);
64
- installGetterSetter(runtime, prototype, "label", &GPUBuffer::getLabel,
65
- &GPUBuffer::setLabel);
66
- }
67
-
68
- inline const wgpu::Buffer get() { return _instance; }
69
-
70
- size_t getMemoryPressure() override { return static_cast<size_t>(getSize()); }
71
-
72
- private:
73
- wgpu::Buffer _instance;
74
- std::shared_ptr<async::AsyncRunner> _async;
75
- std::string _label;
76
- struct Mapping {
77
- uint64_t start;
78
- uint64_t end;
79
- inline bool Intersects(uint64_t s, uint64_t e) const {
80
- return s < end && e > start;
81
- }
82
- std::shared_ptr<ArrayBuffer> buffer;
83
- };
84
- std::vector<Mapping> mappings;
85
- };
86
-
87
- } // namespace rnwgpu
@@ -1,67 +0,0 @@
1
- #include "GPUCanvasContext.h"
2
- #include "Convertors.h"
3
- #include "RNWebGPUManager.h"
4
- #include <memory>
5
-
6
- #ifdef __APPLE__
7
- namespace dawn::native::metal {
8
-
9
- void WaitForCommandsToBeScheduled(WGPUDevice device);
10
-
11
- }
12
- #endif
13
-
14
- namespace rnwgpu {
15
-
16
- void GPUCanvasContext::configure(
17
- std::shared_ptr<GPUCanvasConfiguration> configuration) {
18
- Convertor conv;
19
- wgpu::SurfaceConfiguration surfaceConfiguration;
20
- surfaceConfiguration.device = configuration->device->get();
21
- if (configuration->viewFormats.has_value()) {
22
- if (!conv(surfaceConfiguration.viewFormats,
23
- surfaceConfiguration.viewFormatCount,
24
- configuration->viewFormats.value())) {
25
- throw std::runtime_error("Error with SurfaceConfiguration");
26
- }
27
- }
28
- if (!conv(surfaceConfiguration.usage, configuration->usage) ||
29
- !conv(surfaceConfiguration.format, configuration->format)) {
30
- throw std::runtime_error("Error with SurfaceConfiguration");
31
- }
32
-
33
- #ifdef __APPLE__
34
- surfaceConfiguration.alphaMode = configuration->alphaMode;
35
- #endif
36
- surfaceConfiguration.presentMode = wgpu::PresentMode::Fifo;
37
- _surfaceInfo->configure(surfaceConfiguration);
38
- }
39
-
40
- void GPUCanvasContext::unconfigure() {}
41
-
42
- std::shared_ptr<GPUTexture> GPUCanvasContext::getCurrentTexture() {
43
- auto prevSize = _surfaceInfo->getConfig();
44
- auto width = _canvas->getWidth();
45
- auto height = _canvas->getHeight();
46
- auto sizeHasChanged = prevSize.width != width || prevSize.height != height;
47
- if (sizeHasChanged) {
48
- _surfaceInfo->reconfigure(width, height);
49
- }
50
- auto texture = _surfaceInfo->getCurrentTexture();
51
- // Pass reportsMemoryPressure=false to avoid triggering spurious Hermes GC
52
- // cycles every frame since the canvas texture doesn't own the buffer.
53
- return std::make_shared<GPUTexture>(texture, "", false);
54
- }
55
-
56
- void GPUCanvasContext::present() {
57
- #ifdef __APPLE__
58
- dawn::native::metal::WaitForCommandsToBeScheduled(
59
- _surfaceInfo->getDevice().Get());
60
- #endif
61
- auto size = _surfaceInfo->getSize();
62
- _canvas->setClientWidth(size.width);
63
- _canvas->setClientHeight(size.height);
64
- _surfaceInfo->present();
65
- }
66
-
67
- } // namespace rnwgpu
@@ -1,66 +0,0 @@
1
- #pragma once
2
-
3
- #include <memory>
4
- #include <string>
5
- #include <utility>
6
-
7
- #include "Unions.h"
8
-
9
- #include "webgpu/webgpu_cpp.h"
10
-
11
- #include "NativeObject.h"
12
-
13
- #include "Canvas.h"
14
- #include "GPU.h"
15
- #include "GPUCanvasConfiguration.h"
16
- #include "GPUTexture.h"
17
- #include "SurfaceRegistry.h"
18
-
19
- namespace rnwgpu {
20
-
21
- namespace jsi = facebook::jsi;
22
-
23
- class GPUCanvasContext : public NativeObject<GPUCanvasContext> {
24
- public:
25
- static constexpr const char *CLASS_NAME = "GPUCanvasContext";
26
-
27
- GPUCanvasContext(std::shared_ptr<GPU> gpu, int contextId, int width,
28
- int height)
29
- : NativeObject(CLASS_NAME), _gpu(std::move(gpu)) {
30
- _canvas = std::make_shared<Canvas>(nullptr, width, height);
31
- auto &registry = rnwgpu::SurfaceRegistry::getInstance();
32
- _surfaceInfo =
33
- registry.getSurfaceInfoOrCreate(contextId, _gpu->get(), width, height);
34
- }
35
-
36
- public:
37
- std::string getBrand() { return CLASS_NAME; }
38
-
39
- std::shared_ptr<Canvas> getCanvas() { return _canvas; }
40
-
41
- static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
42
- installGetter(runtime, prototype, "__brand", &GPUCanvasContext::getBrand);
43
- installGetter(runtime, prototype, "canvas", &GPUCanvasContext::getCanvas);
44
- installMethod(runtime, prototype, "configure",
45
- &GPUCanvasContext::configure);
46
- installMethod(runtime, prototype, "unconfigure",
47
- &GPUCanvasContext::unconfigure);
48
- installMethod(runtime, prototype, "getCurrentTexture",
49
- &GPUCanvasContext::getCurrentTexture);
50
- installMethod(runtime, prototype, "present", &GPUCanvasContext::present);
51
- }
52
-
53
- // TODO: is this ok?
54
- inline const wgpu::Surface get() { return nullptr; }
55
- void configure(std::shared_ptr<GPUCanvasConfiguration> configuration);
56
- void unconfigure();
57
- std::shared_ptr<GPUTexture> getCurrentTexture();
58
- void present();
59
-
60
- private:
61
- std::shared_ptr<Canvas> _canvas;
62
- std::shared_ptr<SurfaceInfo> _surfaceInfo;
63
- std::shared_ptr<GPU> _gpu;
64
- };
65
-
66
- } // namespace rnwgpu
@@ -1,45 +0,0 @@
1
- #pragma once
2
-
3
- #include <string>
4
-
5
- #include "Unions.h"
6
-
7
- #include "NativeObject.h"
8
-
9
- #include "webgpu/webgpu_cpp.h"
10
-
11
- namespace rnwgpu {
12
-
13
- namespace jsi = facebook::jsi;
14
-
15
- class GPUCommandBuffer : public NativeObject<GPUCommandBuffer> {
16
- public:
17
- static constexpr const char *CLASS_NAME = "GPUCommandBuffer";
18
-
19
- explicit GPUCommandBuffer(wgpu::CommandBuffer instance, std::string label)
20
- : NativeObject(CLASS_NAME), _instance(instance), _label(label) {}
21
-
22
- public:
23
- std::string getBrand() { return CLASS_NAME; }
24
-
25
- std::string getLabel() { return _label; }
26
- void setLabel(const std::string &label) {
27
- _label = label;
28
- _instance.SetLabel(_label.c_str());
29
- }
30
-
31
- static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
32
- installGetter(runtime, prototype, "__brand", &GPUCommandBuffer::getBrand);
33
- installGetterSetter(runtime, prototype, "label",
34
- &GPUCommandBuffer::getLabel,
35
- &GPUCommandBuffer::setLabel);
36
- }
37
-
38
- inline const wgpu::CommandBuffer get() { return _instance; }
39
-
40
- private:
41
- wgpu::CommandBuffer _instance;
42
- std::string _label;
43
- };
44
-
45
- } // namespace rnwgpu
@@ -1,179 +0,0 @@
1
- #include "GPUCommandEncoder.h"
2
-
3
- #include <memory>
4
- #include <string>
5
- #include <vector>
6
-
7
- #include "Convertors.h"
8
-
9
- namespace rnwgpu {
10
-
11
- void GPUCommandEncoder::copyBufferToBuffer(
12
- std::shared_ptr<GPUBuffer> source, uint64_t sourceOffset,
13
- std::shared_ptr<GPUBuffer> destination, uint64_t destinationOffset,
14
- uint64_t size) {
15
- Convertor conv;
16
-
17
- wgpu::Buffer src{};
18
- wgpu::Buffer dst{};
19
- if (!conv(src, source) || //
20
- !conv(dst, destination)) {
21
- return;
22
- }
23
- _instance.CopyBufferToBuffer(src, sourceOffset, dst, destinationOffset, size);
24
- }
25
-
26
- std::shared_ptr<GPUCommandBuffer> GPUCommandEncoder::finish(
27
- std::optional<std::shared_ptr<GPUCommandBufferDescriptor>> descriptor) {
28
- wgpu::CommandBufferDescriptor desc{};
29
- Convertor conv;
30
- if (!conv(desc, descriptor)) {
31
- throw std::runtime_error(
32
- "GPUCommandEncoder::finish(): error with GPUCommandBufferDescriptor");
33
- }
34
- auto commandBuffer = _instance.Finish(&desc);
35
- return std::make_shared<GPUCommandBuffer>(
36
- commandBuffer,
37
- descriptor.has_value() ? descriptor.value()->label.value_or("") : "");
38
- }
39
-
40
- std::shared_ptr<GPURenderPassEncoder> GPUCommandEncoder::beginRenderPass(
41
- std::shared_ptr<GPURenderPassDescriptor> descriptor) {
42
-
43
- wgpu::RenderPassDescriptor desc{};
44
- wgpu::RenderPassMaxDrawCount maxDrawCountDesc{};
45
- desc.nextInChain = &maxDrawCountDesc;
46
- Convertor conv;
47
-
48
- // TODO: why is this not in Converter
49
- if (!conv(desc.colorAttachments, desc.colorAttachmentCount,
50
- descriptor->colorAttachments) ||
51
- !conv(desc.depthStencilAttachment, descriptor->depthStencilAttachment) ||
52
- !conv(desc.label, descriptor->label) ||
53
- !conv(desc.occlusionQuerySet, descriptor->occlusionQuerySet) ||
54
- !conv(desc.timestampWrites, descriptor->timestampWrites) ||
55
- !conv(maxDrawCountDesc.maxDrawCount, descriptor->maxDrawCount)) {
56
- throw std::runtime_error("PUCommandEncoder::beginRenderPass(): couldn't "
57
- "get GPURenderPassDescriptor");
58
- }
59
- auto renderPass = _instance.BeginRenderPass(&desc);
60
- return std::make_shared<GPURenderPassEncoder>(renderPass,
61
- descriptor->label.value_or(""));
62
- }
63
-
64
- void GPUCommandEncoder::copyTextureToBuffer(
65
- std::shared_ptr<GPUImageCopyTexture> source,
66
- std::shared_ptr<GPUImageCopyBuffer> destination,
67
- std::shared_ptr<GPUExtent3D> copySize) {
68
- Convertor conv;
69
- wgpu::TexelCopyTextureInfo src{};
70
- wgpu::TexelCopyBufferInfo dst{};
71
- wgpu::Extent3D size{};
72
- if (!conv(src, source) || //
73
- !conv(dst, destination) || //
74
- !conv(size, copySize)) {
75
- return;
76
- }
77
- _instance.CopyTextureToBuffer(&src, &dst, &size);
78
- }
79
-
80
- void GPUCommandEncoder::copyTextureToTexture(
81
- std::shared_ptr<GPUImageCopyTexture> source,
82
- std::shared_ptr<GPUImageCopyTexture> destination,
83
- std::shared_ptr<GPUExtent3D> copySize) {
84
- Convertor conv;
85
-
86
- wgpu::TexelCopyTextureInfo src{};
87
- wgpu::TexelCopyTextureInfo dst{};
88
- wgpu::Extent3D size{};
89
- if (!conv(src, source) || //
90
- !conv(dst, destination) || //
91
- !conv(size, copySize)) {
92
- return;
93
- }
94
-
95
- _instance.CopyTextureToTexture(&src, &dst, &size);
96
- }
97
-
98
- std::shared_ptr<GPUComputePassEncoder> GPUCommandEncoder::beginComputePass(
99
- std::optional<std::shared_ptr<GPUComputePassDescriptor>> descriptor) {
100
- wgpu::ComputePassDescriptor desc;
101
- Convertor conv;
102
- if (!conv(desc, descriptor)) {
103
- throw std::runtime_error("GPUCommandEncoder.beginComputePass(): couldn't "
104
- "access GPUComputePassDescriptor.");
105
- }
106
- auto computePass = _instance.BeginComputePass(&desc);
107
- return std::make_shared<GPUComputePassEncoder>(
108
- computePass,
109
- descriptor.has_value() ? descriptor.value()->label.value_or("") : "");
110
- }
111
-
112
- void GPUCommandEncoder::resolveQuerySet(std::shared_ptr<GPUQuerySet> querySet,
113
- uint32_t firstQuery,
114
- uint32_t queryCount,
115
- std::shared_ptr<GPUBuffer> destination,
116
- uint64_t destinationOffset) {
117
- Convertor conv;
118
-
119
- wgpu::QuerySet q{};
120
- uint32_t f = 0;
121
- uint32_t c = 0;
122
- wgpu::Buffer b{};
123
- uint64_t o = 0;
124
-
125
- if (!conv(q, querySet) || //
126
- !conv(f, firstQuery) || //
127
- !conv(c, queryCount) || //
128
- !conv(b, destination) || //
129
- !conv(o, destinationOffset)) {
130
- return;
131
- }
132
-
133
- _instance.ResolveQuerySet(q, f, c, b, o);
134
- }
135
-
136
- void GPUCommandEncoder::copyBufferToTexture(
137
- std::shared_ptr<GPUImageCopyBuffer> source,
138
- std::shared_ptr<GPUImageCopyTexture> destination,
139
- std::shared_ptr<GPUExtent3D> copySize) {
140
- Convertor conv;
141
-
142
- wgpu::TexelCopyBufferInfo src{};
143
- wgpu::TexelCopyTextureInfo dst{};
144
- wgpu::Extent3D size{};
145
- if (!conv(src, source) || //
146
- !conv(dst, destination) || //
147
- !conv(size, copySize)) {
148
- return;
149
- }
150
-
151
- _instance.CopyBufferToTexture(&src, &dst, &size);
152
- }
153
-
154
- void GPUCommandEncoder::clearBuffer(std::shared_ptr<GPUBuffer> buffer,
155
- std::optional<uint64_t> offset,
156
- std::optional<uint64_t> size) {
157
- Convertor conv;
158
-
159
- wgpu::Buffer b{};
160
- uint64_t s = wgpu::kWholeSize;
161
- if (!conv(b, buffer) || //
162
- !conv(s, size)) {
163
- return;
164
- }
165
-
166
- _instance.ClearBuffer(b, offset.value_or(0), s);
167
- }
168
-
169
- void GPUCommandEncoder::pushDebugGroup(std::string groupLabel) {
170
- _instance.PushDebugGroup(groupLabel.c_str());
171
- }
172
-
173
- void GPUCommandEncoder::popDebugGroup() { _instance.PopDebugGroup(); }
174
-
175
- void GPUCommandEncoder::insertDebugMarker(std::string markerLabel) {
176
- _instance.InsertDebugMarker(markerLabel.c_str());
177
- }
178
-
179
- } // namespace rnwgpu