核心组件
- Skia
- ANGLE
- BufferQueue
- SurfaceFlinger
- HWC3
- Gralloc
TOPIC 01 / 08 · FRAMEWORK → HAL → KERNEL
从 SurfaceFlinger、HWC 与 Gralloc 追踪一帧如何合成、分配并送入显示控制器。
先确认问题发生在哪一层,再沿接口检查所有权、缓冲区格式、同步与时序。动态条目只在证据和相关性达到公开阈值后出现。
RELATED SIGNALS
摘要待补:https://chromium.googlesource.com/angle/angle.git/+log/272d37f4cc0c..91d2d125ec00 2026-08-03 wangra@google.com Vulkan: Map only remaining buffer size in getIndexRange 2026-08-03 wangra@google.com Optimize robust init check during GenerateMipmap 2026-08-03 geofflang@chromium.org GL: Use PixelPack/Unpack structs in ContextStateGL 2026-08-03 syoussefi@chromium.org Vulkan: Remove TextureVk::getImageViews() 2026-08-03 ted.lin0000@gmail.com Tests: Fix dEQP build and runtime for Wayland-only configs 2026-08-03 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 9b3fec1aec6c to af17ae0ac3a5 (8 revisions) 2026-08-03 yanwen.xu@samsung.com OpenCL: add additional validation to GetProgramInfo 2026-08-03 angle-autoroll@skia-public.iam.gserviceaccount.com Roll VK-GL-CTS from 3b7cbad78e93 to 34b25839e80b (23 revisions) 2026-08-03 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from cbb915d67c46 to 9ac349c94b98 (845 revisions) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/angle-skia-autoroll Please CC alexisdavidc@google.com,jmadill@google.com on the revert to ensure that a human is
摘要待补:In `expression[index]`, when checking if certain limitations apply to the `expression` and `index`, skip all comma operator left-hand sides in `expression` before checking the qualifier. If for example `gl_SomeBuiltIn[index]` has a restriction, so does `(x, gl_SomeBuiltIn)[index]`. Bug: chromium:540019091 Change-Id: Ib01937521eba275220f7e157686606cda53331f2 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/8178173 Reviewed-by: Yuxin Hu <yuxinhu@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
摘要待补:https://chromium.googlesource.com/vulkan-deps.git/+log/af17ae0ac3a5..fd9ab9744d0b Also rolling transitive DEPS: https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/a9cdf5bdd25d516294b5c25502b67e6116ed7eb5..d993bcfafa3c6dd9c0ba0560ae1456a62fd78e07 https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries/+log/ca91449653e1a29b4b3c1876d7f6e1dcda08cfdd..bf60ee138ced6a8cf9bc3d3f05e32c6a99c2e778 If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/vulkan-deps-skia-autoroll Please CC alexisdavidc@google.com,skiabot@google.com on the revert to ensure that a human is aware of the problem. To file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry 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 Cq-Include-Trybots: skia/skia.primary:Build-Ubuntu24.04-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win11-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All
摘要待补:Both Ganesh and Graphite share a lot of common structure to their glyph handling code, so the changes outlined below are applied pretty similarly to both codebases. 1. Adds a new shared type PackedGPUGlyphID that wraps SkPackedGlyphID and packs into the free bits the rest of the information that atlas-backed glyphs require, which is the mask format, the amount of padding, and whether or not the data is a coverage or distance value. 2. Pulls back the presence of MaskFormat from the GlyphVector concepts and functions as it's now handled internally by each backend's GlyphData classes and embedded into the packed GPU IDs that they make. 3. Each backend's TextStrike implementation stores PackedGPUGlyphIDs as the keys to GlyphEntries instead of SkPackedGlyphIDs. This ensures that an atlas will only have a cache hit if all of the mask/padding/data-type properties are consistent with what was in the atlas and what is requested by the subrun being drawn. 4. Each backend's GlyphData implementation takes in these additional properties in its constructor (propagating to initBackendData() calls). It then resolves the mask format and padding with the configuration of the backend's atlas mana
摘要待补:I noticed the flags (e.g. dawn) for --backend's help message were out of date. The intent was to update this dynamically based on what was compiled in, but this bitrotted. I updated this to match the logic for get_backend_type Change-Id: Ic6d3565b8f644ca87f4fb742b78d264d1a0c8079 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1313016 Commit-Queue: Kaylee Lubick <kjlubick@google.com> Auto-Submit: Kaylee Lubick <kjlubick@google.com> Commit-Queue: Alexis Cruz-Ayala <alexisdavidc@google.com> Reviewed-by: Alexis Cruz-Ayala <alexisdavidc@google.com>
摘要待补:Correct the mapped buffer range length in getIndexRange to only map the remaining buffer size. This prevents staging buffer copies from reading past the end of the suballocation. Test: angle_end2end_tests --gtest_filter="*DrawAtOffsetWithClientSideVertexData*" Bug: b/536598187 Change-Id: I6e1bb638562fc165a013478c16da639c1cfd5071 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/8178489 Reviewed-by: Charlie Lao <cclao@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Ran Wang <wangra@google.com>
摘要待补:Add an enum class EnsureInitializedLevels to optionally skip robust initialization for texture levels above the base level during glGenerateMipmap since they will be overwritten. Test: angle_end2end_tests --gtest_filter="MipmapRobustInitTestES3.GenerateMipmapRobustInitOptimization*" Bug: b/532617619 Change-Id: I5bc60b0df7e72839f61a4f8a65c3d2e64825b67f Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/8177726 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Ran Wang <wangra@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
摘要待补:Instead of enumerating the members, store them in the frontend structs. This matches the single dirty bit which represents all of them together. Bug: angleproject:532176406 Change-Id: Ibe8dfbe458e229a8965af3ed11e08771e3801e86 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/8141004 Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>