Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Teared rendering results with artifacts when blend mode is translucent #7794

Open
hannojg opened this issue Apr 24, 2024 · 4 comments
Open
Assignees
Labels
android Issue/feature request for Android only bug Something isn't working gpu specific This bug occurs only with a single GPU vendor. opengl Issue/request specific to OpenGL

Comments

@hannojg
Copy link
Contributor

hannojg commented Apr 24, 2024

Describe the bug

When rendering content with filament with transparency the image is pixelated / is torn apart / has artifacts.
In general it works, we were able to reproduce this especially on google pixel devices.
The original discussion started here:

To Reproduce

  1. Run the sample-transparent-view demo on a google pixel device. We used a Pixel 7 Pro

Expected behavior

its rendered without tearing and artifacts.

Screenshots

IMG_7748

IMG_7750.MOV
IMG_7749.MOV

Logs
If applicable, copy full logs from your console here. Please do not
use screenshots of logs, copy them as text, use gist or attach an uncompressed file.

Providing those in a moment, will run the sample app with the debug flags enabled.

Desktop (please complete the following information):

  • OS: Android
  • GPU: Mali-G710 MP7
  • Backend: OpenGL

Smartphone (please complete the following information):

  • Device: Pixel 7 Pro
  • OS: Android 14.0

Additional context

The problem seems to be fixed on Pixel devices when either:

  • turning off post processing effects altogether using view->setPostProcessignEnabled(false) (note: disabling each post processing effect doesn't fix the issue, only turning it off completely)
  • using Vulkan as backend
@hannojg
Copy link
Contributor Author

hannojg commented Apr 24, 2024

Note: not sure if its strictly the fact that its using transparency or the fact that no skybox is used.
In our app I tried to set blending mode to opaque and set no clear options, and this still happened.

The other samples work, but they all use skyboxes if I am not mistaken

@hannojg hannojg changed the title Teared rendering results with artifacts rendering with transparency Teared rendering results with artifacts rendering with transparency / no skybox Apr 24, 2024
@hannojg hannojg changed the title Teared rendering results with artifacts rendering with transparency / no skybox Teared rendering results with artifacts rendering with transparency Apr 24, 2024
@hannojg
Copy link
Contributor Author

hannojg commented Apr 24, 2024

Update:

In the multi-view example I was able to circumnavigate the issue by commenting out this line:

So I assume it's not related to the skybox but really just to the translucent blending mode.
(In our app I need to render the content with transparency, so just turning it off is not an option for me unfortunately)

@hannojg hannojg changed the title Teared rendering results with artifacts rendering with transparency Teared rendering results with artifacts rendering with translucent blend mode Apr 24, 2024
@hannojg hannojg changed the title Teared rendering results with artifacts rendering with translucent blend mode Teared rendering results with artifacts when blend mode is translucent Apr 24, 2024
@pixelflinger pixelflinger self-assigned this Apr 26, 2024
@pixelflinger pixelflinger added bug Something isn't working android Issue/feature request for Android only labels Apr 26, 2024
@pixelflinger
Copy link
Collaborator

I can reproduce, the problem seems to be linked to our use of the framebuffer_fetch extension on these devices. Enabling any feature that turns that off will appear to fix the problem. For instance enabling MSAA, TAA, DoF or bloom. Also disabling post-processing or color grading. This needs more investigation...

@pixelflinger
Copy link
Collaborator

The problem also goes away when I change our internal format from RGBA16F to RGBA8. This starts looking like a driver bug.

@pixelflinger pixelflinger added gpu specific This bug occurs only with a single GPU vendor. opengl Issue/request specific to OpenGL labels May 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
android Issue/feature request for Android only bug Something isn't working gpu specific This bug occurs only with a single GPU vendor. opengl Issue/request specific to OpenGL
Projects
None yet
Development

No branches or pull requests

2 participants