Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Conversation

@jonahwilliams
Copy link
Contributor

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

@jonahwilliams

This comment was marked as resolved.

}

// Set up depth/stencil attachment for impeller renderer.
if (enable_impeller_) {
Copy link
Member

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

Copy link
Contributor Author

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,
Copy link
Member

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?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

@loic-sharma
Copy link
Member

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

I'm an OpenGL noob, could you expand why this means that the onscreen framebuffer should not be a multisample framebuffer?

Copy link
Member

@loic-sharma loic-sharma left a 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.

@jonahwilliams
Copy link
Contributor Author

jonahwilliams commented Sep 24, 2024

I'm an OpenGL noob, could you expand why this means that the onscreen framebuffer should not be a multisample framebuffer?

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.

@jonahwilliams
Copy link
Contributor Author

Since this is not in production @chinmaygarde can review offline when he has time.

@jonahwilliams jonahwilliams added the autosubmit Merge PR when tree becomes green via auto submit App label Sep 24, 2024
@auto-submit auto-submit bot merged commit f7a4718 into flutter:main Sep 24, 2024
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Sep 25, 2024
auto-submit bot pushed a commit to flutter/flutter that referenced this pull request Sep 25, 2024
…155648)

flutter/engine@559f2ff...746ce61

2024-09-25 [email protected] Roll Dart SDK from 7af8c4882e07 to eda9ae15367e (2 revisions) (flutter/engine#55417)
2024-09-25 [email protected] [Flutter GPU] Add CullMode. (flutter/engine#55409)
2024-09-25 [email protected] Roll Skia from 2e92f0b443f4 to 3541cdf2fae6 (1 revision) (flutter/engine#55412)
2024-09-24 [email protected] [Impeller] fix Impeller on windows. (flutter/engine#55323)
2024-09-24 [email protected] [Impeller] add basic culling checks during text frame dispatcher. (flutter/engine#55168)
2024-09-24 [email protected] Move each dart GN rule to a standalone file. (flutter/engine#55404)
2024-09-24 [email protected] Roll Skia from 118914b760cb to 2e92f0b443f4 (1 revision) (flutter/engine#55406)
2024-09-24 [email protected] [Impeller] Pack impeller:Path into 2 vecs instead of 3. (flutter/engine#55028)
2024-09-24 [email protected] Disallow time traveling frame times (flutter/engine#55310)
2024-09-24 [email protected] [Impeller] Delete command pools held by the CommandPoolRecyclerVK after decoding an image on the IO thread (flutter/engine#55398)
2024-09-24 [email protected] Roll Skia from cf28f9dd411d to 118914b760cb (1 revision) (flutter/engine#55405)
2024-09-24 [email protected] [Flutter GPU] Add pipeline stencil config. (flutter/engine#55272)
2024-09-24 [email protected] Roll Skia from 6e5ff9253147 to cf28f9dd411d (1 revision) (flutter/engine#55399)
2024-09-24 [email protected] [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 [email protected],[email protected],[email protected] 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
thejitenpatel pushed a commit to thejitenpatel/flutter that referenced this pull request Sep 26, 2024
…lutter#155648)

flutter/engine@559f2ff...746ce61

2024-09-25 [email protected] Roll Dart SDK from 7af8c4882e07 to eda9ae15367e (2 revisions) (flutter/engine#55417)
2024-09-25 [email protected] [Flutter GPU] Add CullMode. (flutter/engine#55409)
2024-09-25 [email protected] Roll Skia from 2e92f0b443f4 to 3541cdf2fae6 (1 revision) (flutter/engine#55412)
2024-09-24 [email protected] [Impeller] fix Impeller on windows. (flutter/engine#55323)
2024-09-24 [email protected] [Impeller] add basic culling checks during text frame dispatcher. (flutter/engine#55168)
2024-09-24 [email protected] Move each dart GN rule to a standalone file. (flutter/engine#55404)
2024-09-24 [email protected] Roll Skia from 118914b760cb to 2e92f0b443f4 (1 revision) (flutter/engine#55406)
2024-09-24 [email protected] [Impeller] Pack impeller:Path into 2 vecs instead of 3. (flutter/engine#55028)
2024-09-24 [email protected] Disallow time traveling frame times (flutter/engine#55310)
2024-09-24 [email protected] [Impeller] Delete command pools held by the CommandPoolRecyclerVK after decoding an image on the IO thread (flutter/engine#55398)
2024-09-24 [email protected] Roll Skia from cf28f9dd411d to 118914b760cb (1 revision) (flutter/engine#55405)
2024-09-24 [email protected] [Flutter GPU] Add pipeline stencil config. (flutter/engine#55272)
2024-09-24 [email protected] Roll Skia from 6e5ff9253147 to cf28f9dd411d (1 revision) (flutter/engine#55399)
2024-09-24 [email protected] [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 [email protected],[email protected],[email protected] 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
thejitenpatel pushed a commit to thejitenpatel/flutter that referenced this pull request Sep 26, 2024
…lutter#155648)

flutter/engine@559f2ff...746ce61

2024-09-25 [email protected] Roll Dart SDK from 7af8c4882e07 to eda9ae15367e (2 revisions) (flutter/engine#55417)
2024-09-25 [email protected] [Flutter GPU] Add CullMode. (flutter/engine#55409)
2024-09-25 [email protected] Roll Skia from 2e92f0b443f4 to 3541cdf2fae6 (1 revision) (flutter/engine#55412)
2024-09-24 [email protected] [Impeller] fix Impeller on windows. (flutter/engine#55323)
2024-09-24 [email protected] [Impeller] add basic culling checks during text frame dispatcher. (flutter/engine#55168)
2024-09-24 [email protected] Move each dart GN rule to a standalone file. (flutter/engine#55404)
2024-09-24 [email protected] Roll Skia from 118914b760cb to 2e92f0b443f4 (1 revision) (flutter/engine#55406)
2024-09-24 [email protected] [Impeller] Pack impeller:Path into 2 vecs instead of 3. (flutter/engine#55028)
2024-09-24 [email protected] Disallow time traveling frame times (flutter/engine#55310)
2024-09-24 [email protected] [Impeller] Delete command pools held by the CommandPoolRecyclerVK after decoding an image on the IO thread (flutter/engine#55398)
2024-09-24 [email protected] Roll Skia from cf28f9dd411d to 118914b760cb (1 revision) (flutter/engine#55405)
2024-09-24 [email protected] [Flutter GPU] Add pipeline stencil config. (flutter/engine#55272)
2024-09-24 [email protected] Roll Skia from 6e5ff9253147 to cf28f9dd411d (1 revision) (flutter/engine#55399)
2024-09-24 [email protected] [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 [email protected],[email protected],[email protected] 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
thejitenpatel pushed a commit to thejitenpatel/flutter that referenced this pull request Sep 27, 2024
…lutter#155648)

flutter/engine@559f2ff...746ce61

2024-09-25 [email protected] Roll Dart SDK from 7af8c4882e07 to eda9ae15367e (2 revisions) (flutter/engine#55417)
2024-09-25 [email protected] [Flutter GPU] Add CullMode. (flutter/engine#55409)
2024-09-25 [email protected] Roll Skia from 2e92f0b443f4 to 3541cdf2fae6 (1 revision) (flutter/engine#55412)
2024-09-24 [email protected] [Impeller] fix Impeller on windows. (flutter/engine#55323)
2024-09-24 [email protected] [Impeller] add basic culling checks during text frame dispatcher. (flutter/engine#55168)
2024-09-24 [email protected] Move each dart GN rule to a standalone file. (flutter/engine#55404)
2024-09-24 [email protected] Roll Skia from 118914b760cb to 2e92f0b443f4 (1 revision) (flutter/engine#55406)
2024-09-24 [email protected] [Impeller] Pack impeller:Path into 2 vecs instead of 3. (flutter/engine#55028)
2024-09-24 [email protected] Disallow time traveling frame times (flutter/engine#55310)
2024-09-24 [email protected] [Impeller] Delete command pools held by the CommandPoolRecyclerVK after decoding an image on the IO thread (flutter/engine#55398)
2024-09-24 [email protected] Roll Skia from cf28f9dd411d to 118914b760cb (1 revision) (flutter/engine#55405)
2024-09-24 [email protected] [Flutter GPU] Add pipeline stencil config. (flutter/engine#55272)
2024-09-24 [email protected] Roll Skia from 6e5ff9253147 to cf28f9dd411d (1 revision) (flutter/engine#55399)
2024-09-24 [email protected] [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 [email protected],[email protected],[email protected] 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
thejitenpatel pushed a commit to thejitenpatel/flutter that referenced this pull request Sep 27, 2024
…lutter#155648)

flutter/engine@559f2ff...746ce61

2024-09-25 [email protected] Roll Dart SDK from 7af8c4882e07 to eda9ae15367e (2 revisions) (flutter/engine#55417)
2024-09-25 [email protected] [Flutter GPU] Add CullMode. (flutter/engine#55409)
2024-09-25 [email protected] Roll Skia from 2e92f0b443f4 to 3541cdf2fae6 (1 revision) (flutter/engine#55412)
2024-09-24 [email protected] [Impeller] fix Impeller on windows. (flutter/engine#55323)
2024-09-24 [email protected] [Impeller] add basic culling checks during text frame dispatcher. (flutter/engine#55168)
2024-09-24 [email protected] Move each dart GN rule to a standalone file. (flutter/engine#55404)
2024-09-24 [email protected] Roll Skia from 118914b760cb to 2e92f0b443f4 (1 revision) (flutter/engine#55406)
2024-09-24 [email protected] [Impeller] Pack impeller:Path into 2 vecs instead of 3. (flutter/engine#55028)
2024-09-24 [email protected] Disallow time traveling frame times (flutter/engine#55310)
2024-09-24 [email protected] [Impeller] Delete command pools held by the CommandPoolRecyclerVK after decoding an image on the IO thread (flutter/engine#55398)
2024-09-24 [email protected] Roll Skia from cf28f9dd411d to 118914b760cb (1 revision) (flutter/engine#55405)
2024-09-24 [email protected] [Flutter GPU] Add pipeline stencil config. (flutter/engine#55272)
2024-09-24 [email protected] Roll Skia from 6e5ff9253147 to cf28f9dd411d (1 revision) (flutter/engine#55399)
2024-09-24 [email protected] [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 [email protected],[email protected],[email protected] 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
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

affects: desktop autosubmit Merge PR when tree becomes green via auto submit App platform-windows

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Impeller] Fix Windows support (broken by flutter/engine#49726)

2 participants