Skip to content

feat(🚧): add fence for shared texture memory#375

Merged
wcandillon merged 8 commits into
wcandillon:mainfrom
pepperoni505:feat/fences
Jun 4, 2026
Merged

feat(🚧): add fence for shared texture memory#375
wcandillon merged 8 commits into
wcandillon:mainfrom
pepperoni505:feat/fences

Conversation

@pepperoni505

Copy link
Copy Markdown
Contributor

Closes #369

Adds GPUSharedFence, exposing Dawn's shared-fence primitives so GPUSharedTextureMemory can be synchronized across queues/APIs. Until now beginAccess/endAccess only took the no-fence path, which is fine for single-producer still frames, but it can't safely coordinate an external producer and a GPU consumer on different queues (e.g. a video/camera surface being written while Dawn samples it).

pepperoni505 and others added 3 commits June 2, 2026 00:24
@wcandillon

Copy link
Copy Markdown
Owner

I like it a lot, thank you for the PR.

In my case I was flip flopping between 1. enabling people to do everything in JS using the SharedTextureMemory API or 2. pushing the importExternalTexture API.

And I realized that it's both 1. and 2.

Item 1 makes a lot of sense considering that this is React Native. You want to give full access/control over the native APIs. And I have a list of items there and this PR is part of that list, so again thank you for doing this.

And item 2 is also unavoidable anyway for zero-copy YUV texture support on Android.
So now my mental model on how to approach this is a bit tidier than yesterday.

@pepperoni505 pepperoni505 changed the title feat: add fence for shared texture memory feat(🚧): add fence for shared texture memory Jun 3, 2026

@wcandillon wcandillon left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good! I am just confused about the two changes I commented on.

Comment thread packages/webgpu/src/__tests__/SharedTextureMemory.spec.ts
Comment thread apps/example/src/SharedTextureMemory/SharedTextureMemory.tsx
Comment thread packages/webgpu/cpp/rnwgpu/api/GPUSharedFence.cpp Outdated
Comment thread packages/webgpu/cpp/rnwgpu/api/GPUSharedFence.h Outdated
@wcandillon wcandillon self-requested a review June 4, 2026 20:54
@wcandillon wcandillon merged commit b368a9a into wcandillon:main Jun 4, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

SharedTextureMemory: expose fences on beginAccess/endAccess?

2 participants