react-native-wgpu 0.5.11 → 0.5.14

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 (397) hide show
  1. package/README.md +13 -302
  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 +0 -10
  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/external/ModuleProxy.d.ts.map +1 -0
  12. package/lib/typescript/webgpu/src/external/index.d.ts.map +1 -0
  13. package/lib/typescript/webgpu/src/external/reanimated/ReanimatedProxy.d.ts.map +1 -0
  14. package/lib/typescript/webgpu/src/external/reanimated/index.d.ts.map +1 -0
  15. package/lib/typescript/webgpu/src/external/reanimated/registerWebGPUForReanimated.d.ts.map +1 -0
  16. package/lib/typescript/webgpu/src/hooks.d.ts.map +1 -0
  17. package/lib/typescript/webgpu/src/index.d.ts +37 -0
  18. package/lib/typescript/webgpu/src/index.d.ts.map +1 -0
  19. package/lib/typescript/webgpu/src/main/index.d.ts.map +1 -0
  20. package/lib/typescript/webgpu/src/types.d.ts +50 -0
  21. package/lib/typescript/webgpu/src/types.d.ts.map +1 -0
  22. package/lib/typescript/{eslint.config.d.mts.map → webgpu-shim/eslint.config.d.mts.map} +1 -1
  23. package/lib/typescript/{lib → webgpu-shim/lib}/commonjs/index.d.ts.map +1 -1
  24. package/lib/typescript/webgpu-shim/lib/module/index.d.ts +2 -0
  25. package/lib/typescript/{lib → webgpu-shim/lib}/module/index.d.ts.map +1 -1
  26. package/lib/typescript/webgpu-shim/src/index.d.ts +2 -0
  27. package/lib/typescript/webgpu-shim/src/index.d.ts.map +1 -0
  28. package/package.json +13 -82
  29. package/src/index.ts +9 -0
  30. package/LICENSE +0 -20
  31. package/android/CMakeLists.txt +0 -108
  32. package/android/build.gradle +0 -138
  33. package/android/cpp/AndroidPlatformContext.h +0 -207
  34. package/android/cpp/cpp-adapter.cpp +0 -71
  35. package/android/src/main/AndroidManifest.xml +0 -3
  36. package/android/src/main/java/com/webgpu/WebGPUAHBView.java +0 -298
  37. package/android/src/main/java/com/webgpu/WebGPUAPI.java +0 -20
  38. package/android/src/main/java/com/webgpu/WebGPUBaseView.java +0 -61
  39. package/android/src/main/java/com/webgpu/WebGPUModule.java +0 -50
  40. package/android/src/main/java/com/webgpu/WebGPUSurfaceView.java +0 -41
  41. package/android/src/main/java/com/webgpu/WebGPUSurfaceViewWithSC.java +0 -79
  42. package/android/src/main/java/com/webgpu/WebGPUTextureView.java +0 -46
  43. package/android/src/main/java/com/webgpu/WebGPUView.java +0 -108
  44. package/android/src/main/java/com/webgpu/WebGPUViewManager.java +0 -38
  45. package/android/src/main/java/com/webgpu/WebGPUViewPackage.java +0 -50
  46. package/android/src/newarch/com/webgpu/WebGPUViewManagerSpec.java +0 -24
  47. package/apple/ApplePlatformContext.h +0 -31
  48. package/apple/ApplePlatformContext.mm +0 -157
  49. package/apple/MetalView.h +0 -13
  50. package/apple/MetalView.mm +0 -50
  51. package/apple/RNWGUIKit.h +0 -16
  52. package/apple/WebGPUModule.h +0 -13
  53. package/apple/WebGPUModule.mm +0 -89
  54. package/apple/WebGPUView.h +0 -12
  55. package/apple/WebGPUView.mm +0 -66
  56. package/cpp/WGPULogger.h +0 -100
  57. package/cpp/dawn_logging.cpp +0 -119
  58. package/cpp/jsi/EnumMapper.h +0 -45
  59. package/cpp/jsi/JSIConverter.h +0 -473
  60. package/cpp/jsi/NativeObject.h +0 -607
  61. package/cpp/jsi/Promise.cpp +0 -44
  62. package/cpp/jsi/Promise.h +0 -35
  63. package/cpp/jsi/RuntimeAwareCache.cpp +0 -7
  64. package/cpp/jsi/RuntimeAwareCache.h +0 -100
  65. package/cpp/jsi/RuntimeLifecycleMonitor.cpp +0 -72
  66. package/cpp/jsi/RuntimeLifecycleMonitor.h +0 -32
  67. package/cpp/rnwgpu/ArrayBuffer.h +0 -73
  68. package/cpp/rnwgpu/PlatformContext.h +0 -46
  69. package/cpp/rnwgpu/RNWebGPUManager.cpp +0 -225
  70. package/cpp/rnwgpu/RNWebGPUManager.h +0 -46
  71. package/cpp/rnwgpu/SurfaceRegistry.h +0 -230
  72. package/cpp/rnwgpu/api/Canvas.h +0 -57
  73. package/cpp/rnwgpu/api/Convertors.h +0 -761
  74. package/cpp/rnwgpu/api/External.h +0 -12
  75. package/cpp/rnwgpu/api/GPU.cpp +0 -127
  76. package/cpp/rnwgpu/api/GPU.h +0 -58
  77. package/cpp/rnwgpu/api/GPUAdapter.cpp +0 -191
  78. package/cpp/rnwgpu/api/GPUAdapter.h +0 -59
  79. package/cpp/rnwgpu/api/GPUAdapterInfo.h +0 -57
  80. package/cpp/rnwgpu/api/GPUBindGroup.cpp +0 -3
  81. package/cpp/rnwgpu/api/GPUBindGroup.h +0 -51
  82. package/cpp/rnwgpu/api/GPUBindGroupLayout.h +0 -52
  83. package/cpp/rnwgpu/api/GPUBuffer.cpp +0 -97
  84. package/cpp/rnwgpu/api/GPUBuffer.h +0 -87
  85. package/cpp/rnwgpu/api/GPUCanvasContext.cpp +0 -67
  86. package/cpp/rnwgpu/api/GPUCanvasContext.h +0 -66
  87. package/cpp/rnwgpu/api/GPUCommandBuffer.h +0 -45
  88. package/cpp/rnwgpu/api/GPUCommandEncoder.cpp +0 -179
  89. package/cpp/rnwgpu/api/GPUCommandEncoder.h +0 -111
  90. package/cpp/rnwgpu/api/GPUCompilationInfo.h +0 -79
  91. package/cpp/rnwgpu/api/GPUCompilationMessage.h +0 -36
  92. package/cpp/rnwgpu/api/GPUComputePassEncoder.cpp +0 -60
  93. package/cpp/rnwgpu/api/GPUComputePassEncoder.h +0 -85
  94. package/cpp/rnwgpu/api/GPUComputePipeline.cpp +0 -12
  95. package/cpp/rnwgpu/api/GPUComputePipeline.h +0 -60
  96. package/cpp/rnwgpu/api/GPUDevice.cpp +0 -492
  97. package/cpp/rnwgpu/api/GPUDevice.h +0 -259
  98. package/cpp/rnwgpu/api/GPUDeviceLostInfo.cpp +0 -7
  99. package/cpp/rnwgpu/api/GPUDeviceLostInfo.h +0 -40
  100. package/cpp/rnwgpu/api/GPUError.h +0 -35
  101. package/cpp/rnwgpu/api/GPUExtent3D.h +0 -66
  102. package/cpp/rnwgpu/api/GPUExternalTexture.h +0 -45
  103. package/cpp/rnwgpu/api/GPUFeatures.h +0 -203
  104. package/cpp/rnwgpu/api/GPUInternalError.h +0 -31
  105. package/cpp/rnwgpu/api/GPUOrigin2D.h +0 -55
  106. package/cpp/rnwgpu/api/GPUOrigin3D.h +0 -62
  107. package/cpp/rnwgpu/api/GPUOutOfMemoryError.h +0 -33
  108. package/cpp/rnwgpu/api/GPUPipelineLayout.h +0 -45
  109. package/cpp/rnwgpu/api/GPUQuerySet.cpp +0 -11
  110. package/cpp/rnwgpu/api/GPUQuerySet.h +0 -73
  111. package/cpp/rnwgpu/api/GPUQueue.cpp +0 -169
  112. package/cpp/rnwgpu/api/GPUQueue.h +0 -81
  113. package/cpp/rnwgpu/api/GPURenderBundle.h +0 -44
  114. package/cpp/rnwgpu/api/GPURenderBundleEncoder.cpp +0 -131
  115. package/cpp/rnwgpu/api/GPURenderBundleEncoder.h +0 -110
  116. package/cpp/rnwgpu/api/GPURenderPassEncoder.cpp +0 -165
  117. package/cpp/rnwgpu/api/GPURenderPassEncoder.h +0 -130
  118. package/cpp/rnwgpu/api/GPURenderPipeline.cpp +0 -13
  119. package/cpp/rnwgpu/api/GPURenderPipeline.h +0 -61
  120. package/cpp/rnwgpu/api/GPUSampler.h +0 -44
  121. package/cpp/rnwgpu/api/GPUShaderModule.cpp +0 -51
  122. package/cpp/rnwgpu/api/GPUShaderModule.h +0 -66
  123. package/cpp/rnwgpu/api/GPUSupportedLimits.cpp +0 -129
  124. package/cpp/rnwgpu/api/GPUSupportedLimits.h +0 -131
  125. package/cpp/rnwgpu/api/GPUTexture.cpp +0 -47
  126. package/cpp/rnwgpu/api/GPUTexture.h +0 -162
  127. package/cpp/rnwgpu/api/GPUTextureView.h +0 -44
  128. package/cpp/rnwgpu/api/GPUUncapturedErrorEvent.h +0 -71
  129. package/cpp/rnwgpu/api/GPUValidationError.h +0 -32
  130. package/cpp/rnwgpu/api/ImageBitmap.h +0 -40
  131. package/cpp/rnwgpu/api/RNWebGPU.h +0 -199
  132. package/cpp/rnwgpu/api/descriptors/GPUBindGroupDescriptor.h +0 -65
  133. package/cpp/rnwgpu/api/descriptors/GPUBindGroupEntry.h +0 -78
  134. package/cpp/rnwgpu/api/descriptors/GPUBindGroupLayoutDescriptor.h +0 -57
  135. package/cpp/rnwgpu/api/descriptors/GPUBindGroupLayoutEntry.h +0 -98
  136. package/cpp/rnwgpu/api/descriptors/GPUBlendComponent.h +0 -58
  137. package/cpp/rnwgpu/api/descriptors/GPUBlendState.h +0 -53
  138. package/cpp/rnwgpu/api/descriptors/GPUBufferBinding.h +0 -57
  139. package/cpp/rnwgpu/api/descriptors/GPUBufferBindingLayout.h +0 -57
  140. package/cpp/rnwgpu/api/descriptors/GPUBufferDescriptor.h +0 -60
  141. package/cpp/rnwgpu/api/descriptors/GPUBufferUsage.h +0 -39
  142. package/cpp/rnwgpu/api/descriptors/GPUCanvasConfiguration.h +0 -76
  143. package/cpp/rnwgpu/api/descriptors/GPUColor.h +0 -67
  144. package/cpp/rnwgpu/api/descriptors/GPUColorTargetState.h +0 -59
  145. package/cpp/rnwgpu/api/descriptors/GPUColorWrite.h +0 -29
  146. package/cpp/rnwgpu/api/descriptors/GPUCommandBufferDescriptor.h +0 -46
  147. package/cpp/rnwgpu/api/descriptors/GPUCommandEncoderDescriptor.h +0 -46
  148. package/cpp/rnwgpu/api/descriptors/GPUComputePassDescriptor.h +0 -57
  149. package/cpp/rnwgpu/api/descriptors/GPUComputePassTimestampWrites.h +0 -59
  150. package/cpp/rnwgpu/api/descriptors/GPUComputePipelineDescriptor.h +0 -68
  151. package/cpp/rnwgpu/api/descriptors/GPUDepthStencilState.h +0 -104
  152. package/cpp/rnwgpu/api/descriptors/GPUDeviceDescriptor.h +0 -100
  153. package/cpp/rnwgpu/api/descriptors/GPUExternalTextureBindingLayout.h +0 -39
  154. package/cpp/rnwgpu/api/descriptors/GPUExternalTextureDescriptor.h +0 -80
  155. package/cpp/rnwgpu/api/descriptors/GPUFragmentState.h +0 -74
  156. package/cpp/rnwgpu/api/descriptors/GPUImageCopyBuffer.h +0 -63
  157. package/cpp/rnwgpu/api/descriptors/GPUImageCopyExternalImage.h +0 -63
  158. package/cpp/rnwgpu/api/descriptors/GPUImageCopyTexture.h +0 -66
  159. package/cpp/rnwgpu/api/descriptors/GPUImageCopyTextureTagged.h +0 -82
  160. package/cpp/rnwgpu/api/descriptors/GPUImageDataLayout.h +0 -55
  161. package/cpp/rnwgpu/api/descriptors/GPUMapMode.h +0 -22
  162. package/cpp/rnwgpu/api/descriptors/GPUMultisampleState.h +0 -55
  163. package/cpp/rnwgpu/api/descriptors/GPUPipelineLayoutDescriptor.h +0 -58
  164. package/cpp/rnwgpu/api/descriptors/GPUPrimitiveState.h +0 -70
  165. package/cpp/rnwgpu/api/descriptors/GPUProgrammableStage.h +0 -62
  166. package/cpp/rnwgpu/api/descriptors/GPUQuerySetDescriptor.h +0 -56
  167. package/cpp/rnwgpu/api/descriptors/GPUQueueDescriptor.h +0 -44
  168. package/cpp/rnwgpu/api/descriptors/GPURenderBundleDescriptor.h +0 -46
  169. package/cpp/rnwgpu/api/descriptors/GPURenderBundleEncoderDescriptor.h +0 -81
  170. package/cpp/rnwgpu/api/descriptors/GPURenderPassColorAttachment.h +0 -82
  171. package/cpp/rnwgpu/api/descriptors/GPURenderPassDepthStencilAttachment.h +0 -102
  172. package/cpp/rnwgpu/api/descriptors/GPURenderPassDescriptor.h +0 -93
  173. package/cpp/rnwgpu/api/descriptors/GPURenderPassTimestampWrites.h +0 -59
  174. package/cpp/rnwgpu/api/descriptors/GPURenderPipelineDescriptor.h +0 -104
  175. package/cpp/rnwgpu/api/descriptors/GPURequestAdapterOptions.h +0 -52
  176. package/cpp/rnwgpu/api/descriptors/GPUSamplerBindingLayout.h +0 -46
  177. package/cpp/rnwgpu/api/descriptors/GPUSamplerDescriptor.h +0 -111
  178. package/cpp/rnwgpu/api/descriptors/GPUShaderModuleCompilationHint.h +0 -61
  179. package/cpp/rnwgpu/api/descriptors/GPUShaderModuleDescriptor.h +0 -63
  180. package/cpp/rnwgpu/api/descriptors/GPUShaderStage.h +0 -25
  181. package/cpp/rnwgpu/api/descriptors/GPUStencilFaceState.h +0 -65
  182. package/cpp/rnwgpu/api/descriptors/GPUStorageTextureBindingLayout.h +0 -60
  183. package/cpp/rnwgpu/api/descriptors/GPUTextureBindingLayout.h +0 -60
  184. package/cpp/rnwgpu/api/descriptors/GPUTextureDescriptor.h +0 -92
  185. package/cpp/rnwgpu/api/descriptors/GPUTextureUsage.h +0 -29
  186. package/cpp/rnwgpu/api/descriptors/GPUTextureViewDescriptor.h +0 -92
  187. package/cpp/rnwgpu/api/descriptors/GPUUncapturedErrorEventInit.h +0 -65
  188. package/cpp/rnwgpu/api/descriptors/GPUVertexAttribute.h +0 -54
  189. package/cpp/rnwgpu/api/descriptors/GPUVertexBufferLayout.h +0 -63
  190. package/cpp/rnwgpu/api/descriptors/GPUVertexState.h +0 -74
  191. package/cpp/rnwgpu/api/descriptors/Unions.h +0 -1969
  192. package/cpp/rnwgpu/async/AsyncDispatcher.h +0 -28
  193. package/cpp/rnwgpu/async/AsyncRunner.cpp +0 -215
  194. package/cpp/rnwgpu/async/AsyncRunner.h +0 -53
  195. package/cpp/rnwgpu/async/AsyncTaskHandle.cpp +0 -181
  196. package/cpp/rnwgpu/async/AsyncTaskHandle.h +0 -55
  197. package/cpp/rnwgpu/async/JSIMicrotaskDispatcher.cpp +0 -23
  198. package/cpp/rnwgpu/async/JSIMicrotaskDispatcher.h +0 -22
  199. package/cpp/webgpu/webgpu.h +0 -4918
  200. package/cpp/webgpu/webgpu_cpp.h +0 -10294
  201. package/cpp/webgpu/webgpu_cpp_chained_struct.h +0 -57
  202. package/cpp/webgpu/webgpu_cpp_print.h +0 -2755
  203. package/cpp/webgpu/webgpu_enum_class_bitmasks.h +0 -161
  204. package/lib/commonjs/Canvas.js +0 -55
  205. package/lib/commonjs/Canvas.js.map +0 -1
  206. package/lib/commonjs/NativeWebGPUModule.js +0 -10
  207. package/lib/commonjs/NativeWebGPUModule.js.map +0 -1
  208. package/lib/commonjs/Offscreen.js +0 -103
  209. package/lib/commonjs/Offscreen.js.map +0 -1
  210. package/lib/commonjs/WebGPUViewNativeComponent.js +0 -10
  211. package/lib/commonjs/WebGPUViewNativeComponent.js.map +0 -1
  212. package/lib/commonjs/WebGPUViewNativeComponent.web.js +0 -103
  213. package/lib/commonjs/WebGPUViewNativeComponent.web.js.map +0 -1
  214. package/lib/commonjs/WebPolyfillGPUModule.js +0 -40
  215. package/lib/commonjs/WebPolyfillGPUModule.js.map +0 -1
  216. package/lib/commonjs/external/ModuleProxy.js +0 -36
  217. package/lib/commonjs/external/ModuleProxy.js.map +0 -1
  218. package/lib/commonjs/external/index.js +0 -17
  219. package/lib/commonjs/external/index.js.map +0 -1
  220. package/lib/commonjs/external/reanimated/ReanimatedProxy.js +0 -18
  221. package/lib/commonjs/external/reanimated/ReanimatedProxy.js.map +0 -1
  222. package/lib/commonjs/external/reanimated/index.js +0 -21
  223. package/lib/commonjs/external/reanimated/index.js.map +0 -1
  224. package/lib/commonjs/external/reanimated/registerWebGPUForReanimated.js +0 -49
  225. package/lib/commonjs/external/reanimated/registerWebGPUForReanimated.js.map +0 -1
  226. package/lib/commonjs/hooks.js +0 -83
  227. package/lib/commonjs/hooks.js.map +0 -1
  228. package/lib/commonjs/main/index.js +0 -91
  229. package/lib/commonjs/main/index.js.map +0 -1
  230. package/lib/commonjs/main/index.web.js +0 -51
  231. package/lib/commonjs/main/index.web.js.map +0 -1
  232. package/lib/commonjs/types.js +0 -2
  233. package/lib/commonjs/types.js.map +0 -1
  234. package/lib/commonjs/utils.js +0 -11
  235. package/lib/commonjs/utils.js.map +0 -1
  236. package/lib/module/Canvas.js +0 -46
  237. package/lib/module/Canvas.js.map +0 -1
  238. package/lib/module/NativeWebGPUModule.js +0 -4
  239. package/lib/module/NativeWebGPUModule.js.map +0 -1
  240. package/lib/module/Offscreen.js +0 -96
  241. package/lib/module/Offscreen.js.map +0 -1
  242. package/lib/module/WebGPUViewNativeComponent.js +0 -4
  243. package/lib/module/WebGPUViewNativeComponent.js.map +0 -1
  244. package/lib/module/WebGPUViewNativeComponent.web.js +0 -96
  245. package/lib/module/WebGPUViewNativeComponent.web.js.map +0 -1
  246. package/lib/module/WebPolyfillGPUModule.js +0 -38
  247. package/lib/module/WebPolyfillGPUModule.js.map +0 -1
  248. package/lib/module/external/ModuleProxy.js +0 -28
  249. package/lib/module/external/ModuleProxy.js.map +0 -1
  250. package/lib/module/external/index.js +0 -2
  251. package/lib/module/external/index.js.map +0 -1
  252. package/lib/module/external/reanimated/ReanimatedProxy.js +0 -12
  253. package/lib/module/external/reanimated/ReanimatedProxy.js.map +0 -1
  254. package/lib/module/external/reanimated/index.js +0 -3
  255. package/lib/module/external/reanimated/index.js.map +0 -1
  256. package/lib/module/external/reanimated/registerWebGPUForReanimated.js +0 -42
  257. package/lib/module/external/reanimated/registerWebGPUForReanimated.js.map +0 -1
  258. package/lib/module/hooks.js +0 -70
  259. package/lib/module/hooks.js.map +0 -1
  260. package/lib/module/main/index.js +0 -33
  261. package/lib/module/main/index.js.map +0 -1
  262. package/lib/module/main/index.web.js +0 -8
  263. package/lib/module/main/index.web.js.map +0 -1
  264. package/lib/module/types.js +0 -2
  265. package/lib/module/types.js.map +0 -1
  266. package/lib/module/utils.js +0 -5
  267. package/lib/module/utils.js.map +0 -1
  268. package/lib/typescript/babel.config.d.ts +0 -3
  269. package/lib/typescript/babel.config.d.ts.map +0 -1
  270. package/lib/typescript/jest.config.d.ts +0 -9
  271. package/lib/typescript/jest.config.d.ts.map +0 -1
  272. package/lib/typescript/lib/commonjs/Canvas.d.ts +0 -7
  273. package/lib/typescript/lib/commonjs/Canvas.d.ts.map +0 -1
  274. package/lib/typescript/lib/commonjs/NativeWebGPUModule.d.ts +0 -5
  275. package/lib/typescript/lib/commonjs/NativeWebGPUModule.d.ts.map +0 -1
  276. package/lib/typescript/lib/commonjs/Offscreen.d.ts +0 -26
  277. package/lib/typescript/lib/commonjs/Offscreen.d.ts.map +0 -1
  278. package/lib/typescript/lib/commonjs/WebGPUViewNativeComponent.d.ts +0 -5
  279. package/lib/typescript/lib/commonjs/WebGPUViewNativeComponent.d.ts.map +0 -1
  280. package/lib/typescript/lib/commonjs/WebGPUViewNativeComponent.web.d.ts +0 -4
  281. package/lib/typescript/lib/commonjs/WebGPUViewNativeComponent.web.d.ts.map +0 -1
  282. package/lib/typescript/lib/commonjs/WebPolyfillGPUModule.d.ts +0 -2
  283. package/lib/typescript/lib/commonjs/WebPolyfillGPUModule.d.ts.map +0 -1
  284. package/lib/typescript/lib/commonjs/external/ModuleProxy.d.ts +0 -12
  285. package/lib/typescript/lib/commonjs/external/ModuleProxy.d.ts.map +0 -1
  286. package/lib/typescript/lib/commonjs/external/index.d.ts.map +0 -1
  287. package/lib/typescript/lib/commonjs/external/reanimated/ReanimatedProxy.d.ts +0 -6
  288. package/lib/typescript/lib/commonjs/external/reanimated/ReanimatedProxy.d.ts.map +0 -1
  289. package/lib/typescript/lib/commonjs/external/reanimated/index.d.ts +0 -4
  290. package/lib/typescript/lib/commonjs/external/reanimated/index.d.ts.map +0 -1
  291. package/lib/typescript/lib/commonjs/external/reanimated/registerWebGPUForReanimated.d.ts +0 -9
  292. package/lib/typescript/lib/commonjs/external/reanimated/registerWebGPUForReanimated.d.ts.map +0 -1
  293. package/lib/typescript/lib/commonjs/hooks.d.ts +0 -18
  294. package/lib/typescript/lib/commonjs/hooks.d.ts.map +0 -1
  295. package/lib/typescript/lib/commonjs/index.d.ts +0 -2
  296. package/lib/typescript/lib/commonjs/main/index.d.ts +0 -3
  297. package/lib/typescript/lib/commonjs/main/index.d.ts.map +0 -1
  298. package/lib/typescript/lib/commonjs/main/index.web.d.ts +0 -2
  299. package/lib/typescript/lib/commonjs/main/index.web.d.ts.map +0 -1
  300. package/lib/typescript/lib/commonjs/types.d.ts +0 -1
  301. package/lib/typescript/lib/commonjs/types.d.ts.map +0 -1
  302. package/lib/typescript/lib/commonjs/utils.d.ts +0 -3
  303. package/lib/typescript/lib/commonjs/utils.d.ts.map +0 -1
  304. package/lib/typescript/lib/module/Canvas.d.ts +0 -8
  305. package/lib/typescript/lib/module/Canvas.d.ts.map +0 -1
  306. package/lib/typescript/lib/module/NativeWebGPUModule.d.ts +0 -3
  307. package/lib/typescript/lib/module/NativeWebGPUModule.d.ts.map +0 -1
  308. package/lib/typescript/lib/module/Offscreen.d.ts +0 -25
  309. package/lib/typescript/lib/module/Offscreen.d.ts.map +0 -1
  310. package/lib/typescript/lib/module/WebGPUViewNativeComponent.d.ts +0 -3
  311. package/lib/typescript/lib/module/WebGPUViewNativeComponent.d.ts.map +0 -1
  312. package/lib/typescript/lib/module/WebGPUViewNativeComponent.web.d.ts +0 -3
  313. package/lib/typescript/lib/module/WebGPUViewNativeComponent.web.d.ts.map +0 -1
  314. package/lib/typescript/lib/module/WebPolyfillGPUModule.d.ts +0 -2
  315. package/lib/typescript/lib/module/WebPolyfillGPUModule.d.ts.map +0 -1
  316. package/lib/typescript/lib/module/external/ModuleProxy.d.ts +0 -7
  317. package/lib/typescript/lib/module/external/ModuleProxy.d.ts.map +0 -1
  318. package/lib/typescript/lib/module/external/index.d.ts.map +0 -1
  319. package/lib/typescript/lib/module/external/reanimated/ReanimatedProxy.d.ts +0 -5
  320. package/lib/typescript/lib/module/external/reanimated/ReanimatedProxy.d.ts.map +0 -1
  321. package/lib/typescript/lib/module/external/reanimated/index.d.ts.map +0 -1
  322. package/lib/typescript/lib/module/external/reanimated/registerWebGPUForReanimated.d.ts +0 -2
  323. package/lib/typescript/lib/module/external/reanimated/registerWebGPUForReanimated.d.ts.map +0 -1
  324. package/lib/typescript/lib/module/hooks.d.ts +0 -18
  325. package/lib/typescript/lib/module/hooks.d.ts.map +0 -1
  326. package/lib/typescript/lib/module/index.d.ts +0 -2
  327. package/lib/typescript/lib/module/main/index.d.ts.map +0 -1
  328. package/lib/typescript/lib/module/main/index.web.d.ts +0 -5
  329. package/lib/typescript/lib/module/main/index.web.d.ts.map +0 -1
  330. package/lib/typescript/lib/module/types.d.ts +0 -1
  331. package/lib/typescript/lib/module/types.d.ts.map +0 -1
  332. package/lib/typescript/lib/module/utils.d.ts +0 -2
  333. package/lib/typescript/lib/module/utils.d.ts.map +0 -1
  334. package/lib/typescript/src/Canvas.d.ts.map +0 -1
  335. package/lib/typescript/src/NativeWebGPUModule.d.ts.map +0 -1
  336. package/lib/typescript/src/Offscreen.d.ts.map +0 -1
  337. package/lib/typescript/src/WebGPUViewNativeComponent.d.ts.map +0 -1
  338. package/lib/typescript/src/WebGPUViewNativeComponent.web.d.ts +0 -9
  339. package/lib/typescript/src/WebGPUViewNativeComponent.web.d.ts.map +0 -1
  340. package/lib/typescript/src/WebPolyfillGPUModule.d.ts +0 -2
  341. package/lib/typescript/src/WebPolyfillGPUModule.d.ts.map +0 -1
  342. package/lib/typescript/src/external/ModuleProxy.d.ts.map +0 -1
  343. package/lib/typescript/src/external/index.d.ts +0 -2
  344. package/lib/typescript/src/external/index.d.ts.map +0 -1
  345. package/lib/typescript/src/external/reanimated/ReanimatedProxy.d.ts.map +0 -1
  346. package/lib/typescript/src/external/reanimated/index.d.ts +0 -3
  347. package/lib/typescript/src/external/reanimated/index.d.ts.map +0 -1
  348. package/lib/typescript/src/external/reanimated/registerWebGPUForReanimated.d.ts.map +0 -1
  349. package/lib/typescript/src/hooks.d.ts.map +0 -1
  350. package/lib/typescript/src/index.d.ts +0 -18
  351. package/lib/typescript/src/index.d.ts.map +0 -1
  352. package/lib/typescript/src/main/index.d.ts +0 -6
  353. package/lib/typescript/src/main/index.d.ts.map +0 -1
  354. package/lib/typescript/src/main/index.web.d.ts +0 -6
  355. package/lib/typescript/src/main/index.web.d.ts.map +0 -1
  356. package/lib/typescript/src/types.d.ts +0 -19
  357. package/lib/typescript/src/types.d.ts.map +0 -1
  358. package/lib/typescript/src/utils.d.ts +0 -2
  359. package/lib/typescript/src/utils.d.ts.map +0 -1
  360. package/libs/android/arm64-v8a/libwebgpu_dawn.so +0 -0
  361. package/libs/android/armeabi-v7a/libwebgpu_dawn.so +0 -0
  362. package/libs/android/x86/libwebgpu_dawn.so +0 -0
  363. package/libs/android/x86_64/libwebgpu_dawn.so +0 -0
  364. package/libs/apple/libwebgpu_dawn.xcframework/Info.plist +0 -59
  365. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64/libwebgpu_dawn.a +0 -0
  366. package/libs/apple/libwebgpu_dawn.xcframework/ios-arm64_x86_64-simulator/libwebgpu_dawn.a +0 -0
  367. package/libs/apple/libwebgpu_dawn.xcframework/macos-arm64_x86_64/libwebgpu_dawn.a +0 -0
  368. package/react-native-wgpu.podspec +0 -47
  369. package/src/Canvas.tsx +0 -91
  370. package/src/NativeWebGPUModule.ts +0 -9
  371. package/src/Offscreen.ts +0 -113
  372. package/src/WebGPUViewNativeComponent.ts +0 -11
  373. package/src/WebGPUViewNativeComponent.web.ts +0 -113
  374. package/src/WebPolyfillGPUModule.ts +0 -53
  375. package/src/external/ModuleProxy.ts +0 -30
  376. package/src/external/index.ts +0 -1
  377. package/src/external/reanimated/ReanimatedProxy.ts +0 -19
  378. package/src/external/reanimated/index.ts +0 -2
  379. package/src/external/reanimated/registerWebGPUForReanimated.ts +0 -43
  380. package/src/hooks.tsx +0 -93
  381. package/src/index.tsx +0 -31
  382. package/src/main/index.tsx +0 -40
  383. package/src/main/index.web.tsx +0 -8
  384. package/src/types.ts +0 -20
  385. package/src/utils.ts +0 -4
  386. /package/lib/typescript/{src → webgpu/src}/NativeWebGPUModule.d.ts +0 -0
  387. /package/lib/typescript/{src → webgpu/src}/Offscreen.d.ts +0 -0
  388. /package/lib/typescript/{src → webgpu/src}/WebGPUViewNativeComponent.d.ts +0 -0
  389. /package/lib/typescript/{src → webgpu/src}/external/ModuleProxy.d.ts +0 -0
  390. /package/lib/typescript/{lib/module → webgpu/src}/external/index.d.ts +0 -0
  391. /package/lib/typescript/{src → webgpu/src}/external/reanimated/ReanimatedProxy.d.ts +0 -0
  392. /package/lib/typescript/{lib/module → webgpu/src}/external/reanimated/index.d.ts +0 -0
  393. /package/lib/typescript/{src → webgpu/src}/external/reanimated/registerWebGPUForReanimated.d.ts +0 -0
  394. /package/lib/typescript/{src → webgpu/src}/hooks.d.ts +0 -0
  395. /package/lib/typescript/{lib/module → webgpu/src}/main/index.d.ts +0 -0
  396. /package/lib/typescript/{eslint.config.d.mts → webgpu-shim/eslint.config.d.mts} +0 -0
  397. /package/lib/typescript/{lib/commonjs/external → webgpu-shim/lib/commonjs}/index.d.ts +0 -0
