@shopify/react-native-skia 2.10.0 → 2.11.0-next.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 (358) hide show
  1. package/android/CMakeLists.txt +7 -41
  2. package/android/build.gradle +33 -0
  3. package/android/src/main/java/com/shopify/reactnative/skia/RNSkiaPackage.java +1 -2
  4. package/cpp/api/JsiNativeBuffer.h +14 -20
  5. package/cpp/api/JsiSkAnimatedImage.h +13 -16
  6. package/cpp/api/JsiSkAnimatedImageFactory.h +9 -7
  7. package/cpp/api/JsiSkApi.h +94 -90
  8. package/cpp/api/JsiSkCanvas.h +108 -251
  9. package/cpp/api/JsiSkColorFilterFactory.h +45 -63
  10. package/cpp/api/JsiSkContourMeasure.h +19 -29
  11. package/cpp/api/JsiSkContourMeasureIter.h +6 -6
  12. package/cpp/api/JsiSkConverters.h +410 -0
  13. package/cpp/api/JsiSkDataFactory.h +9 -15
  14. package/cpp/api/JsiSkFont.h +99 -180
  15. package/cpp/api/JsiSkFontMgr.h +19 -21
  16. package/cpp/api/JsiSkFontMgrFactory.h +4 -5
  17. package/cpp/api/JsiSkImage.h +66 -66
  18. package/cpp/api/JsiSkImageFactory.h +66 -63
  19. package/cpp/api/JsiSkImageFilterFactory.h +354 -608
  20. package/cpp/api/JsiSkImageInfo.h +10 -13
  21. package/cpp/api/JsiSkMaskFilterFactory.h +8 -11
  22. package/cpp/api/JsiSkMatrix.h +36 -73
  23. package/cpp/api/JsiSkNativeObjects.h +60 -92
  24. package/cpp/api/JsiSkPaint.h +73 -131
  25. package/cpp/api/JsiSkParagraph.h +36 -53
  26. package/cpp/api/JsiSkParagraphBuilder.h +36 -64
  27. package/cpp/api/JsiSkParagraphBuilderFactory.h +11 -16
  28. package/cpp/api/JsiSkPath.h +216 -349
  29. package/cpp/api/JsiSkPathBuilder.h +133 -269
  30. package/cpp/api/JsiSkPathBuilderFactory.h +11 -11
  31. package/cpp/api/JsiSkPathEffectFactory.h +52 -72
  32. package/cpp/api/JsiSkPathFactory.h +129 -195
  33. package/cpp/api/JsiSkPicture.h +12 -18
  34. package/cpp/api/JsiSkPictureRecorder.h +14 -15
  35. package/cpp/api/JsiSkPoint.h +4 -4
  36. package/cpp/api/JsiSkRRect.h +7 -8
  37. package/cpp/api/JsiSkRSXform.h +10 -23
  38. package/cpp/api/JsiSkRect.h +23 -31
  39. package/cpp/api/JsiSkRuntimeEffect.h +67 -83
  40. package/cpp/api/JsiSkRuntimeEffectFactory.h +6 -10
  41. package/cpp/api/JsiSkRuntimeShaderBuilder.h +5 -14
  42. package/cpp/api/JsiSkSVG.h +4 -4
  43. package/cpp/api/JsiSkShaderFactory.h +153 -225
  44. package/cpp/api/JsiSkSkottie.h +104 -126
  45. package/cpp/api/JsiSkSurface.h +11 -14
  46. package/cpp/api/JsiSkSurfaceFactory.h +6 -7
  47. package/cpp/api/JsiSkTextBlobFactory.h +31 -54
  48. package/cpp/api/JsiSkTypeface.h +8 -12
  49. package/cpp/api/JsiSkTypefaceFactory.h +9 -7
  50. package/cpp/api/JsiSkTypefaceFontProvider.h +22 -23
  51. package/cpp/api/JsiSkTypefaceFontProviderFactory.h +5 -6
  52. package/cpp/api/JsiSkVertices.h +6 -8
  53. package/cpp/api/JsiSkiaContext.h +10 -11
  54. package/cpp/api/JsiVideo.h +31 -71
  55. package/cpp/dawn/include/dawn/dawn_proc.h +53 -0
  56. package/cpp/dawn/include/dawn/dawn_proc_table.h +330 -0
  57. package/cpp/dawn/include/dawn/dawn_thread_dispatch_proc.h +47 -0
  58. package/cpp/dawn/include/dawn/dawn_version.h +41 -0
  59. package/cpp/dawn/include/dawn/native/D3D11Backend.h +65 -0
  60. package/cpp/dawn/include/dawn/native/D3D12Backend.h +86 -0
  61. package/cpp/dawn/include/dawn/native/D3DBackend.h +56 -0
  62. package/cpp/dawn/include/dawn/native/DawnNative.h +369 -0
  63. package/cpp/dawn/include/dawn/native/MetalBackend.h +56 -0
  64. package/cpp/dawn/include/dawn/native/NullBackend.h +39 -0
  65. package/cpp/dawn/include/dawn/native/OpenGLBackend.h +89 -0
  66. package/cpp/dawn/include/dawn/native/VulkanBackend.h +183 -0
  67. package/cpp/dawn/include/dawn/native/WebGPUBackend.h +49 -0
  68. package/cpp/dawn/include/dawn/native/dawn_native_export.h +49 -0
  69. package/cpp/dawn/include/dawn/platform/DawnPlatform.h +210 -0
  70. package/cpp/dawn/include/dawn/platform/dawn_platform_export.h +49 -0
  71. package/cpp/dawn/include/dawn/replay/Replay.h +99 -0
  72. package/cpp/dawn/include/dawn/replay/dawn_replay_export.h +49 -0
  73. package/cpp/dawn/include/dawn/webgpu_cpp_print.h +2844 -0
  74. package/cpp/dawn/include/tint/tint.h +90 -0
  75. package/cpp/dawn/include/webgpu/webgpu.h +4987 -0
  76. package/cpp/dawn/include/webgpu/webgpu_cpp.h +10080 -0
  77. package/cpp/dawn/include/webgpu/webgpu_cpp_chained_struct.h +57 -0
  78. package/cpp/dawn/include/webgpu/webgpu_enum_class_bitmasks.h +161 -0
  79. package/cpp/dawn/include/webgpu/webgpu_glfw.h +88 -0
  80. package/cpp/jsi/JSIConverter.h +0 -31
  81. package/cpp/jsi/NativeObject.h +11 -6
  82. package/cpp/rnskia/RNDawnContext.h +18 -2
  83. package/cpp/rnskia/RNDawnInterop.cpp +19 -0
  84. package/cpp/rnskia/RNDawnUtils.h +18 -1
  85. package/cpp/rnskia/RNSkManager.cpp +5 -162
  86. package/cpp/skia/include/gpu/ganesh/GrDriverBugWorkaroundsAutogen.h +2 -0
  87. package/cpp/skia/src/gpu/graphite/ContextOptionsPriv.h +45 -0
  88. package/cpp/skia/src/gpu/graphite/ResourceTypes.h +360 -0
  89. package/cpp/skia/src/gpu/graphite/TextureProxyView.h +105 -0
  90. package/lib/commonjs/mock/index.js +0 -1
  91. package/lib/commonjs/mock/index.js.map +1 -1
  92. package/lib/commonjs/skia/types/Image/ImageFactory.d.ts +15 -6
  93. package/lib/commonjs/skia/types/Image/ImageFactory.js.map +1 -1
  94. package/lib/commonjs/skia/types/Skia.d.ts +5 -15
  95. package/lib/commonjs/skia/types/Skia.js.map +1 -1
  96. package/lib/commonjs/skia/types/index.d.ts +0 -1
  97. package/lib/commonjs/skia/types/index.js +0 -11
  98. package/lib/commonjs/skia/types/index.js.map +1 -1
  99. package/lib/commonjs/skia/web/JsiSkImageFactory.d.ts +2 -2
  100. package/lib/commonjs/skia/web/JsiSkImageFactory.js +2 -2
  101. package/lib/commonjs/skia/web/JsiSkImageFactory.js.map +1 -1
  102. package/lib/commonjs/skia/web/JsiSkia.js +1 -4
  103. package/lib/commonjs/skia/web/JsiSkia.js.map +1 -1
  104. package/lib/commonjs/views/index.d.ts +0 -1
  105. package/lib/commonjs/views/index.js +0 -11
  106. package/lib/commonjs/views/index.js.map +1 -1
  107. package/lib/module/mock/index.js +0 -1
  108. package/lib/module/mock/index.js.map +1 -1
  109. package/lib/module/skia/types/Image/ImageFactory.d.ts +15 -6
  110. package/lib/module/skia/types/Image/ImageFactory.js.map +1 -1
  111. package/lib/module/skia/types/Skia.d.ts +5 -15
  112. package/lib/module/skia/types/Skia.js.map +1 -1
  113. package/lib/module/skia/types/index.d.ts +0 -1
  114. package/lib/module/skia/types/index.js +0 -1
  115. package/lib/module/skia/types/index.js.map +1 -1
  116. package/lib/module/skia/web/JsiSkImageFactory.d.ts +2 -2
  117. package/lib/module/skia/web/JsiSkImageFactory.js +2 -2
  118. package/lib/module/skia/web/JsiSkImageFactory.js.map +1 -1
  119. package/lib/module/skia/web/JsiSkia.js +1 -4
  120. package/lib/module/skia/web/JsiSkia.js.map +1 -1
  121. package/lib/module/views/index.d.ts +0 -1
  122. package/lib/module/views/index.js +0 -1
  123. package/lib/module/views/index.js.map +1 -1
  124. package/lib/typescript/lib/commonjs/mock/index.d.ts +0 -1
  125. package/lib/typescript/lib/commonjs/skia/web/JsiSkImageFactory.d.ts +2 -2
  126. package/lib/typescript/lib/commonjs/skia/web/JsiSkia.d.ts +1 -2
  127. package/lib/typescript/lib/module/mock/index.d.ts +0 -2
  128. package/lib/typescript/lib/module/skia/Skia.web.d.ts +1 -2
  129. package/lib/typescript/lib/module/skia/types/index.d.ts +0 -1
  130. package/lib/typescript/lib/module/skia/web/JsiSkImageFactory.d.ts +2 -2
  131. package/lib/typescript/lib/module/skia/web/JsiSkia.d.ts +1 -2
  132. package/lib/typescript/lib/module/views/index.d.ts +0 -1
  133. package/lib/typescript/src/skia/types/Image/ImageFactory.d.ts +15 -6
  134. package/lib/typescript/src/skia/types/Skia.d.ts +5 -15
  135. package/lib/typescript/src/skia/types/index.d.ts +0 -1
  136. package/lib/typescript/src/skia/web/JsiSkImageFactory.d.ts +2 -2
  137. package/lib/typescript/src/views/index.d.ts +0 -1
  138. package/libs/.graphite +1 -0
  139. package/package.json +8 -9
  140. package/react-native-skia.podspec +38 -4
  141. package/src/mock/index.ts +0 -1
  142. package/src/skia/types/Image/ImageFactory.ts +15 -6
  143. package/src/skia/types/Skia.ts +5 -15
  144. package/src/skia/types/index.ts +0 -1
  145. package/src/skia/web/JsiSkImageFactory.ts +3 -3
  146. package/src/skia/web/JsiSkia.ts +2 -5
  147. package/src/views/index.ts +0 -1
  148. package/android/cpp/jni/JniWebGPUView.cpp +0 -112
  149. package/android/cpp/rnskia-android/SkiaPlatformContext.h +0 -26
  150. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUSurfaceView.java +0 -43
  151. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUTextureView.java +0 -50
  152. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUView.java +0 -98
  153. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUViewAPI.java +0 -19
  154. package/android/src/main/java/com/shopify/reactnative/skia/WebGPUViewManager.java +0 -58
  155. package/apple/RNWebGPUAppleNativeBuffer.mm +0 -33
  156. package/apple/SkiaPlatformContext.h +0 -20
  157. package/apple/SkiaPlatformContext.mm +0 -21
  158. package/apple/SkiaWebGPUView.mm +0 -81
  159. package/apple/WebGPUMetalView.mm +0 -136
  160. package/cpp/rnwgpu/ArrayBuffer.h +0 -116
  161. package/cpp/rnwgpu/Canvas.h +0 -52
  162. package/cpp/rnwgpu/PlatformContext.h +0 -18
  163. package/cpp/rnwgpu/SurfaceRegistry.h +0 -605
  164. package/cpp/rnwgpu/api/AppleNativeBuffer.h +0 -22
  165. package/cpp/rnwgpu/api/Convertors.h +0 -783
  166. package/cpp/rnwgpu/api/External.h +0 -12
  167. package/cpp/rnwgpu/api/GPU.cpp +0 -162
  168. package/cpp/rnwgpu/api/GPU.h +0 -60
  169. package/cpp/rnwgpu/api/GPUAdapter.cpp +0 -239
  170. package/cpp/rnwgpu/api/GPUAdapter.h +0 -60
  171. package/cpp/rnwgpu/api/GPUAdapterInfo.h +0 -57
  172. package/cpp/rnwgpu/api/GPUBindGroup.cpp +0 -3
  173. package/cpp/rnwgpu/api/GPUBindGroup.h +0 -51
  174. package/cpp/rnwgpu/api/GPUBindGroupLayout.h +0 -52
  175. package/cpp/rnwgpu/api/GPUBuffer.cpp +0 -107
  176. package/cpp/rnwgpu/api/GPUBuffer.h +0 -88
  177. package/cpp/rnwgpu/api/GPUCanvasContext.cpp +0 -75
  178. package/cpp/rnwgpu/api/GPUCanvasContext.h +0 -70
  179. package/cpp/rnwgpu/api/GPUCommandBuffer.h +0 -45
  180. package/cpp/rnwgpu/api/GPUCommandEncoder.cpp +0 -179
  181. package/cpp/rnwgpu/api/GPUCommandEncoder.h +0 -111
  182. package/cpp/rnwgpu/api/GPUCompilationInfo.h +0 -79
  183. package/cpp/rnwgpu/api/GPUCompilationMessage.h +0 -36
  184. package/cpp/rnwgpu/api/GPUComputePassEncoder.cpp +0 -60
  185. package/cpp/rnwgpu/api/GPUComputePassEncoder.h +0 -85
  186. package/cpp/rnwgpu/api/GPUComputePipeline.cpp +0 -12
  187. package/cpp/rnwgpu/api/GPUComputePipeline.h +0 -60
  188. package/cpp/rnwgpu/api/GPUDevice.cpp +0 -613
  189. package/cpp/rnwgpu/api/GPUDevice.h +0 -258
  190. package/cpp/rnwgpu/api/GPUDeviceLostInfo.cpp +0 -7
  191. package/cpp/rnwgpu/api/GPUDeviceLostInfo.h +0 -40
  192. package/cpp/rnwgpu/api/GPUError.h +0 -35
  193. package/cpp/rnwgpu/api/GPUExtent3D.h +0 -66
  194. package/cpp/rnwgpu/api/GPUExternalTexture.cpp +0 -139
  195. package/cpp/rnwgpu/api/GPUExternalTexture.h +0 -95
  196. package/cpp/rnwgpu/api/GPUFeatures.h +0 -203
  197. package/cpp/rnwgpu/api/GPUInternalError.h +0 -31
  198. package/cpp/rnwgpu/api/GPUOrigin2D.h +0 -55
  199. package/cpp/rnwgpu/api/GPUOrigin3D.h +0 -62
  200. package/cpp/rnwgpu/api/GPUOutOfMemoryError.h +0 -33
  201. package/cpp/rnwgpu/api/GPUPipelineLayout.h +0 -45
  202. package/cpp/rnwgpu/api/GPUQuerySet.cpp +0 -11
  203. package/cpp/rnwgpu/api/GPUQuerySet.h +0 -73
  204. package/cpp/rnwgpu/api/GPUQueue.cpp +0 -179
  205. package/cpp/rnwgpu/api/GPUQueue.h +0 -84
  206. package/cpp/rnwgpu/api/GPURenderBundle.h +0 -44
  207. package/cpp/rnwgpu/api/GPURenderBundleEncoder.cpp +0 -131
  208. package/cpp/rnwgpu/api/GPURenderBundleEncoder.h +0 -110
  209. package/cpp/rnwgpu/api/GPURenderPassEncoder.cpp +0 -165
  210. package/cpp/rnwgpu/api/GPURenderPassEncoder.h +0 -130
  211. package/cpp/rnwgpu/api/GPURenderPipeline.cpp +0 -13
  212. package/cpp/rnwgpu/api/GPURenderPipeline.h +0 -61
  213. package/cpp/rnwgpu/api/GPUSampler.h +0 -44
  214. package/cpp/rnwgpu/api/GPUShaderModule.cpp +0 -56
  215. package/cpp/rnwgpu/api/GPUShaderModule.h +0 -66
  216. package/cpp/rnwgpu/api/GPUSharedFence.cpp +0 -80
  217. package/cpp/rnwgpu/api/GPUSharedFence.h +0 -53
  218. package/cpp/rnwgpu/api/GPUSharedTextureMemory.cpp +0 -135
  219. package/cpp/rnwgpu/api/GPUSharedTextureMemory.h +0 -75
  220. package/cpp/rnwgpu/api/GPUSupportedLimits.cpp +0 -129
  221. package/cpp/rnwgpu/api/GPUSupportedLimits.h +0 -131
  222. package/cpp/rnwgpu/api/GPUTexture.cpp +0 -47
  223. package/cpp/rnwgpu/api/GPUTexture.h +0 -162
  224. package/cpp/rnwgpu/api/GPUTextureView.h +0 -44
  225. package/cpp/rnwgpu/api/GPUUncapturedErrorEvent.h +0 -60
  226. package/cpp/rnwgpu/api/GPUValidationError.h +0 -32
  227. package/cpp/rnwgpu/api/ImageBitmap.h +0 -62
  228. package/cpp/rnwgpu/api/NativeBufferUtils.h +0 -87
  229. package/cpp/rnwgpu/api/RNWebGPU.h +0 -82
  230. package/cpp/rnwgpu/api/WebGPUConstants.h +0 -36
  231. package/cpp/rnwgpu/api/descriptors/GPUBindGroupDescriptor.h +0 -64
  232. package/cpp/rnwgpu/api/descriptors/GPUBindGroupEntry.h +0 -78
  233. package/cpp/rnwgpu/api/descriptors/GPUBindGroupLayoutDescriptor.h +0 -56
  234. package/cpp/rnwgpu/api/descriptors/GPUBindGroupLayoutEntry.h +0 -97
  235. package/cpp/rnwgpu/api/descriptors/GPUBlendComponent.h +0 -57
  236. package/cpp/rnwgpu/api/descriptors/GPUBlendState.h +0 -52
  237. package/cpp/rnwgpu/api/descriptors/GPUBufferBinding.h +0 -56
  238. package/cpp/rnwgpu/api/descriptors/GPUBufferBindingLayout.h +0 -56
  239. package/cpp/rnwgpu/api/descriptors/GPUBufferDescriptor.h +0 -59
  240. package/cpp/rnwgpu/api/descriptors/GPUBufferUsage.h +0 -39
  241. package/cpp/rnwgpu/api/descriptors/GPUCanvasConfiguration.h +0 -76
  242. package/cpp/rnwgpu/api/descriptors/GPUColor.h +0 -66
  243. package/cpp/rnwgpu/api/descriptors/GPUColorTargetState.h +0 -58
  244. package/cpp/rnwgpu/api/descriptors/GPUColorWrite.h +0 -29
  245. package/cpp/rnwgpu/api/descriptors/GPUCommandBufferDescriptor.h +0 -45
  246. package/cpp/rnwgpu/api/descriptors/GPUCommandEncoderDescriptor.h +0 -45
  247. package/cpp/rnwgpu/api/descriptors/GPUComputePassDescriptor.h +0 -56
  248. package/cpp/rnwgpu/api/descriptors/GPUComputePassTimestampWrites.h +0 -58
  249. package/cpp/rnwgpu/api/descriptors/GPUComputePipelineDescriptor.h +0 -67
  250. package/cpp/rnwgpu/api/descriptors/GPUDawnTogglesDescriptor.h +0 -56
  251. package/cpp/rnwgpu/api/descriptors/GPUDepthStencilState.h +0 -103
  252. package/cpp/rnwgpu/api/descriptors/GPUDeviceDescriptor.h +0 -109
  253. package/cpp/rnwgpu/api/descriptors/GPUExternalTextureBindingLayout.h +0 -38
  254. package/cpp/rnwgpu/api/descriptors/GPUExternalTextureDescriptor.h +0 -90
  255. package/cpp/rnwgpu/api/descriptors/GPUFragmentState.h +0 -73
  256. package/cpp/rnwgpu/api/descriptors/GPUImageCopyBuffer.h +0 -62
  257. package/cpp/rnwgpu/api/descriptors/GPUImageCopyExternalImage.h +0 -63
  258. package/cpp/rnwgpu/api/descriptors/GPUImageCopyTexture.h +0 -65
  259. package/cpp/rnwgpu/api/descriptors/GPUImageCopyTextureTagged.h +0 -81
  260. package/cpp/rnwgpu/api/descriptors/GPUImageDataLayout.h +0 -54
  261. package/cpp/rnwgpu/api/descriptors/GPUMapMode.h +0 -22
  262. package/cpp/rnwgpu/api/descriptors/GPUMultisampleState.h +0 -54
  263. package/cpp/rnwgpu/api/descriptors/GPUPipelineLayoutDescriptor.h +0 -57
  264. package/cpp/rnwgpu/api/descriptors/GPUPrimitiveState.h +0 -69
  265. package/cpp/rnwgpu/api/descriptors/GPUProgrammableStage.h +0 -61
  266. package/cpp/rnwgpu/api/descriptors/GPUQuerySetDescriptor.h +0 -55
  267. package/cpp/rnwgpu/api/descriptors/GPUQueueDescriptor.h +0 -43
  268. package/cpp/rnwgpu/api/descriptors/GPURenderBundleDescriptor.h +0 -45
  269. package/cpp/rnwgpu/api/descriptors/GPURenderBundleEncoderDescriptor.h +0 -80
  270. package/cpp/rnwgpu/api/descriptors/GPURenderPassColorAttachment.h +0 -81
  271. package/cpp/rnwgpu/api/descriptors/GPURenderPassDepthStencilAttachment.h +0 -101
  272. package/cpp/rnwgpu/api/descriptors/GPURenderPassDescriptor.h +0 -92
  273. package/cpp/rnwgpu/api/descriptors/GPURenderPassTimestampWrites.h +0 -58
  274. package/cpp/rnwgpu/api/descriptors/GPURenderPipelineDescriptor.h +0 -103
  275. package/cpp/rnwgpu/api/descriptors/GPURequestAdapterOptions.h +0 -51
  276. package/cpp/rnwgpu/api/descriptors/GPUSamplerBindingLayout.h +0 -45
  277. package/cpp/rnwgpu/api/descriptors/GPUSamplerDescriptor.h +0 -110
  278. package/cpp/rnwgpu/api/descriptors/GPUShaderModuleCompilationHint.h +0 -60
  279. package/cpp/rnwgpu/api/descriptors/GPUShaderModuleDescriptor.h +0 -62
  280. package/cpp/rnwgpu/api/descriptors/GPUShaderStage.h +0 -25
  281. package/cpp/rnwgpu/api/descriptors/GPUSharedFenceDescriptor.h +0 -58
  282. package/cpp/rnwgpu/api/descriptors/GPUSharedFenceState.h +0 -51
  283. package/cpp/rnwgpu/api/descriptors/GPUSharedTextureMemoryDescriptor.h +0 -73
  284. package/cpp/rnwgpu/api/descriptors/GPUStencilFaceState.h +0 -64
  285. package/cpp/rnwgpu/api/descriptors/GPUStorageTextureBindingLayout.h +0 -59
  286. package/cpp/rnwgpu/api/descriptors/GPUTextureBindingLayout.h +0 -59
  287. package/cpp/rnwgpu/api/descriptors/GPUTextureDescriptor.h +0 -91
  288. package/cpp/rnwgpu/api/descriptors/GPUTextureUsage.h +0 -29
  289. package/cpp/rnwgpu/api/descriptors/GPUTextureViewDescriptor.h +0 -91
  290. package/cpp/rnwgpu/api/descriptors/GPUUncapturedErrorEventInit.h +0 -64
  291. package/cpp/rnwgpu/api/descriptors/GPUVertexAttribute.h +0 -53
  292. package/cpp/rnwgpu/api/descriptors/GPUVertexBufferLayout.h +0 -62
  293. package/cpp/rnwgpu/api/descriptors/GPUVertexState.h +0 -73
  294. package/cpp/rnwgpu/api/descriptors/Unions.h +0 -1969
  295. package/cpp/rnwgpu/async/AsyncTaskHandle.cpp +0 -213
  296. package/cpp/rnwgpu/async/AsyncTaskHandle.h +0 -58
  297. package/cpp/rnwgpu/async/RuntimeContext.cpp +0 -199
  298. package/cpp/rnwgpu/async/RuntimeContext.h +0 -134
  299. package/lib/commonjs/skia/types/WebGPU.d.ts +0 -184
  300. package/lib/commonjs/skia/types/WebGPU.js +0 -105
  301. package/lib/commonjs/skia/types/WebGPU.js.map +0 -1
  302. package/lib/commonjs/specs/WebGPUViewNativeComponent.d.ts +0 -8
  303. package/lib/commonjs/specs/WebGPUViewNativeComponent.js +0 -10
  304. package/lib/commonjs/specs/WebGPUViewNativeComponent.js.map +0 -1
  305. package/lib/commonjs/specs/WebGPUViewNativeComponent.web.d.ts +0 -8
  306. package/lib/commonjs/specs/WebGPUViewNativeComponent.web.js +0 -103
  307. package/lib/commonjs/specs/WebGPUViewNativeComponent.web.js.map +0 -1
  308. package/lib/commonjs/specs/utils.d.ts +0 -1
  309. package/lib/commonjs/specs/utils.js +0 -11
  310. package/lib/commonjs/specs/utils.js.map +0 -1
  311. package/lib/commonjs/views/WebGPUCanvas.d.ts +0 -33
  312. package/lib/commonjs/views/WebGPUCanvas.js +0 -79
  313. package/lib/commonjs/views/WebGPUCanvas.js.map +0 -1
  314. package/lib/commonjs/views/WebGPUCanvas.web.d.ts +0 -23
  315. package/lib/commonjs/views/WebGPUCanvas.web.js +0 -20
  316. package/lib/commonjs/views/WebGPUCanvas.web.js.map +0 -1
  317. package/lib/module/skia/types/WebGPU.d.ts +0 -184
  318. package/lib/module/skia/types/WebGPU.js +0 -99
  319. package/lib/module/skia/types/WebGPU.js.map +0 -1
  320. package/lib/module/specs/WebGPUViewNativeComponent.d.ts +0 -8
  321. package/lib/module/specs/WebGPUViewNativeComponent.js +0 -4
  322. package/lib/module/specs/WebGPUViewNativeComponent.js.map +0 -1
  323. package/lib/module/specs/WebGPUViewNativeComponent.web.d.ts +0 -8
  324. package/lib/module/specs/WebGPUViewNativeComponent.web.js +0 -96
  325. package/lib/module/specs/WebGPUViewNativeComponent.web.js.map +0 -1
  326. package/lib/module/specs/utils.d.ts +0 -1
  327. package/lib/module/specs/utils.js +0 -5
  328. package/lib/module/specs/utils.js.map +0 -1
  329. package/lib/module/views/WebGPUCanvas.d.ts +0 -33
  330. package/lib/module/views/WebGPUCanvas.js +0 -70
  331. package/lib/module/views/WebGPUCanvas.js.map +0 -1
  332. package/lib/module/views/WebGPUCanvas.web.d.ts +0 -23
  333. package/lib/module/views/WebGPUCanvas.web.js +0 -12
  334. package/lib/module/views/WebGPUCanvas.web.js.map +0 -1
  335. package/lib/typescript/lib/commonjs/skia/types/WebGPU.d.ts +0 -2
  336. package/lib/typescript/lib/commonjs/specs/WebGPUViewNativeComponent.d.ts +0 -4
  337. package/lib/typescript/lib/commonjs/specs/WebGPUViewNativeComponent.web.d.ts +0 -3
  338. package/lib/typescript/lib/commonjs/specs/utils.d.ts +0 -2
  339. package/lib/typescript/lib/commonjs/views/WebGPUCanvas.d.ts +0 -6
  340. package/lib/typescript/lib/commonjs/views/WebGPUCanvas.web.d.ts +0 -6
  341. package/lib/typescript/lib/module/skia/types/WebGPU.d.ts +0 -31
  342. package/lib/typescript/lib/module/specs/WebGPUViewNativeComponent.d.ts +0 -2
  343. package/lib/typescript/lib/module/specs/WebGPUViewNativeComponent.web.d.ts +0 -2
  344. package/lib/typescript/lib/module/specs/utils.d.ts +0 -1
  345. package/lib/typescript/lib/module/views/WebGPUCanvas.d.ts +0 -7
  346. package/lib/typescript/lib/module/views/WebGPUCanvas.web.d.ts +0 -8
  347. package/lib/typescript/src/skia/types/WebGPU.d.ts +0 -184
  348. package/lib/typescript/src/specs/WebGPUViewNativeComponent.d.ts +0 -8
  349. package/lib/typescript/src/specs/WebGPUViewNativeComponent.web.d.ts +0 -8
  350. package/lib/typescript/src/specs/utils.d.ts +0 -1
  351. package/lib/typescript/src/views/WebGPUCanvas.d.ts +0 -33
  352. package/lib/typescript/src/views/WebGPUCanvas.web.d.ts +0 -23
  353. package/src/skia/types/WebGPU.ts +0 -226
  354. package/src/specs/WebGPUViewNativeComponent.ts +0 -11
  355. package/src/specs/WebGPUViewNativeComponent.web.ts +0 -110
  356. package/src/specs/utils.ts +0 -4
  357. package/src/views/WebGPUCanvas.tsx +0 -125
  358. package/src/views/WebGPUCanvas.web.tsx +0 -36
