- 06 5月, 2020 1 次提交
-
-
由 Chris Yang 提交于
-
- 02 5月, 2020 1 次提交
-
-
由 Chinmay Garde 提交于
The way transactions were added changed in https://github.com/flutter/engine/commit/68fd8334889610af08cbfc2828f91cf14faf3f1d. This broke rendering using both Metal and OpenGL when no implicit transaction was present on the transaction stack. The failure models differ based on Metal vs. OpenGL and iOS/device versions. On older versions of iOS, rendering would consume memory till exhaustion. On newer iOS versions, rendering would be stuck (till a timeout). This patch brings transaction management back in line with as it was earlier and also makes the Metal backend resilient to transactions being present on the transaction stack at all. Since this is still quite brittle, transaction management must be moved to IOSSurface as a followup. Fixes https://github.com/flutter/flutter/issues/55784.
-
- 23 3月, 2020 1 次提交
-
-
由 Chinmay Garde 提交于
All Metal layers have their presentsWithTransaction property set to true. However, when an external view embedder is not present, there is no mechanism to ensure that the command buffer commit is within transaction scope. This works in most cases as there there is usually an implicit (possibly nested) transaction in place during rendering. However, when there isn’t, rendering will look paused at an incorrect size. This code now works similar to OpenGL but will be refactored for ease of understanding and consistency between the various backends.
-
- 11 3月, 2020 1 次提交
-
-
由 Chinmay Garde 提交于
This moves the Metal `GrContext` creation utilities from `GPUSurfaceMetal` into a separate `IOSContext` object subclass. An analogue of this object was used in the GL regime for the management of onscreen and offscreen contexts that were not tied to the lifecycle of the `GPUSurface`. This pattern has now been generalized for use with all backends that need a resource context (`IOSContextGL` and `IOContextMetal`). The platform views controller management in the `ExternalViewEmbedder` interface implementation was repeated three times for [Metal][metal], [OpenGL](opengl) and [Software](software) rendering. This repetition has been removed and a single implementation present in the base `IOSSurface` and used on all platforms. Addition of new client rendering APIs should not affect how the engine renders into the platform view interleaving levels. All rendering API selection logic has been moved into a single set of utilities in `rendering_api_selection.h`. This enables the removal of a lot of code blocks guarded by `FLUTTER_SHELL_ENABLE_METAL`. The remaining uses of this will be removed when unified builds are enabled. The Metal backend now also adds traces similar to the GL backend. The `IOGLContext` has been renamed to `IOContextGL` to be more in line with the convention used in this library. Fixes https://github.com/flutter/flutter/issues/41827 Adds https://github.com/flutter/flutter/issues/52150 [metal]: https://github.com/flutter/engine/blob/1194ba2b218706a201c5d2c5325b55a5932546c5/shell/platform/darwin/ios/ios_surface_metal.mm#L55 [opengl]: https://github.com/flutter/engine/blob/1194ba2b218706a201c5d2c5325b55a5932546c5/shell/platform/darwin/ios/ios_surface_gl.mm#L95 [software]: https://github.com/flutter/engine/blob/1194ba2b218706a201c5d2c5325b55a5932546c5/shell/platform/darwin/ios/ios_surface_software.mm#L146
-
- 12 12月, 2019 1 次提交
-
-
由 Jim Graham 提交于
Currently helps primarily on iOS when no BackdropFilter is present by lowering energy usage
-
- 04 12月, 2019 1 次提交
-
- 28 11月, 2019 1 次提交
-
-
由 Jim Graham 提交于
Only use an offscreen surface on iOS if a layer which reads back from the destination surface, such as BackdropFilter, is present.
-
- 19 11月, 2019 1 次提交
-
-
由 Todd Volkert 提交于
This reverts commit f456423c. This is being reverted because it caused flutter/flutter#45098 (images don't load on iOS).
-
- 15 11月, 2019 1 次提交
-
-
由 Chris Yang 提交于
-
- 12 11月, 2019 1 次提交
-
-
由 Chris Yang 提交于
This reverts commit 2dcfaaeb.
-
- 09 11月, 2019 1 次提交
-
-
由 Chris Yang 提交于
-
- 05 11月, 2019 1 次提交
-
-
由 Chinmay Garde 提交于
By default, the CAMetalLayer backing store is a framebuffer attachment that is only optimized for display. However, effects such as backdrop filters require renderbuffer readback. Making this calls will result in exceptions. Disable the write only optimization on such backing store. Fixes https://github.com/flutter/flutter/issues/43555
-
- 29 10月, 2019 1 次提交
-
-
由 Chinmay Garde 提交于
Uses the new `SkSurface::MakeFromCAMetalLayer` Skia API.
-
- 24 8月, 2019 1 次提交
-
-
由 Dan Field 提交于
-
- 20 6月, 2019 1 次提交
-
-
由 Chinmay Garde 提交于
Also makes it so that folks don't have to patch the buildroot manually when building for Metal.
-
- 12 5月, 2019 1 次提交
-
-
由 Chinmay Garde 提交于
-