TOPIC 07 / 08 · COMPILER → SCHEDULER → MEMORY

GPU Drivers

跨厂商观察编译器、内存管理、调度、固件与性能分析工具的共同结构。

01 Compiler
02 Userspace Driver
03 Kernel Driver
04 Firmware / GPU

核心组件

  • NIR/LLVM
  • Command Stream
  • VM
  • Scheduler
  • Firmware

关键接口

  • UAPI
  • GPU VM
  • syncobj
  • perf counters

一帧的数据流

  1. shader 编译
  2. 资源映射
  3. 命令构建
  4. 内核调度
  5. GPU 执行

调试入口

  • GPU hang dump
  • devcoredump
  • perf counters
  • vendor profiler

阅读方法

先确认问题发生在哪一层,再沿接口检查所有权、缓冲区格式、同步与时序。动态条目只在证据和相关性达到公开阈值后出现。

RELATED SIGNALS

关联动态

79SCORE
一手来源Skia发布android / gpu-drivers

Roll ANGLE from 272d37f4cc0c to 91d2d125ec00 (9 revisions)

摘要待补: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

查看原文 →
79SCORE
一手来源Skia发布android / gpu-drivers

Roll vulkan-deps from af17ae0ac3a5 to fd9ab9744d0b (9 revisions)

摘要待补: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

查看原文 →
72SCORE
一手来源Skia驱动android / gpu-drivers

[text] Introduce PackedGPUGlyphID to add more metadata to SkPackedGlyphID

摘要待补: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

查看原文 →
71SCORE
一手来源Skia功能android / gpu-drivers

Update viewer help flags

摘要待补: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>

查看原文 →
60SCORE
发现来源LWN.net文章linux-drm / gpu-drivers

Twenty years of Pandoc

摘要待补:<p>John MacFarlane has published a <a href="https://pandoc.org/twenty-years-of-pandoc.html">lengthy retrospective</a> to commemorate twenty years of the <a href="https://pandoc.org/">Pandoc</a> document converter.</p> <blockquote class="bq"> <p>On August 3, 2006, I uploaded the first version of pandoc to my website, releasing it under the free GPL license. Pandoc 0.1 consisted of about 3000 lines of Haskell code, with no dependencies aside from GHC's standard library. It could convert Markdown, reStructuredText, HTML, and LaTeX documents into any of these formats, plus RTF or S5. I had no idea at the time that this would just be the first of over two hundred releases over the next twenty years; that the project would become the <a href="https://github.com/EvanLi/Github-Ranking/blob/master/Top100/Haskell.md">most popular program written in Haskell</a>; that I would spend countless hours on bug-fixes, improvement, and project management; that I would collaborate with programmers in many other countries; that pandoc would come to support over fifty document formats; that it would allow automatic generation of citations and bibliographies; that it would become integrated into academic

查看原文 →
97SCORE
一手来源Skia规范android / gpu-drivers

[Graphite] Add explicit root nodes struct

摘要待补:For the implementation of drawMesh, we would like to add another optional root shader node for SkMeshSpecification shaders, however this introduces some ambiguity in the root nodes layout since this would be an optional node coming after the clip shader which is also optional. We could check if the 3rd node shader snippet is a mesh shader, or assume 4 root nodes means all nodes exist; however this seems brittle to be relying on consistent indices of the nodes and checks like this, so instead I made a struct which tracks the root nodes explicitly. This is done by inserting headers with a value < 0 specifying the type of root node to the PaintParamsKey data before every root node which is appended. Then when constructing the ShaderNode tree, root nodes are expected to be preceded by a header which defines the type of root node it is. Bug: b/238758222 Change-Id: Ic8f1fbf3e7cb23ef307d7537a6acbf1739993088 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1300900 Reviewed-by: Michael Ludwig <michaelludwig@google.com> Commit-Queue: Nathan Sanchez <nathanasanchez@google.com>

查看原文 →