It has its own problems... Since the async round-trip is gone, you can end up with rendering happening too _early_.
The rendering is also not truly synchronous, you can't resize graphical surfaces from the JS thread. You still need to do a round-trip to the platform UI thread. So for example, React Native WebGPU misrenders an image when you rotate the screen because of that.
The rendering callback ends up running before the surface has the chance to get resized. I've also seen that with other libraries that mix native rendering. I'm pretty sure reanimated is also susceptible to this.
The rendering is also not truly synchronous, you can't resize graphical surfaces from the JS thread. You still need to do a round-trip to the platform UI thread. So for example, React Native WebGPU misrenders an image when you rotate the screen because of that.
The rendering callback ends up running before the surface has the chance to get resized. I've also seen that with other libraries that mix native rendering. I'm pretty sure reanimated is also susceptible to this.