-
Notifications
You must be signed in to change notification settings - Fork 6k
[Impeller] fix Impeller on windows. #55323
Conversation
This comment was marked as resolved.
This comment was marked as resolved.
| } | ||
|
|
||
| // Set up depth/stencil attachment for impeller renderer. | ||
| if (enable_impeller_) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we move the code in this branch up next to the FramebufferTexture2DMultisampleEXT? I don't feel strongly, feel free to keep as-is
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
| gl_->FramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, | ||
| store->texture_id, 0); | ||
| if (enable_impeller_) { | ||
| gl_->FramebufferTexture2DMultisampleEXT(GL_FRAMEBUFFER, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could we add a very quick comment that explains why this needs to be different for Impeller?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
I'm an OpenGL noob, could you expand why this means that the onscreen framebuffer should not be a multisample framebuffer? |
loic-sharma
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for fixing this - Windows changes look good to me!
Consider getting a review from @chinmaygarde for the OpenGL changes.
because the Blit from framebuffer 1 to framebuffer 0 will resolve the multisampled image to a single sampled, so the sample configuration from framebuffer 0 needs to be 1. If we did a draw instead of a blit, then we could leave 0 as multisampled - but that would be pointless as it would be anti aliasing the fullscreen quad texture, which covers the full screen an has no partial coverage. |
|
Since this is not in production @chinmaygarde can review offline when he has time. |
flutter/engine@559f2ff...746ce61 2024-09-25 skia-flutter-autoroll@skia.org Roll Dart SDK from 7af8c4882e07 to eda9ae15367e (2 revisions) (flutter/engine#55417) 2024-09-25 bdero@google.com [Flutter GPU] Add CullMode. (flutter/engine#55409) 2024-09-25 skia-flutter-autoroll@skia.org Roll Skia from 2e92f0b443f4 to 3541cdf2fae6 (1 revision) (flutter/engine#55412) 2024-09-24 jonahwilliams@google.com [Impeller] fix Impeller on windows. (flutter/engine#55323) 2024-09-24 jonahwilliams@google.com [Impeller] add basic culling checks during text frame dispatcher. (flutter/engine#55168) 2024-09-24 matanlurey@users.noreply.github.com Move each dart GN rule to a standalone file. (flutter/engine#55404) 2024-09-24 skia-flutter-autoroll@skia.org Roll Skia from 118914b760cb to 2e92f0b443f4 (1 revision) (flutter/engine#55406) 2024-09-24 jonahwilliams@google.com [Impeller] Pack impeller:Path into 2 vecs instead of 3. (flutter/engine#55028) 2024-09-24 codefu@google.com Disallow time traveling frame times (flutter/engine#55310) 2024-09-24 jason-simmons@users.noreply.github.com [Impeller] Delete command pools held by the CommandPoolRecyclerVK after decoding an image on the IO thread (flutter/engine#55398) 2024-09-24 skia-flutter-autoroll@skia.org Roll Skia from cf28f9dd411d to 118914b760cb (1 revision) (flutter/engine#55405) 2024-09-24 bdero@google.com [Flutter GPU] Add pipeline stencil config. (flutter/engine#55272) 2024-09-24 skia-flutter-autoroll@skia.org Roll Skia from 6e5ff9253147 to cf28f9dd411d (1 revision) (flutter/engine#55399) 2024-09-24 jonahwilliams@google.com [Impeller] delete expensive trace event. (flutter/engine#55400) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll Please CC bdero@google.com,rmistry@google.com,zra@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
…55648) flutter/engine@559f2ff...746ce61 2024-09-25 skia-flutter-autoroll@skia.org Roll Dart SDK from 7af8c4882e07 to eda9ae15367e (2 revisions) (flutter/engine#55417) 2024-09-25 bdero@google.com [Flutter GPU] Add CullMode. (flutter/engine#55409) 2024-09-25 skia-flutter-autoroll@skia.org Roll Skia from 2e92f0b443f4 to 3541cdf2fae6 (1 revision) (flutter/engine#55412) 2024-09-24 jonahwilliams@google.com [Impeller] fix Impeller on windows. (flutter/engine#55323) 2024-09-24 jonahwilliams@google.com [Impeller] add basic culling checks during text frame dispatcher. (flutter/engine#55168) 2024-09-24 matanlurey@users.noreply.github.com Move each dart GN rule to a standalone file. (flutter/engine#55404) 2024-09-24 skia-flutter-autoroll@skia.org Roll Skia from 118914b760cb to 2e92f0b443f4 (1 revision) (flutter/engine#55406) 2024-09-24 jonahwilliams@google.com [Impeller] Pack impeller:Path into 2 vecs instead of 3. (flutter/engine#55028) 2024-09-24 codefu@google.com Disallow time traveling frame times (flutter/engine#55310) 2024-09-24 jason-simmons@users.noreply.github.com [Impeller] Delete command pools held by the CommandPoolRecyclerVK after decoding an image on the IO thread (flutter/engine#55398) 2024-09-24 skia-flutter-autoroll@skia.org Roll Skia from cf28f9dd411d to 118914b760cb (1 revision) (flutter/engine#55405) 2024-09-24 bdero@google.com [Flutter GPU] Add pipeline stencil config. (flutter/engine#55272) 2024-09-24 skia-flutter-autoroll@skia.org Roll Skia from 6e5ff9253147 to cf28f9dd411d (1 revision) (flutter/engine#55399) 2024-09-24 jonahwilliams@google.com [Impeller] delete expensive trace event. (flutter/engine#55400) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll Please CC bdero@google.com,rmistry@google.com,zra@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
…55648) flutter/engine@559f2ff...746ce61 2024-09-25 skia-flutter-autoroll@skia.org Roll Dart SDK from 7af8c4882e07 to eda9ae15367e (2 revisions) (flutter/engine#55417) 2024-09-25 bdero@google.com [Flutter GPU] Add CullMode. (flutter/engine#55409) 2024-09-25 skia-flutter-autoroll@skia.org Roll Skia from 2e92f0b443f4 to 3541cdf2fae6 (1 revision) (flutter/engine#55412) 2024-09-24 jonahwilliams@google.com [Impeller] fix Impeller on windows. (flutter/engine#55323) 2024-09-24 jonahwilliams@google.com [Impeller] add basic culling checks during text frame dispatcher. (flutter/engine#55168) 2024-09-24 matanlurey@users.noreply.github.com Move each dart GN rule to a standalone file. (flutter/engine#55404) 2024-09-24 skia-flutter-autoroll@skia.org Roll Skia from 118914b760cb to 2e92f0b443f4 (1 revision) (flutter/engine#55406) 2024-09-24 jonahwilliams@google.com [Impeller] Pack impeller:Path into 2 vecs instead of 3. (flutter/engine#55028) 2024-09-24 codefu@google.com Disallow time traveling frame times (flutter/engine#55310) 2024-09-24 jason-simmons@users.noreply.github.com [Impeller] Delete command pools held by the CommandPoolRecyclerVK after decoding an image on the IO thread (flutter/engine#55398) 2024-09-24 skia-flutter-autoroll@skia.org Roll Skia from cf28f9dd411d to 118914b760cb (1 revision) (flutter/engine#55405) 2024-09-24 bdero@google.com [Flutter GPU] Add pipeline stencil config. (flutter/engine#55272) 2024-09-24 skia-flutter-autoroll@skia.org Roll Skia from 6e5ff9253147 to cf28f9dd411d (1 revision) (flutter/engine#55399) 2024-09-24 jonahwilliams@google.com [Impeller] delete expensive trace event. (flutter/engine#55400) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll Please CC bdero@google.com,rmistry@google.com,zra@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
…55648) flutter/engine@559f2ff...746ce61 2024-09-25 skia-flutter-autoroll@skia.org Roll Dart SDK from 7af8c4882e07 to eda9ae15367e (2 revisions) (flutter/engine#55417) 2024-09-25 bdero@google.com [Flutter GPU] Add CullMode. (flutter/engine#55409) 2024-09-25 skia-flutter-autoroll@skia.org Roll Skia from 2e92f0b443f4 to 3541cdf2fae6 (1 revision) (flutter/engine#55412) 2024-09-24 jonahwilliams@google.com [Impeller] fix Impeller on windows. (flutter/engine#55323) 2024-09-24 jonahwilliams@google.com [Impeller] add basic culling checks during text frame dispatcher. (flutter/engine#55168) 2024-09-24 matanlurey@users.noreply.github.com Move each dart GN rule to a standalone file. (flutter/engine#55404) 2024-09-24 skia-flutter-autoroll@skia.org Roll Skia from 118914b760cb to 2e92f0b443f4 (1 revision) (flutter/engine#55406) 2024-09-24 jonahwilliams@google.com [Impeller] Pack impeller:Path into 2 vecs instead of 3. (flutter/engine#55028) 2024-09-24 codefu@google.com Disallow time traveling frame times (flutter/engine#55310) 2024-09-24 jason-simmons@users.noreply.github.com [Impeller] Delete command pools held by the CommandPoolRecyclerVK after decoding an image on the IO thread (flutter/engine#55398) 2024-09-24 skia-flutter-autoroll@skia.org Roll Skia from cf28f9dd411d to 118914b760cb (1 revision) (flutter/engine#55405) 2024-09-24 bdero@google.com [Flutter GPU] Add pipeline stencil config. (flutter/engine#55272) 2024-09-24 skia-flutter-autoroll@skia.org Roll Skia from 6e5ff9253147 to cf28f9dd411d (1 revision) (flutter/engine#55399) 2024-09-24 jonahwilliams@google.com [Impeller] delete expensive trace event. (flutter/engine#55400) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll Please CC bdero@google.com,rmistry@google.com,zra@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
…55648) flutter/engine@559f2ff...746ce61 2024-09-25 skia-flutter-autoroll@skia.org Roll Dart SDK from 7af8c4882e07 to eda9ae15367e (2 revisions) (flutter/engine#55417) 2024-09-25 bdero@google.com [Flutter GPU] Add CullMode. (flutter/engine#55409) 2024-09-25 skia-flutter-autoroll@skia.org Roll Skia from 2e92f0b443f4 to 3541cdf2fae6 (1 revision) (flutter/engine#55412) 2024-09-24 jonahwilliams@google.com [Impeller] fix Impeller on windows. (flutter/engine#55323) 2024-09-24 jonahwilliams@google.com [Impeller] add basic culling checks during text frame dispatcher. (flutter/engine#55168) 2024-09-24 matanlurey@users.noreply.github.com Move each dart GN rule to a standalone file. (flutter/engine#55404) 2024-09-24 skia-flutter-autoroll@skia.org Roll Skia from 118914b760cb to 2e92f0b443f4 (1 revision) (flutter/engine#55406) 2024-09-24 jonahwilliams@google.com [Impeller] Pack impeller:Path into 2 vecs instead of 3. (flutter/engine#55028) 2024-09-24 codefu@google.com Disallow time traveling frame times (flutter/engine#55310) 2024-09-24 jason-simmons@users.noreply.github.com [Impeller] Delete command pools held by the CommandPoolRecyclerVK after decoding an image on the IO thread (flutter/engine#55398) 2024-09-24 skia-flutter-autoroll@skia.org Roll Skia from cf28f9dd411d to 118914b760cb (1 revision) (flutter/engine#55405) 2024-09-24 bdero@google.com [Flutter GPU] Add pipeline stencil config. (flutter/engine#55272) 2024-09-24 skia-flutter-autoroll@skia.org Roll Skia from 6e5ff9253147 to cf28f9dd411d (1 revision) (flutter/engine#55399) 2024-09-24 jonahwilliams@google.com [Impeller] delete expensive trace event. (flutter/engine#55400) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll Please CC bdero@google.com,rmistry@google.com,zra@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Fixes flutter/flutter#141482
Since the introduction of the flutter compositor, the windows embedder will create an offscreen framebuffer and then blit this to the onscreen framebuffer. Therefore, the onscreen framebuffer should not be constructed as a multisample framebuffer - and the EGL config can match skia.
Also cleans up selection of the impeller PixelFormat, which might not have matched the selected compositor format because it was hardcoded to RGBA_8888