@@ -1,492 +0,0 @@
1
- #include "GPUDevice.h"
2
-
3
- #include <memory>
4
- #include <string>
5
- #include <unordered_set>
6
- #include <utility>
7
- #include <vector>
8
-
9
- #include "Convertors.h"
10
- #include "JSIConverter.h"
11
-
12
- #include "GPUFeatures.h"
13
- #include "GPUInternalError.h"
14
- #include "GPUOutOfMemoryError.h"
15
- #include "GPUValidationError.h"
16
-
17
- namespace rnwgpu {
18
-
19
- void GPUDevice::notifyDeviceLost(wgpu::DeviceLostReason reason,
20
- std::string message) {
21
- if (_lostSettled) {
22
- return;
23
- }
24
-
25
- _lostSettled = true;
26
- _lostInfo = std::make_shared<GPUDeviceLostInfo>(reason, std::move(message));
27
-
28
- if (_lostResolve.has_value()) {
29
- auto resolve = std::move(*_lostResolve);
30
- _lostResolve.reset();
31
- resolve([info = _lostInfo](jsi::Runtime &runtime) mutable {
32
- return JSIConverter<std::shared_ptr<GPUDeviceLostInfo>>::toJSI(runtime,
33
- info);
34
- });
35
- }
36
-
37
- _lostHandle.reset();
38
- }
39
-
40
- void GPUDevice::forceLossForTesting() {
41
- // wgpu::StringView view("forceLossForTesting invoked from JS");
42
- _instance.ForceLoss(wgpu::DeviceLostReason::Unknown,
43
- "forceLossForTesting invoked from JS");
44
- }
45
-
46
- std::shared_ptr<GPUBuffer>
47
- GPUDevice::createBuffer(std::shared_ptr<GPUBufferDescriptor> descriptor) {
48
- wgpu::BufferDescriptor desc;
49
- Convertor conv;
50
- if (!conv(desc, descriptor)) {
51
- throw std::runtime_error(
52
- "GPUDevice::createBuffer(): Error with GPUBufferDescriptor");
53
- }
54
- auto result = _instance.CreateBuffer(&desc);
55
- return std::make_shared<GPUBuffer>(result, _async,
56
- descriptor->label.value_or(""));
57
- }
58
-
59
- std::shared_ptr<GPUSupportedLimits> GPUDevice::getLimits() {
60
- wgpu::Limits limits{};
61
- if (!_instance.GetLimits(&limits)) {
62
- throw std::runtime_error("failed to get device limits");
63
- }
64
- return std::make_shared<GPUSupportedLimits>(limits);
65
- }
66
-
67
- std::shared_ptr<GPUQueue> GPUDevice::getQueue() {
68
- auto result = _instance.GetQueue();
69
- return std::make_shared<GPUQueue>(result, _async, _label);
70
- }
71
-
72
- std::shared_ptr<GPUCommandEncoder> GPUDevice::createCommandEncoder(
73
- std::optional<std::shared_ptr<GPUCommandEncoderDescriptor>> descriptor) {
74
- wgpu::CommandEncoderDescriptor desc;
75
- Convertor conv;
76
- if (!conv(desc, descriptor)) {
77
- throw std::runtime_error("Error with GPUCommandEncoderDescriptor");
78
- }
79
- auto result = _instance.CreateCommandEncoder(&desc);
80
- return std::make_shared<GPUCommandEncoder>(
81
- result,
82
- descriptor.has_value() ? descriptor.value()->label.value_or("") : "");
83
- }
84
-
85
- void GPUDevice::destroy() {
86
- _instance.Destroy();
87
- notifyDeviceLost(wgpu::DeviceLostReason::Destroyed, "device was destroyed");
88
- }
89
-
90
- std::shared_ptr<GPUTexture>
91
- GPUDevice::createTexture(std::shared_ptr<GPUTextureDescriptor> descriptor) {
92
- wgpu::TextureDescriptor desc;
93
- Convertor conv;
94
- if (!conv(desc, descriptor)) {
95
- throw std::runtime_error("Error with GPUTextureDescriptor");
96
- }
97
- auto texture = _instance.CreateTexture(&desc);
98
- return std::make_shared<GPUTexture>(texture, descriptor->label.value_or(""));
99
- }
100
-
101
- std::shared_ptr<GPUShaderModule> GPUDevice::createShaderModule(
102
- std::shared_ptr<GPUShaderModuleDescriptor> descriptor) {
103
- wgpu::ShaderSourceWGSL wgsl_desc{};
104
- wgpu::ShaderModuleDescriptor sm_desc{};
105
- Convertor conv;
106
- if (!conv(wgsl_desc.code, descriptor->code) ||
107
- !conv(sm_desc.label, descriptor->label)) {
108
- return {};
109
- }
110
- sm_desc.nextInChain = &wgsl_desc;
111
- if (descriptor->code.find('\0') != std::string::npos) {
112
- auto mod = _instance.CreateErrorShaderModule(
113
- &sm_desc, "The WGSL shader contains an illegal character '\\0'");
114
- return std::make_shared<GPUShaderModule>(mod, _async, sm_desc.label.data);
115
- }
116
- auto module = _instance.CreateShaderModule(&sm_desc);
117
- return std::make_shared<GPUShaderModule>(module, _async,
118
- descriptor->label.value_or(""));
119
- }
120
-
121
- std::shared_ptr<GPURenderPipeline> GPUDevice::createRenderPipeline(
122
- std::shared_ptr<GPURenderPipelineDescriptor> descriptor) {
123
- wgpu::RenderPipelineDescriptor desc{};
124
- Convertor conv;
125
- if (!conv(desc, descriptor)) {
126
- throw std::runtime_error("Error with GPURenderPipelineDescriptor");
127
- }
128
- // assert(desc.fragment != nullptr && "Fragment state must not be null");
129
- auto renderPipeline = _instance.CreateRenderPipeline(&desc);
130
- return std::make_shared<GPURenderPipeline>(renderPipeline,
131
- descriptor->label.value_or(""));
132
- }
133
-
134
- std::shared_ptr<GPUBindGroup>
135
- GPUDevice::createBindGroup(std::shared_ptr<GPUBindGroupDescriptor> descriptor) {
136
- Convertor conv;
137
- wgpu::BindGroupDescriptor desc{};
138
- if (!conv(desc.label, descriptor->label) ||
139
- !conv(desc.layout, descriptor->layout) ||
140
- !conv(desc.entries, desc.entryCount, descriptor->entries)) {
141
- throw std::runtime_error(
142
- "GPUBindGroup::createBindGroup(): Error with GPUBindGroupDescriptor");
143
- }
144
- auto bindGroup = _instance.CreateBindGroup(&desc);
145
- return std::make_shared<GPUBindGroup>(bindGroup,
146
- descriptor->label.value_or(""));
147
- }
148
-
149
- std::shared_ptr<GPUSampler> GPUDevice::createSampler(
150
- std::optional<std::shared_ptr<GPUSamplerDescriptor>> descriptor) {
151
- wgpu::SamplerDescriptor desc;
152
- Convertor conv;
153
- if (!conv(desc, descriptor)) {
154
- throw std::runtime_error("GPUDevice::createSampler(): Error with "
155
- "GPUSamplerDescriptor");
156
- }
157
- auto sampler = _instance.CreateSampler(&desc);
158
- return std::make_shared<GPUSampler>(
159
- sampler,
160
- descriptor.has_value() ? descriptor.value()->label.value_or("") : "");
161
- }
162
-
163
- std::shared_ptr<GPUComputePipeline> GPUDevice::createComputePipeline(
164
- std::shared_ptr<GPUComputePipelineDescriptor> descriptor) {
165
- wgpu::ComputePipelineDescriptor desc;
166
- Convertor conv;
167
- if (!conv(desc, descriptor)) {
168
- throw std::runtime_error("GPUDevice::createComputePipeline(): Error with "
169
- "GPUComputePipelineDescriptor");
170
- }
171
- auto computePipeline = _instance.CreateComputePipeline(&desc);
172
- return std::make_shared<GPUComputePipeline>(computePipeline,
173
- descriptor->label.value_or(""));
174
- }
175
-
176
- std::shared_ptr<GPUQuerySet>
177
- GPUDevice::createQuerySet(std::shared_ptr<GPUQuerySetDescriptor> descriptor) {
178
- wgpu::QuerySetDescriptor desc;
179
- Convertor conv;
180
- if (!conv(desc, descriptor)) {
181
- throw std::runtime_error("GPUDevice::createQuerySet(): Error with "
182
- "GPUQuerySetDescriptor");
183
- }
184
- auto querySet = _instance.CreateQuerySet(&desc);
185
- return std::make_shared<GPUQuerySet>(querySet,
186
- descriptor->label.value_or(""));
187
- }
188
-
189
- std::shared_ptr<GPURenderBundleEncoder> GPUDevice::createRenderBundleEncoder(
190
- std::shared_ptr<GPURenderBundleEncoderDescriptor> descriptor) {
191
- Convertor conv;
192
-
193
- wgpu::RenderBundleEncoderDescriptor desc{};
194
- if (!conv(desc.label, descriptor->label) ||
195
- !conv(desc.colorFormats, desc.colorFormatCount,
196
- descriptor->colorFormats) ||
197
- !conv(desc.depthStencilFormat, descriptor->depthStencilFormat) ||
198
- !conv(desc.sampleCount, descriptor->sampleCount) ||
199
- !conv(desc.depthReadOnly, descriptor->depthReadOnly) ||
200
- !conv(desc.stencilReadOnly, descriptor->stencilReadOnly)) {
201
- return {};
202
- }
203
- return std::make_shared<GPURenderBundleEncoder>(
204
- _instance.CreateRenderBundleEncoder(&desc),
205
- descriptor->label.value_or(""));
206
- }
207
-
208
- std::shared_ptr<GPUBindGroupLayout> GPUDevice::createBindGroupLayout(
209
- std::shared_ptr<GPUBindGroupLayoutDescriptor> descriptor) {
210
- Convertor conv;
211
-
212
- wgpu::BindGroupLayoutDescriptor desc{};
213
- if (!conv(desc.label, descriptor->label) ||
214
- !conv(desc.entries, desc.entryCount, descriptor->entries)) {
215
- return {};
216
- }
217
- return std::make_shared<GPUBindGroupLayout>(
218
- _instance.CreateBindGroupLayout(&desc), descriptor->label.value_or(""));
219
- }
220
-
221
- std::shared_ptr<GPUPipelineLayout> GPUDevice::createPipelineLayout(
222
- std::shared_ptr<GPUPipelineLayoutDescriptor> descriptor) {
223
- Convertor conv;
224
-
225
- wgpu::PipelineLayoutDescriptor desc{};
226
- if (!conv(desc.label, descriptor->label) ||
227
- !conv(desc.bindGroupLayouts, desc.bindGroupLayoutCount,
228
- descriptor->bindGroupLayouts)) {
229
- return {};
230
- }
231
- return std::make_shared<GPUPipelineLayout>(
232
- _instance.CreatePipelineLayout(&desc), descriptor->label.value_or(""));
233
- }
234
-
235
- std::shared_ptr<GPUExternalTexture> GPUDevice::importExternalTexture(
236
- std::shared_ptr<GPUExternalTextureDescriptor> descriptor) {
237
- throw std::runtime_error(
238
- "GPUDevice::importExternalTexture(): Not implemented");
239
- }
240
-
241
- async::AsyncTaskHandle GPUDevice::createComputePipelineAsync(
242
- std::shared_ptr<GPUComputePipelineDescriptor> descriptor) {
243
- wgpu::ComputePipelineDescriptor desc{};
244
- Convertor conv;
245
- if (!conv(desc, descriptor)) {
246
- throw std::runtime_error("GPUDevice::createComputePipeline(): Error with "
247
- "GPUComputePipelineDescriptor");
248
- }
249
-
250
- auto label = std::string(
251
- descriptor->label.has_value() ? descriptor->label.value() : "");
252
- auto pipelineHolder = std::make_shared<GPUComputePipeline>(nullptr, label);
253
-
254
- return _async->postTask([device = _instance, desc, descriptor,
255
- pipelineHolder](
256
- const async::AsyncTaskHandle::ResolveFunction
257
- &resolve,
258
- const async::AsyncTaskHandle::RejectFunction
259
- &reject) {
260
- (void)descriptor;
261
- device.CreateComputePipelineAsync(
262
- &desc, wgpu::CallbackMode::AllowProcessEvents,
263
- [pipelineHolder, resolve,
264
- reject](wgpu::CreatePipelineAsyncStatus status,
265
- wgpu::ComputePipeline pipeline, const char *msg) mutable {
266
- if (status == wgpu::CreatePipelineAsyncStatus::Success && pipeline) {
267
- pipelineHolder->_instance = pipeline;
268
- resolve([pipelineHolder](jsi::Runtime &runtime) mutable {
269
- return JSIConverter<std::shared_ptr<GPUComputePipeline>>::toJSI(
270
- runtime, pipelineHolder);
271
- });
272
- } else {
273
- std::string error =
274
- msg ? std::string(msg) : "Failed to create compute pipeline";
275
- reject(std::move(error));
276
- }
277
- });
278
- });
279
- }
280
-
281
- async::AsyncTaskHandle GPUDevice::createRenderPipelineAsync(
282
- std::shared_ptr<GPURenderPipelineDescriptor> descriptor) {
283
- wgpu::RenderPipelineDescriptor desc{};
284
- Convertor conv;
285
- if (!conv(desc, descriptor)) {
286
- throw std::runtime_error(
287
- "GPUDevice::createRenderPipelineAsync(): Error with "
288
- "GPURenderPipelineDescriptor");
289
- }
290
-
291
- auto label = std::string(
292
- descriptor->label.has_value() ? descriptor->label.value() : "");
293
- auto pipelineHolder = std::make_shared<GPURenderPipeline>(nullptr, label);
294
-
295
- return _async->postTask([device = _instance, desc, descriptor,
296
- pipelineHolder](
297
- const async::AsyncTaskHandle::ResolveFunction
298
- &resolve,
299
- const async::AsyncTaskHandle::RejectFunction
300
- &reject) {
301
- (void)descriptor;
302
- device.CreateRenderPipelineAsync(
303
- &desc, wgpu::CallbackMode::AllowProcessEvents,
304
- [pipelineHolder, resolve,
305
- reject](wgpu::CreatePipelineAsyncStatus status,
306
- wgpu::RenderPipeline pipeline, const char *msg) mutable {
307
- if (status == wgpu::CreatePipelineAsyncStatus::Success && pipeline) {
308
- pipelineHolder->_instance = pipeline;
309
- resolve([pipelineHolder](jsi::Runtime &runtime) mutable {
310
- return JSIConverter<std::shared_ptr<GPURenderPipeline>>::toJSI(
311
- runtime, pipelineHolder);
312
- });
313
- } else {
314
- std::string error =
315
- msg ? std::string(msg) : "Failed to create render pipeline";
316
- reject(std::move(error));
317
- }
318
- });
319
- });
320
- }
321
-
322
- void GPUDevice::pushErrorScope(wgpu::ErrorFilter filter) {
323
- _instance.PushErrorScope(filter);
324
- }
325
-
326
- async::AsyncTaskHandle GPUDevice::popErrorScope() {
327
- auto device = _instance;
328
-
329
- return _async->postTask([device](const async::AsyncTaskHandle::ResolveFunction
330
- &resolve,
331
- const async::AsyncTaskHandle::RejectFunction
332
- &reject) {
333
- device.PopErrorScope(
334
- wgpu::CallbackMode::AllowProcessEvents,
335
- [resolve, reject](wgpu::PopErrorScopeStatus status,
336
- wgpu::ErrorType type, wgpu::StringView message) {
337
- if (status == wgpu::PopErrorScopeStatus::Error ||
338
- status == wgpu::PopErrorScopeStatus::CallbackCancelled) {
339
- reject("PopErrorScope failed");
340
- return;
341
- }
342
-
343
- std::string messageString =
344
- message.length ? std::string(message.data, message.length) : "";
345
-
346
- switch (type) {
347
- case wgpu::ErrorType::NoError:
348
- resolve([](jsi::Runtime &runtime) mutable {
349
- return jsi::Value::null();
350
- });
351
- break;
352
- case wgpu::ErrorType::Validation: {
353
- auto error = std::make_shared<GPUValidationError>(messageString);
354
- resolve([error](jsi::Runtime &runtime) mutable {
355
- return JSIConverter<std::shared_ptr<GPUValidationError>>::toJSI(
356
- runtime, error);
357
- });
358
- break;
359
- }
360
- case wgpu::ErrorType::OutOfMemory: {
361
- auto error = std::make_shared<GPUOutOfMemoryError>(messageString);
362
- resolve([error](jsi::Runtime &runtime) mutable {
363
- return JSIConverter<std::shared_ptr<GPUOutOfMemoryError>>::toJSI(
364
- runtime, error);
365
- });
366
- break;
367
- }
368
- case wgpu::ErrorType::Internal:
369
- case wgpu::ErrorType::Unknown: {
370
- auto error = std::make_shared<GPUInternalError>(messageString);
371
- resolve([error](jsi::Runtime &runtime) mutable {
372
- return JSIConverter<std::shared_ptr<GPUInternalError>>::toJSI(
373
- runtime, error);
374
- });
375
- break;
376
- }
377
- default:
378
- reject("Unhandled GPU error type");
379
- return;
380
- }
381
- });
382
- });
383
- }
384
-
385
- std::unordered_set<std::string> GPUDevice::getFeatures() {
386
- wgpu::SupportedFeatures supportedFeatures;
387
- _instance.GetFeatures(&supportedFeatures);
388
- std::unordered_set<std::string> result;
389
- for (size_t i = 0; i < supportedFeatures.featureCount; ++i) {
390
- auto feature = supportedFeatures.features[i];
391
- std::string name;
392
- convertEnumToJSUnion(feature, &name);
393
- result.insert(name);
394
- }
395
- return result;
396
- }
397
-
398
- async::AsyncTaskHandle GPUDevice::getLost() {
399
- if (_lostHandle.has_value()) {
400
- return *_lostHandle;
401
- }
402
-
403
- if (_lostSettled && _lostInfo) {
404
- return _async->postTask(
405
- [info = _lostInfo](
406
- const async::AsyncTaskHandle::ResolveFunction &resolve,
407
- const async::AsyncTaskHandle::RejectFunction & /*reject*/) {
408
- resolve([info](jsi::Runtime &runtime) mutable {
409
- return JSIConverter<std::shared_ptr<GPUDeviceLostInfo>>::toJSI(
410
- runtime, info);
411
- });
412
- },
413
- false);
414
- }
415
-
416
- auto handle = _async->postTask(
417
- [this](const async::AsyncTaskHandle::ResolveFunction &resolve,
418
- const async::AsyncTaskHandle::RejectFunction & /*reject*/) {
419
- if (_lostSettled && _lostInfo) {
420
- resolve([info = _lostInfo](jsi::Runtime &runtime) mutable {
421
- return JSIConverter<std::shared_ptr<GPUDeviceLostInfo>>::toJSI(
422
- runtime, info);
423
- });
424
- return;
425
- }
426
-
427
- _lostResolve = resolve;
428
- },
429
- false);
430
-
431
- _lostHandle = handle;
432
- return handle;
433
- }
434
- void GPUDevice::addEventListener(std::string type, jsi::Function callback) {
435
- auto funcPtr = std::make_shared<jsi::Function>(std::move(callback));
436
- _eventListeners[type].push_back(funcPtr);
437
- }
438
-
439
- void GPUDevice::removeEventListener(std::string type, jsi::Function callback) {
440
- // Note: Since jsi::Function doesn't support equality comparison,
441
- // we cannot reliably remove a specific listener. This is a no-op.
442
- // Most use cases (like BabylonJS) only need addEventListener to work.
443
- (void)type;
444
- (void)callback;
445
- }
446
-
447
- void GPUDevice::notifyUncapturedError(wgpu::ErrorType type,
448
- std::string message) {
449
- auto it = _eventListeners.find("uncapturederror");
450
- if (it == _eventListeners.end() || it->second.empty()) {
451
- return;
452
- }
453
-
454
- auto runtime = getCreationRuntime();
455
- if (runtime == nullptr) {
456
- return;
457
- }
458
-
459
- // Create the appropriate error object based on type
460
- GPUErrorVariant error;
461
- switch (type) {
462
- case wgpu::ErrorType::Validation:
463
- error = std::make_shared<GPUValidationError>(message);
464
- break;
465
- case wgpu::ErrorType::OutOfMemory:
466
- error = std::make_shared<GPUOutOfMemoryError>(message);
467
- break;
468
- case wgpu::ErrorType::Internal:
469
- case wgpu::ErrorType::Unknown:
470
- default:
471
- error = std::make_shared<GPUInternalError>(message);
472
- break;
473
- }
474
-
475
- // Create the event object
476
- auto event = std::make_shared<GPUUncapturedErrorEvent>(std::move(error));
477
- auto eventValue =
478
- JSIConverter<std::shared_ptr<GPUUncapturedErrorEvent>>::toJSI(*runtime,
479
- event);
480
-
481
- // Call all registered listeners
482
- for (const auto &listener : it->second) {
483
- try {
484
- listener->call(*runtime, eventValue);
485
- } catch (const std::exception &e) {
486
- // Log but don't throw - we don't want one listener to break others
487
- fprintf(stderr, "Error in uncapturederror listener: %s\n", e.what());
488
- }
489
- }
490
- }
491
-
492
- } // namespace rnwgpu