2022年1月19日
摘要: 本系列文章介绍Android 12(S) 图形显示系统的基本知识,内容均基于最新的Android源码并结合本人的理解展开,仅作为参考、学习的资料 阅读全文
posted @ 2022-01-19 16:14 二的次方 阅读(1692) 评论(3) 推荐(1) 编辑
  2022年5月10日
摘要: SurfaceFlinger中的图层选择GPU合成(CLIENT合成方式)时,会把待合成的图层通过 renderengine 绘制到一块GraphicBuffer中,然后把这块图形缓存通过调用setClientTarget传递给HWC模块,HWC进一步处理后把这个GraphicBuffer中的图像呈现到屏幕上。本篇将介绍GPU合成的目的GraphicBuffer是从哪里来的? 阅读全文
posted @ 2022-05-10 09:14 二的次方 阅读(109) 评论(0) 推荐(0) 编辑
  2022年5月8日
摘要: 必读: Android 12(S) 图像显示系统 - 开篇 对于VSYNC的分析,本来想再进一步,看看它是如何驱动SurfaceFlinger合成 和 驱动应用渲染的。 不过 感觉这两点内容需要自己先研究合成和渲染的流程后再来讨论可能会更好,再者这部分在实际工作中基本没啥问题可做或调整,因此先把这块 阅读全文
posted @ 2022-05-08 19:06 二的次方 阅读(25) 评论(0) 推荐(0) 编辑
  2022年5月4日
摘要: 在项目的开发中,为了定位Android显示异常的原因:GPU渲染 or GPU合成 or HWC合成送显异常的问题。我们通常会把图层的原始数据写到文件,然后通过RGB或YUV的软件工具来查看这些原始的图像数据,从而确定问题发生的大体阶段。本文就将介绍如何dump Android渲染和合成图层GraphicBuffer 或 buffer_handle_t/native_handle_t的原始数据到文件的基本方法。 阅读全文
posted @ 2022-05-04 09:39 二的次方 阅读(152) 评论(1) 推荐(1) 编辑
  2022年5月1日
摘要: SurfaceFlinger端的 setClientTarget的流程 11-13 00:47:20.455 224 224 E HwcComposer: stackdump:#00 pc 00086f8f /system/bin/surfaceflinger (android::Hwc2::imp 阅读全文
posted @ 2022-05-01 08:17 二的次方 阅读(18) 评论(0) 推荐(1) 编辑
  2022年4月26日
摘要: 本篇文章从一个简单的demo出发,来具体分析vsync events是如何传递到接收者的。 阅读全文
posted @ 2022-04-26 11:47 二的次方 阅读(188) 评论(0) 推荐(2) 编辑
  2022年4月19日
摘要: Vsync作为驱动SF合成上屏和app渲染的主要机制,这篇文章,主要分析了VSync相关的一些初始化的过程,包括和 vsync event的产生和分发相关的组件及事件回调的流程。 阅读全文
posted @ 2022-04-19 17:24 二的次方 阅读(310) 评论(4) 推荐(1) 编辑
  2022年4月18日
摘要: 本文转载自:http://jishuin.proginn.com/p/763bfbd577a7 前言 正在带妹子上分的我,团战又卡了,我该怎么向妹子解释?在线等。 “卡”的意思 不管是端游还是手游,我们都会时不时遇到“卡”的时候,一般这个卡有两种含义: 掉帧 画面撕裂 那么问题来了,这些情况到底是 阅读全文
posted @ 2022-04-18 21:39 二的次方 阅读(106) 评论(2) 推荐(1) 编辑
摘要: 在Android显示子系统中,使用BitTube来进行跨进程数据传递的基本知识讲解。BitTube本质就是封装了socketpair来实现跨进程通信的。 阅读全文
posted @ 2022-04-18 13:38 二的次方 阅读(173) 评论(2) 推荐(2) 编辑
  2022年3月28日
摘要: Gralloc HAL 分为了两部分:一个是 allocator ,一个是 mapper。Android系统定义了标准的 Gralloc HAL interface,framework层是如何建立和HAL service的联系的呢?这篇文章将做简单分析。 阅读全文
posted @ 2022-03-28 09:06 二的次方 阅读(246) 评论(3) 推荐(1) 编辑
  2022年3月27日
摘要: GraphicBuffer是Android图形显示系统中的一个重要概念和组件,它就是用来存储和传递需要绘制的图像数据的,可以在应用程序和 BufferQueue 或 SurfaceFlinger 间传递。本文将聚焦分析 GraphicBuffer 创建的基本流程以及相关的Gralloc架构。 阅读全文
posted @ 2022-03-27 16:19 二的次方 阅读(418) 评论(6) 推荐(2) 编辑