e2873df92ee3456728a03e07d1008a6d1a1e26f6
UiRenderNode::new seeded the GPU window uniform from WindowUniform::default() rather than the surface's real size, so shader.wgsl's vertex stage divided every primitive's position by (0, 0) and produced NaN/Inf clip coordinates on both Vulkan and GLES. winit's backend never hit this because winit fires an initial WindowEvent::Resized that corrects the uniform before the first frame; android-view has no equivalent event, so the node it built never got corrected. Seed the uniform from the SurfaceConfiguration passed to UiRenderNode::new instead, which is already right on both backends at construction time. Verified on the ai-app-2 emulator (Vulkan/SwiftShader and, temporarily forced, GLES/virgl): the tabs example now draws its widgets instead of just the clear colour. Ticks I2 in RUST.md. Co-Authored-By: Claude Sonnet <noreply@anthropic.com>
Languages
Rust
53%
Kotlin
44.4%
Shell
2.6%