Repository navigation
fix(webgpu): Android rendered nothing (texture view aspect, render bundle encoder) - #214
Merged
Merged
Conversation
The aspect was parsed but never copied into the subresource range, so every view was created with aspect 'all'. Binding a depth-stencil texture through such a view fails validation, which invalidated the command encoder, so on Android nothing was ever submitted and the canvas stayed blank.
…y flags sampleCount was always 1 and depthReadOnly/stencilReadOnly always false, so a bundle recorded for an MSAA pass rejected its pipelines.
createTexture and the pipelines swap bgra8unorm for rgba8unorm on Android, but render bundles kept bgra8unorm and no longer matched the pass they ran in.
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
WebGPU on Android drew nothing: every PixiJS 3D example stayed blank, while WebGL rendered the same scenes. Every frame failed validation, which invalidated the command encoder, so
Queue::submitnever sent any work.Fixes
createViewdropsaspect. The aspect was parsed but never copied into the subresource range, so every view had aspectall. Binding a depth-stencil texture for sampling then fails (Bound texture views can not have both depth and stencil aspects enabled). This C++ is shared with iOS, so iOS is likely affected too.createRenderBundleEncoderignoressampleCount,depthReadOnlyandstencilReadOnly.sampleCountwas always 1, so a bundle recorded for an MSAA pass rejected its pipelines (Incompatible sample count).createTextureand the pipelines swapbgra8unormforrgba8unormon Android, but bundles keptbgra8unormand no longer matched their pass (Incompatible color attachments).Testing
@pixi/3dexamples app on WebGPU.Known issue, not addressed here
Once, while
instancing_batchingwas running, the main thread blocked incanvas_native_webgpu_context_get_current_texturefor over 5 s and triggered an ANR. A second run didn't reproduce it. It may just be the emulator's GPU being slow; it hasn't been investigated.