@@ -1,203 +0,0 @@
1
- #pragma once
2
-
3
- #include <string>
4
-
5
- #include <cstdio>
6
-
7
- #include "webgpu/webgpu_cpp.h"
8
-
9
- namespace rnwgpu {
10
-
11
- static void convertEnumToJSUnion(wgpu::FeatureName inEnum,
12
- std::string *outUnion) {
13
- switch (inEnum) {
14
- case wgpu::FeatureName::DepthClipControl:
15
- *outUnion = "depth-clip-control";
16
- break;
17
- case wgpu::FeatureName::Depth32FloatStencil8:
18
- *outUnion = "depth32float-stencil8";
19
- break;
20
- case wgpu::FeatureName::TimestampQuery:
21
- *outUnion = "timestamp-query";
22
- break;
23
- case wgpu::FeatureName::TextureCompressionBC:
24
- *outUnion = "texture-compression-bc";
25
- break;
26
- case wgpu::FeatureName::TextureCompressionETC2:
27
- *outUnion = "texture-compression-etc2";
28
- break;
29
- case wgpu::FeatureName::TextureCompressionASTC:
30
- *outUnion = "texture-compression-astc";
31
- break;
32
- case wgpu::FeatureName::IndirectFirstInstance:
33
- *outUnion = "indirect-first-instance";
34
- break;
35
- case wgpu::FeatureName::ShaderF16:
36
- *outUnion = "shader-f16";
37
- break;
38
- case wgpu::FeatureName::RG11B10UfloatRenderable:
39
- *outUnion = "rg11b10ufloat-renderable";
40
- break;
41
- case wgpu::FeatureName::BGRA8UnormStorage:
42
- *outUnion = "bgra8unorm-storage";
43
- break;
44
- case wgpu::FeatureName::Float32Filterable:
45
- *outUnion = "float32-filterable";
46
- break;
47
- case wgpu::FeatureName::Subgroups:
48
- *outUnion = "subgroups";
49
- break;
50
- case wgpu::FeatureName::DawnInternalUsages:
51
- *outUnion = "dawn-internal-usages";
52
- break;
53
- case wgpu::FeatureName::DawnMultiPlanarFormats:
54
- *outUnion = "dawn-multi-planar-formats";
55
- break;
56
- case wgpu::FeatureName::DawnNative:
57
- *outUnion = "dawn-native";
58
- break;
59
- case wgpu::FeatureName::ChromiumExperimentalTimestampQueryInsidePasses:
60
- *outUnion = "chromium-experimental-timestamp-query-inside-passes";
61
- break;
62
- case wgpu::FeatureName::ImplicitDeviceSynchronization:
63
- *outUnion = "implicit-device-synchronization";
64
- break;
65
- case wgpu::FeatureName::TransientAttachments:
66
- *outUnion = "transient-attachments";
67
- break;
68
- case wgpu::FeatureName::MSAARenderToSingleSampled:
69
- *outUnion = "msaa-render-to-single-sampled";
70
- break;
71
- case wgpu::FeatureName::DualSourceBlending:
72
- *outUnion = "dual-source-blending";
73
- break;
74
- case wgpu::FeatureName::D3D11MultithreadProtected:
75
- *outUnion = "d3d11-multithread-protected";
76
- break;
77
- case wgpu::FeatureName::ANGLETextureSharing:
78
- *outUnion = "angle-texture-sharing";
79
- break;
80
- case wgpu::FeatureName::ChromiumExperimentalSubgroupMatrix:
81
- *outUnion = "chromium-experimental-subgroups-matrix";
82
- break;
83
- case wgpu::FeatureName::PixelLocalStorageCoherent:
84
- *outUnion = "pixel-local-storage-coherent";
85
- break;
86
- case wgpu::FeatureName::PixelLocalStorageNonCoherent:
87
- *outUnion = "pixel-local-storage-non-coherent";
88
- break;
89
- case wgpu::FeatureName::Unorm16TextureFormats:
90
- *outUnion = "unorm16-texture-formats";
91
- break;
92
- case wgpu::FeatureName::MultiPlanarFormatExtendedUsages:
93
- *outUnion = "multi-planar-format-extended-usages";
94
- break;
95
- case wgpu::FeatureName::MultiPlanarFormatP010:
96
- *outUnion = "multi-planar-format-p010";
97
- break;
98
- case wgpu::FeatureName::HostMappedPointer:
99
- *outUnion = "host-mapped-pointer";
100
- break;
101
- case wgpu::FeatureName::MultiPlanarRenderTargets:
102
- *outUnion = "multi-planar-render-targets";
103
- break;
104
- case wgpu::FeatureName::MultiPlanarFormatNv12a:
105
- *outUnion = "multi-planar-format-nv12a";
106
- break;
107
- case wgpu::FeatureName::FramebufferFetch:
108
- *outUnion = "framebuffer-fetch";
109
- break;
110
- case wgpu::FeatureName::BufferMapExtendedUsages:
111
- *outUnion = "buffer-map-extended-usages";
112
- break;
113
- case wgpu::FeatureName::AdapterPropertiesMemoryHeaps:
114
- *outUnion = "adapter-properties-memory-heaps";
115
- break;
116
- case wgpu::FeatureName::AdapterPropertiesD3D:
117
- *outUnion = "adapter-properties-d3d";
118
- break;
119
- case wgpu::FeatureName::AdapterPropertiesVk:
120
- *outUnion = "adapter-properties-vk";
121
- break;
122
- case wgpu::FeatureName::DawnFormatCapabilities:
123
- *outUnion = "format-capabilities";
124
- break;
125
- case wgpu::FeatureName::DawnDrmFormatCapabilities:
126
- *outUnion = "drm-format-capabilities";
127
- break;
128
- case wgpu::FeatureName::MultiPlanarFormatNv16:
129
- *outUnion = "multi-planar-format-nv16";
130
- break;
131
- case wgpu::FeatureName::MultiPlanarFormatNv24:
132
- *outUnion = "multi-planar-format-nv24";
133
- break;
134
- case wgpu::FeatureName::MultiPlanarFormatP210:
135
- *outUnion = "multi-planar-format-p210";
136
- break;
137
- case wgpu::FeatureName::MultiPlanarFormatP410:
138
- *outUnion = "multi-planar-format-p410";
139
- break;
140
- case wgpu::FeatureName::SharedTextureMemoryVkDedicatedAllocation:
141
- *outUnion = "shared-texture-memory-vk-dedicated-allocation";
142
- break;
143
- case wgpu::FeatureName::SharedTextureMemoryAHardwareBuffer:
144
- *outUnion = "shared-texture-memory-ahardware-buffer";
145
- break;
146
- case wgpu::FeatureName::SharedTextureMemoryDmaBuf:
147
- *outUnion = "shared-texture-memory-dma-buf";
148
- break;
149
- case wgpu::FeatureName::SharedTextureMemoryOpaqueFD:
150
- *outUnion = "shared-texture-memory-opaque-fd";
151
- break;
152
- case wgpu::FeatureName::SharedTextureMemoryZirconHandle:
153
- *outUnion = "shared-texture-memory-zircon-handle";
154
- break;
155
- case wgpu::FeatureName::SharedTextureMemoryDXGISharedHandle:
156
- *outUnion = "shared-texture-memory-dxgi-shared-handle";
157
- break;
158
- case wgpu::FeatureName::SharedTextureMemoryD3D11Texture2D:
159
- *outUnion = "shared-texture-memory-d3d11-texture2d";
160
- break;
161
- case wgpu::FeatureName::SharedTextureMemoryIOSurface:
162
- *outUnion = "shared-texture-memory-iosurface";
163
- break;
164
- case wgpu::FeatureName::SharedTextureMemoryEGLImage:
165
- *outUnion = "shared-texture-memory-egl-image";
166
- break;
167
- case wgpu::FeatureName::SharedFenceVkSemaphoreOpaqueFD:
168
- *outUnion = "shared-fence-vk-semaphore-opaque-fd";
169
- break;
170
- case wgpu::FeatureName::SharedFenceSyncFD:
171
- *outUnion = "shared-fence-vk-semaphore-sync-fd";
172
- break;
173
- case wgpu::FeatureName::SharedFenceVkSemaphoreZirconHandle:
174
- *outUnion = "shared-fence-vk-semaphore-zircon-handle";
175
- break;
176
- case wgpu::FeatureName::SharedFenceDXGISharedHandle:
177
- *outUnion = "shared-fence-dxgi-shared-handle";
178
- break;
179
- case wgpu::FeatureName::SharedFenceMTLSharedEvent:
180
- *outUnion = "shared-fence-mtl-shared-event";
181
- break;
182
- case wgpu::FeatureName::SharedBufferMemoryD3D12Resource:
183
- *outUnion = "shared-buffer-memory-d3d12-resource";
184
- break;
185
- case wgpu::FeatureName::StaticSamplers:
186
- *outUnion = "static-samplers";
187
- break;
188
- case wgpu::FeatureName::YCbCrVulkanSamplers:
189
- *outUnion = "ycbcr-vulkan-samplers";
190
- break;
191
- case wgpu::FeatureName::ShaderModuleCompilationOptions:
192
- *outUnion = "shader-module-compilation-options";
193
- break;
194
- case wgpu::FeatureName::DawnLoadResolveTexture:
195
- *outUnion = "dawn-load-resolve-texture";
196
- break;
197
- default:
198
- fprintf(stderr, "Unknown feature name %d\n", static_cast<int>(inEnum));
199
- *outUnion = "";
200
- }
201
- }
202
-
203
- } // namespace rnwgpu
@@ -1,31 +0,0 @@
1
- #pragma once
2
-
3
- #include <string>
4
-
5
- #include "jsi/NativeObject.h"
6
-
7
- namespace rnwgpu {
8
-
9
- namespace jsi = facebook::jsi;
10
-
11
- class GPUInternalError : public NativeObject<GPUInternalError> {
12
- public:
13
- static constexpr const char *CLASS_NAME = "GPUInternalError";
14
-
15
- explicit GPUInternalError(std::string message)
16
- : NativeObject(CLASS_NAME), _message(std::move(message)) {}
17
-
18
- public:
19
- std::string getBrand() { return CLASS_NAME; }
20
- std::string getMessage() { return _message; }
21
-
22
- static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
23
- installGetter(runtime, prototype, "__brand", &GPUInternalError::getBrand);
24
- installGetter(runtime, prototype, "message", &GPUInternalError::getMessage);
25
- }
26
-
27
- private:
28
- std::string _message;
29
- };
30
-
31
- } // namespace rnwgpu
@@ -1,55 +0,0 @@
1
- #pragma once
2
-
3
- #include <memory>
4
-
5
- #include "jsi/JSIConverter.h"
6
-
7
- #include "webgpu/webgpu_cpp.h"
8
-
9
- namespace rnwgpu {
10
-
11
- struct GPUOrigin2D {
12
- double x = 0;
13
- double y = 0;
14
- };
15
-
16
- template <> struct JSIConverter<std::shared_ptr<GPUOrigin2D>> {
17
- static std::shared_ptr<GPUOrigin2D>
18
- fromJSI(jsi::Runtime &runtime, const jsi::Value &arg, bool outOfBounds) {
19
- auto result = std::make_unique<GPUOrigin2D>();
20
- if (!outOfBounds && arg.isObject()) {
21
- if (arg.getObject(runtime).isArray(runtime)) {
22
- auto array = arg.getObject(runtime).asArray(runtime);
23
- auto size = array.size(runtime);
24
- if (size == 0) {
25
- throw std::runtime_error(
26
- "Expected an array of size >1 for GPUTExtent2D");
27
- }
28
- if (size > 0) {
29
- result->x = array.getValueAtIndex(runtime, 0).asNumber();
30
- }
31
- if (size > 1) {
32
- result->y = array.getValueAtIndex(runtime, 1).asNumber();
33
- }
34
- } else {
35
- auto object = arg.getObject(runtime);
36
- if (object.hasProperty(runtime, "x")) {
37
- result->x = object.getProperty(runtime, "x").asNumber();
38
- }
39
- if (object.hasProperty(runtime, "y")) {
40
- result->y = object.getProperty(runtime, "y").asNumber();
41
- }
42
- }
43
- } else {
44
- throw std::runtime_error("Expected an object for GPUOrigin3D");
45
- }
46
- return result;
47
- }
48
- static jsi::Value toJSI(jsi::Runtime &runtime,
49
- std::shared_ptr<GPUOrigin2D> arg) {
50
- // No conversions here
51
- return jsi::Value::null();
52
- }
53
- };
54
-
55
- } // namespace rnwgpu
@@ -1,62 +0,0 @@
1
- #pragma once
2
-
3
- #include <memory>
4
-
5
- #include "jsi/JSIConverter.h"
6
-
7
- #include "webgpu/webgpu_cpp.h"
8
-
9
- namespace rnwgpu {
10
-
11
- struct GPUOrigin3D {
12
- double x = 0;
13
- double y = 0;
14
- double z = 0;
15
- };
16
-
17
- template <> struct JSIConverter<std::shared_ptr<GPUOrigin3D>> {
18
- static std::shared_ptr<GPUOrigin3D>
19
- fromJSI(jsi::Runtime &runtime, const jsi::Value &arg, bool outOfBounds) {
20
- auto result = std::make_unique<GPUOrigin3D>();
21
- if (!outOfBounds && arg.isObject()) {
22
- if (arg.getObject(runtime).isArray(runtime)) {
23
- auto array = arg.getObject(runtime).asArray(runtime);
24
- auto size = array.size(runtime);
25
- if (size == 0) {
26
- throw std::runtime_error(
27
- "Expected an array of size >1 for GPUTExtent3D");
28
- }
29
- if (size > 0) {
30
- result->x = array.getValueAtIndex(runtime, 0).asNumber();
31
- }
32
- if (size > 1) {
33
- result->y = array.getValueAtIndex(runtime, 1).asNumber();
34
- }
35
- if (size > 2) {
36
- result->z = array.getValueAtIndex(runtime, 2).asNumber();
37
- }
38
- } else {
39
- auto object = arg.getObject(runtime);
40
- if (object.hasProperty(runtime, "x")) {
41
- result->x = object.getProperty(runtime, "x").asNumber();
42
- }
43
- if (object.hasProperty(runtime, "y")) {
44
- result->y = object.getProperty(runtime, "y").asNumber();
45
- }
46
- if (object.hasProperty(runtime, "z")) {
47
- result->z = object.getProperty(runtime, "z").asNumber();
48
- }
49
- }
50
- } else {
51
- throw std::runtime_error("Expected an object for GPUOrigin3D");
52
- }
53
- return result;
54
- }
55
- static jsi::Value toJSI(jsi::Runtime &runtime,
56
- std::shared_ptr<GPUOrigin3D> arg) {
57
- // No conversions here
58
- return jsi::Value::null();
59
- }
60
- };
61
-
62
- } // namespace rnwgpu
@@ -1,33 +0,0 @@
1
- #pragma once
2
-
3
- #include <string>
4
-
5
- #include "jsi/NativeObject.h"
6
-
7
- namespace rnwgpu {
8
-
9
- namespace jsi = facebook::jsi;
10
-
11
- class GPUOutOfMemoryError : public NativeObject<GPUOutOfMemoryError> {
12
- public:
13
- static constexpr const char *CLASS_NAME = "GPUOutOfMemoryError";
14
-
15
- explicit GPUOutOfMemoryError(std::string message)
16
- : NativeObject(CLASS_NAME), _message(std::move(message)) {}
17
-
18
- public:
19
- std::string getBrand() { return CLASS_NAME; }
20
- std::string getMessage() { return _message; }
21
-
22
- static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
23
- installGetter(runtime, prototype, "__brand",
24
- &GPUOutOfMemoryError::getBrand);
25
- installGetter(runtime, prototype, "message",
26
- &GPUOutOfMemoryError::getMessage);
27
- }
28
-
29
- private:
30
- std::string _message;
31
- };
32
-
33
- } // namespace rnwgpu
@@ -1,45 +0,0 @@
1
- #pragma once
2
-
3
- #include <string>
4
-
5
- #include "descriptors/Unions.h"
6
-
7
- #include "jsi/NativeObject.h"
8
-
9
- #include "webgpu/webgpu_cpp.h"
10
-
11
- namespace rnwgpu {
12
-
13
- namespace jsi = facebook::jsi;
14
-
15
- class GPUPipelineLayout : public NativeObject<GPUPipelineLayout> {
16
- public:
17
- static constexpr const char *CLASS_NAME = "GPUPipelineLayout";
18
-
19
- explicit GPUPipelineLayout(wgpu::PipelineLayout 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", &GPUPipelineLayout::getBrand);
33
- installGetterSetter(runtime, prototype, "label",
34
- &GPUPipelineLayout::getLabel,
35
- &GPUPipelineLayout::setLabel);
36
- }
37
-
38
- inline const wgpu::PipelineLayout get() { return _instance; }
39
-
40
- private:
41
- wgpu::PipelineLayout _instance;
42
- std::string _label;
43
- };
44
-
45
- } // namespace rnwgpu
@@ -1,11 +0,0 @@
1
- #include "GPUQuerySet.h"
2
-
3
- namespace rnwgpu {
4
-
5
- void GPUQuerySet::destroy() { _instance.Destroy(); }
6
-
7
- wgpu::QueryType GPUQuerySet::getType() { return _instance.GetType(); }
8
-
9
- uint32_t GPUQuerySet::getCount() { return _instance.GetCount(); }
10
-
11
- } // namespace rnwgpu
@@ -1,73 +0,0 @@
1
- #pragma once
2
-
3
- #include <string>
4
-
5
- #include "descriptors/Unions.h"
6
-
7
- #include "jsi/NativeObject.h"
8
-
9
- #include "webgpu/webgpu_cpp.h"
10
-
11
- namespace rnwgpu {
12
-
13
- namespace jsi = facebook::jsi;
14
-
15
- class GPUQuerySet : public NativeObject<GPUQuerySet> {
16
- public:
17
- static constexpr const char *CLASS_NAME = "GPUQuerySet";
18
-
19
- explicit GPUQuerySet(wgpu::QuerySet instance, std::string label)
20
- : NativeObject(CLASS_NAME), _instance(instance), _label(label) {}
21
-
22
- public:
23
- std::string getBrand() { return CLASS_NAME; }
24
-
25
- void destroy();
26
-
27
- wgpu::QueryType getType();
28
- uint32_t getCount();
29
-
30
- std::string getLabel() { return _label; }
31
- void setLabel(const std::string &label) {
32
- _label = label;
33
- _instance.SetLabel(_label.c_str());
34
- }
35
-
36
- static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
37
- installGetter(runtime, prototype, "__brand", &GPUQuerySet::getBrand);
38
- installMethod(runtime, prototype, "destroy", &GPUQuerySet::destroy);
39
- installGetter(runtime, prototype, "type", &GPUQuerySet::getType);
40
- installGetter(runtime, prototype, "count", &GPUQuerySet::getCount);
41
- installGetterSetter(runtime, prototype, "label", &GPUQuerySet::getLabel,
42
- &GPUQuerySet::setLabel);
43
- }
44
-
45
- inline const wgpu::QuerySet get() { return _instance; }
46
-
47
- size_t getMemoryPressure() override {
48
- uint32_t count = getCount();
49
- wgpu::QueryType type = getType();
50
-
51
- // Estimate bytes per query based on type
52
- size_t bytesPerQuery = 8; // Default estimate
53
- switch (type) {
54
- case wgpu::QueryType::Occlusion:
55
- bytesPerQuery = 8; // 64-bit counter
56
- break;
57
- case wgpu::QueryType::Timestamp:
58
- bytesPerQuery = 8; // 64-bit timestamp
59
- break;
60
- default:
61
- bytesPerQuery = 8; // Safe default
62
- break;
63
- }
64
-
65
- return static_cast<size_t>(count) * bytesPerQuery;
66
- }
67
-
68
- private:
69
- wgpu::QuerySet _instance;
70
- std::string _label;
71
- };
72
-
73
- } // namespace rnwgpu
@@ -1,179 +0,0 @@
1
- #include "GPUQueue.h"
2
-
3
- #include <cstring>
4
- #include <limits>
5
- #include <memory>
6
- #include <vector>
7
-
8
- #include "Convertors.h"
9
-
10
- namespace rnwgpu {
11
-
12
- struct BufferSource {
13
- void *data;
14
- size_t size; // in bytes
15
- size_t bytesPerElement; // 1 for ArrayBuffers
16
- };
17
-
18
- void GPUQueue::submit(
19
- std::vector<std::shared_ptr<GPUCommandBuffer>> commandBuffers) {
20
- std::vector<wgpu::CommandBuffer> bufs(commandBuffers.size());
21
- for (size_t i = 0; i < commandBuffers.size(); i++) {
22
- bufs[i] = commandBuffers[i]->get();
23
- }
24
- Convertor conv;
25
- uint32_t bufs_size;
26
- if (!conv(bufs_size, bufs.size())) {
27
- return;
28
- }
29
- _instance.Submit(bufs_size, bufs.data());
30
- }
31
-
32
- void GPUQueue::writeBuffer(std::shared_ptr<GPUBuffer> buffer,
33
- uint64_t bufferOffset,
34
- std::shared_ptr<ArrayBuffer> data,
35
- std::optional<uint64_t> dataOffsetElements,
36
- std::optional<size_t> sizeElements) {
37
- wgpu::Buffer buf = buffer->get();
38
- BufferSource src{.data = data->_data,
39
- .size = data->_size,
40
- .bytesPerElement = data->_bytesPerElement};
41
-
42
- // Note that in the JS semantics of WebGPU, writeBuffer works in number of
43
- // elements of the typed arrays.
44
- if (dataOffsetElements >
45
- static_cast<uint64_t>(src.size / src.bytesPerElement)) {
46
- throw std::runtime_error("dataOffset is larger than data's size.");
47
- return;
48
- }
49
- uint64_t dataOffset = dataOffsetElements.value_or(0) * src.bytesPerElement;
50
- src.data = reinterpret_cast<uint8_t *>(src.data) + dataOffset;
51
- src.size -= dataOffset;
52
-
53
- // Size defaults to dataSize - dataOffset. Instead of computing in elements,
54
- // we directly use it in bytes, and convert the provided value, if any, in
55
- // bytes.
56
- uint64_t size64 = static_cast<uint64_t>(src.size);
57
- if (sizeElements.has_value()) {
58
- if (sizeElements.value() >
59
- std::numeric_limits<uint64_t>::max() / src.bytesPerElement) {
60
- throw std::runtime_error("size overflows.");
61
- return;
62
- }
63
- size64 = sizeElements.value() * src.bytesPerElement;
64
- }
65
-
66
- if (size64 > static_cast<uint64_t>(src.size)) {
67
- throw std::runtime_error("size + dataOffset is larger than data's size.");
68
- return;
69
- }
70
-
71
- if (size64 % 4 != 0) {
72
- throw std::runtime_error("size is not a multiple of 4 bytes.");
73
-
74
- return;
75
- }
76
-
77
- assert(size64 <= std::numeric_limits<size_t>::max());
78
- _instance.WriteBuffer(buf, bufferOffset, src.data,
79
- static_cast<size_t>(size64));
80
- }
81
-
82
- async::AsyncTaskHandle GPUQueue::onSubmittedWorkDone(jsi::Runtime &runtime) {
83
- auto queue = _instance;
84
- // Post to the CALLING runtime's context so the promise settles on the
85
- // thread that requested it (see GPUBuffer::mapAsync).
86
- auto context =
87
- async::RuntimeContext::getOrCreate(runtime, _async->instance());
88
- return context->postTask(
89
- [queue](const async::AsyncTaskHandle::ResolveFunction &resolve,
90
- const async::AsyncTaskHandle::RejectFunction &reject) {
91
- queue.OnSubmittedWorkDone(
92
- wgpu::CallbackMode::AllowProcessEvents,
93
- [resolve, reject](wgpu::QueueWorkDoneStatus status,
94
- wgpu::StringView message) {
95
- if (status == wgpu::QueueWorkDoneStatus::Success) {
96
- resolve(nullptr);
97
- } else {
98
- std::string error =
99
- message.length ? std::string(message.data, message.length)
100
- : "Queue work did not complete successfully";
101
- reject(std::move(error));
102
- }
103
- });
104
- });
105
- }
106
-
107
- void GPUQueue::copyExternalImageToTexture(
108
- std::shared_ptr<GPUImageCopyExternalImage> source,
109
- std::shared_ptr<GPUImageCopyTextureTagged> destination,
110
- std::shared_ptr<GPUExtent3D> size) {
111
- if (!source || source->source == nullptr) {
112
- throw std::runtime_error("GPUQueue::copyExternalImageToTexture(): "
113
- "source.source (ImageBitmap) is required");
114
- }
115
- // ImageBitmap holds decoded, row-major RGBA8 pixels. We upload them with
116
- // WriteTexture (a CPU staging copy) rather than a GPU blit; that is enough
117
- // for the common "decode an image, sample it" path and avoids needing a
118
- // source GPUTexture.
119
- const auto &pixels = source->source->data();
120
- auto width = static_cast<uint32_t>(source->source->getWidth());
121
- auto height = static_cast<uint32_t>(source->source->getHeight());
122
- if (pixels.empty() || width == 0 || height == 0) {
123
- throw std::runtime_error("GPUQueue::copyExternalImageToTexture(): "
124
- "ImageBitmap has no pixels (was it closed?)");
125
- }
126
- auto bytesPerPixel = static_cast<uint32_t>(
127
- pixels.size() / (static_cast<size_t>(width) * height));
128
- uint32_t rowSize = bytesPerPixel * width;
129
-
130
- wgpu::TexelCopyTextureInfo dst{};
131
- wgpu::TexelCopyBufferLayout layout{};
132
- wgpu::Extent3D sz{};
133
- Convertor conv;
134
- auto dataLayout = std::make_shared<GPUImageDataLayout>(
135
- GPUImageDataLayout{std::optional<double>{0.0},
136
- std::optional<double>{static_cast<double>(rowSize)},
137
- std::optional<double>{static_cast<double>(height)}});
138
- if (!conv(dst.aspect, destination->aspect) ||
139
- !conv(dst.mipLevel, destination->mipLevel) ||
140
- !conv(dst.origin, destination->origin) ||
141
- !conv(dst.texture, destination->texture) || !conv(layout, dataLayout) ||
142
- !conv(sz, size)) {
143
- throw std::runtime_error(
144
- "Invalid input for GPUQueue::copyExternalImageToTexture()");
145
- }
146
-
147
- if (source->flipY.value_or(false)) {
148
- // Flip rows so the image is uploaded bottom-up (matches the WebGPU
149
- // copyExternalImageToTexture flipY semantics).
150
- std::vector<uint8_t> flippedData(pixels.size());
151
- for (uint32_t row = 0; row < height; ++row) {
152
- std::memcpy(flippedData.data() + (height - 1 - row) * rowSize,
153
- pixels.data() + row * rowSize, rowSize);
154
- }
155
- _instance.WriteTexture(&dst, flippedData.data(), flippedData.size(),
156
- &layout, &sz);
157
- } else {
158
- _instance.WriteTexture(&dst, pixels.data(), pixels.size(), &layout, &sz);
159
- }
160
- }
161
-
162
- void GPUQueue::writeTexture(std::shared_ptr<GPUImageCopyTexture> destination,
163
- std::shared_ptr<ArrayBuffer> data,
164
- std::shared_ptr<GPUImageDataLayout> dataLayout,
165
- std::shared_ptr<GPUExtent3D> size) {
166
- wgpu::TexelCopyTextureInfo dst{};
167
- wgpu::TexelCopyBufferLayout layout{};
168
- wgpu::Extent3D sz{};
169
- Convertor conv;
170
- if (!conv(dst, destination) || //
171
- !conv(layout, dataLayout) || //
172
- !conv(sz, size)) {
173
- throw std::runtime_error("Invalid input for GPUQueue::writeTexture()");
174
- }
175
-
176
- _instance.WriteTexture(&dst, data->_data, data->_size, &layout, &sz);
177
- }
178
-
179
- } // namespace rnwgpu