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

Move SetRenderTargetType to EmbedderTestCompositor #56626

Merged
merged 1 commit into from
Nov 15, 2024

Conversation

cbracken
Copy link
Member

@cbracken cbracken commented Nov 15, 2024

SetRenderTargetType is used to configure the backingstore producer on the compositor, but the backingstore types available to any given compositor are limited to the specific graphics backend in use: Software, GL, Metal, or Vulkan.

This moves SetRenderTargetType to EmbedderTestCompositor and its subclasses and adds RenderTargetType validation. A follow-up patch will refactor EmbedderTestBackingStoreProducer into backend-specific subclasses.

For OpenGL backingstore producers, the egl_context_ from EmbedderTestContext (which is actually set in the EmbedderTestContextGL subclass and should live there, but that's a separate cleanup) is required in SetRenderTargetType, so we now inject it into EmbedderTestCompositor in the constructor so it's available when needed.

Issue: flutter/flutter#158998

Pre-launch Checklist

  • I read the Contributor Guide and followed the process outlined there for submitting PRs.
  • I read the Tree Hygiene wiki page, which explains my responsibilities.
  • I read and followed the Flutter Style Guide and the C++, Objective-C, Java style guides.
  • I did not list at least one issue that this PR fixes in the description above.
  • I added new tests to check the change I am making or feature I am adding, or the PR is test-exempt. See testing the engine for instructions on writing and running engine tests.
  • I updated/added relevant documentation (doc comments with ///).
  • I signed the CLA.
  • All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel on Discord.

EmbedderTestBackingStoreProducer::RenderTargetType type,
FlutterSoftwarePixelFormat software_pixfmt) {
// TODO(wrightgeorge): figure out a better way of plumbing through the
// GrDirectContext
Copy link
Member Author

Choose a reason for hiding this comment

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

Figured out a better way of plumbing through GrDirectContext.

@cbracken cbracken force-pushed the refactor-setrendertargettype branch 2 times, most recently from 10c93a3 to fc80c88 Compare November 15, 2024 20:23
Copy link
Member

@bdero bdero left a comment

Choose a reason for hiding this comment

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

LGTM

@cbracken cbracken force-pushed the refactor-setrendertargettype branch 3 times, most recently from 7b0f438 to 0eaa96d Compare November 15, 2024 21:00
SetRenderTargetType is used to configure the backingstore producer on
the compositor, but the backingstore types available to any given
compositor are limited to the specific graphics backend in use:
Software, GL, Metal, or Vulkan.

This moves SetRenderTargetType to EmbedderTestCompositor and its
subclasses and adds RenderTargetType validation. A follow-up patch will
refactor EmbedderTestBackingStoreProducer into backend-specific
subclasses.

For OpenGL backingstore producers, the egl_context_ from
EmbedderTestContext (which is actually set in the EmbedderTestContextGL
subclass and should live there, but that's a separate cleanup) is
required in SetRenderTargetType, so we now inject it into
EmbedderTestCompositor in the constructor so it's available when needed.
@cbracken cbracken force-pushed the refactor-setrendertargettype branch from 0eaa96d to 945c66f Compare November 15, 2024 21:37
@cbracken cbracken added the autosubmit Merge PR when tree becomes green via auto submit App label Nov 15, 2024
@auto-submit auto-submit bot merged commit f3df1fb into flutter:main Nov 15, 2024
31 checks passed
@auto-submit auto-submit bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Nov 15, 2024
@cbracken cbracken deleted the refactor-setrendertargettype branch November 15, 2024 23:39
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Nov 16, 2024
github-merge-queue bot pushed a commit to flutter/flutter that referenced this pull request Nov 16, 2024
…159015)

Roll Flutter Engine from 619804c0fbb7 to f649330affa8 (47 revisions)

flutter/engine@619804c...f649330

2024-11-16 skia-flutter-autoroll@skia.org Roll Skia from 1ef3b910e064 to
6b0f264bde33 (6 revisions) (flutter/engine#56635)
2024-11-16 zanderso@users.noreply.github.com Revert "Remove
`android_jit_release_x86`." (flutter/engine#56634)
2024-11-15 chris@bracken.jp Move SetRenderTargetType to
EmbedderTestCompositor (flutter/engine#56626)
2024-11-15 skia-flutter-autoroll@skia.org Roll Dart SDK from
b62dadb14d82 to eccb15756020 (2 revisions) (flutter/engine#56630)
2024-11-15 andre.stein.1985@gmail.com [TextInput] Add
TextInputType.webSearch (#15762) (flutter/engine#56428)
2024-11-15 mdebbar@google.com [web] Send the correct view ID with
semantics actions (flutter/engine#56595)
2024-11-15 41930132+hellohuanlin@users.noreply.github.com [macos] early
return to suppress clang-tidy warning (flutter/engine#56588)
2024-11-15 chinmaygarde@google.com [Impeller] libImpeller: Tinker on the
README to cross reference the SDK and the example.
(flutter/engine#56623)
2024-11-15 chaopeng@google.com [fuchsia] MaybeRunInitialVsyncCallback
should only called once (flutter/engine#56429)
2024-11-15 magder@google.com Move mac clangd build from x64 to arm
(flutter/engine#56567)
2024-11-15 30870216+gaaclarke@users.noreply.github.com Added assert for
opengles thread safety (flutter/engine#56585)
2024-11-15 jonahwilliams@google.com [Impeller] enable OpenGL fallback on
Android. (flutter/engine#56591)
2024-11-15 jason-simmons@users.noreply.github.com [Impeller] Maintain
separate queues of GLES operations for each thread in the reactor
(flutter/engine#56573)
2024-11-15 skia-flutter-autoroll@skia.org Roll Dart SDK from
abe86ca4eb01 to b62dadb14d82 (2 revisions) (flutter/engine#56615)
2024-11-15 skia-flutter-autoroll@skia.org Roll Skia from b730eb340852 to
1ef3b910e064 (4 revisions) (flutter/engine#56613)
2024-11-15 skia-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from
JkpuAsLzcmYLzf1iX... to UpSQzyXGUhMfedYIh... (flutter/engine#56611)
2024-11-15 skia-flutter-autoroll@skia.org Roll Dart SDK from
bf0eeb9d929c to abe86ca4eb01 (1 revision) (flutter/engine#56610)
2024-11-15 skia-flutter-autoroll@skia.org Roll Skia from e5fda8472b21 to
b730eb340852 (1 revision) (flutter/engine#56608)
2024-11-15 skia-flutter-autoroll@skia.org Roll Skia from 8ff65da4b8bf to
e5fda8472b21 (1 revision) (flutter/engine#56603)
2024-11-15 chris@bracken.jp Move TestMetalContext/Surface to testing
namespace (flutter/engine#56602)
2024-11-15 skia-flutter-autoroll@skia.org Roll Dart SDK from
343b9fc6eafe to bf0eeb9d929c (1 revision) (flutter/engine#56604)
2024-11-15 chinmaygarde@google.com [Impeller] Don't enable KHR_debug on
Angle. (flutter/engine#56601)
2024-11-15 chinmaygarde@google.com [Impeller] libImpeller: Reset the GL
state when transitioning control back to the embedder.
(flutter/engine#56597)
2024-11-15 skia-flutter-autoroll@skia.org Roll Skia from 8946ea477b42 to
8ff65da4b8bf (2 revisions) (flutter/engine#56600)
2024-11-14 chinmaygarde@google.com [Impeller] Put test components in the
testing namespace. (flutter/engine#56594)
2024-11-14 chinmaygarde@google.com [Impeller] libImpeller: Add a warning
about OpenGL state being trampled. (flutter/engine#56599)
2024-11-14 chris@bracken.jp Embedder: Refactor EmbedderConfigBuilder by
backend (flutter/engine#56598)
2024-11-14 chris@bracken.jp Migrate Metal translation units to Obj-C++
(flutter/engine#56592)
2024-11-14 skia-flutter-autoroll@skia.org Roll Dart SDK from
db4d7d52db48 to 343b9fc6eafe (1 revision) (flutter/engine#56590)
2024-11-14 chris@bracken.jp iOS,macOS: Build/test
test_metal_surface_unittests (flutter/engine#56586)
2024-11-14 skia-flutter-autoroll@skia.org Roll Skia from 3222456e63dc to
8946ea477b42 (2 revisions) (flutter/engine#56587)
2024-11-14 skia-flutter-autoroll@skia.org Roll Skia from 16178bf63de7 to
3222456e63dc (3 revisions) (flutter/engine#56584)
2024-11-14 bruno.leroux@gmail.com [Android] Fix Slider semantics double
tap behaviors (flutter/engine#56452)
2024-11-14 skia-flutter-autoroll@skia.org Roll Dart SDK from
a3b6652100c8 to db4d7d52db48 (1 revision) (flutter/engine#56581)
2024-11-14 chris@bracken.jp Move Vulkan context to
EmbedderTestContextVulkan (flutter/engine#56571)
2024-11-14 skia-flutter-autoroll@skia.org Roll Skia from a076435073fc to
16178bf63de7 (1 revision) (flutter/engine#56579)
2024-11-14 skia-flutter-autoroll@skia.org Roll Skia from 70553189e4e8 to
a076435073fc (1 revision) (flutter/engine#56577)
2024-11-14 skia-flutter-autoroll@skia.org Roll Skia from fa52f2c1ddba to
70553189e4e8 (1 revision) (flutter/engine#56576)
2024-11-14 skia-flutter-autoroll@skia.org Roll Dart SDK from
3f05b3540cb2 to a3b6652100c8 (3 revisions) (flutter/engine#56575)
2024-11-14 skia-flutter-autoroll@skia.org Roll Skia from ddbd8d1cb8d8 to
fa52f2c1ddba (3 revisions) (flutter/engine#56574)
2024-11-14 jonahwilliams@google.com [Android] choose 24 bit depth
buffer. (flutter/engine#56553)
2024-11-14 skia-flutter-autoroll@skia.org Roll Skia from 3750b8939c7f to
ddbd8d1cb8d8 (1 revision) (flutter/engine#56562)
2024-11-14 robert.ancell@canonical.com Move FlMouseCursorHandler from
FlView to FlEngine (flutter/engine#56026)
2024-11-14 jonahwilliams@google.com [Impeller] force software resize
usage for GLES backend. (flutter/engine#56511)
2024-11-14 skia-flutter-autoroll@skia.org Roll Dart SDK from
66ab1774bfe9 to 3f05b3540cb2 (2 revisions) (flutter/engine#56564)
2024-11-14 chris@bracken.jp Embedder: Refactor EmbedderTestContext
creation (flutter/engine#56563)
...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants