Как я знаю до сих пор, поставщики поверхностных изображений обращаются к APP, чтобы отобразить, а затем соединить все поверхности с последним экраном. (Если есть какая-либо ошибка, укажите Thx).Контекст OpenGL между APP и поверхностным файловым устройством в Android
Первый вопрос: доступна ли поверхность, созданная поверхностным устройством, глобально доступной, которая может использоваться всеми процессами. (память памяти находится в памяти GPU?)
Хотя, поскольку я googled, невозможно разделить контекст openGL между процессами (здесь я имею в виду процесс APP и процесс поверхностного рисования). Я не уверен, что если бы память GPU использовалась поверхностью?
Если ответ на мой первый вопрос - да, то есть есть ли доступ к ресурсу openGL для поверхностного изображения, когда APP визуализируется на поверхность? И как работали эти вещи, включая память поверхности?
Похоже, что этой системе необходимо скопировать полученный результат из памяти графического процессора в системную память (BufferQueue), чтобы полученный результат можно было использовать совместно с SurfaceFlinger. Или аппаратное обеспечение может поддерживать рендеринг в системной памяти напрямую? – CurtisGuo
BufferQueues передает буферы вокруг ссылки, а не путем копирования содержимого. Большинство (все?) Android-устройств имеют UMA, поэтому вы можете смешивать и сопоставлять аппаратное и программное обеспечение без необходимости копировать содержимое буфера. – fadden