我使用 SGX 544 GPU 来呈现3D 空间、然后我要将渲染的图像从 GPU 存储到 ARM 存储器。 因此、我使用 glReadPixels 从 GPU 的帧缓冲区读取图像。 但 glReadPixels 需要花200ms 才能得到一帧。 是否有其他方法从 GPU 的帧缓冲区读取图像(共享存储器或其他方法)?
顺便说一下,我的帧缓冲区大小是1280*720。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我使用 SGX 544 GPU 来呈现3D 空间、然后我要将渲染的图像从 GPU 存储到 ARM 存储器。 因此、我使用 glReadPixels 从 GPU 的帧缓冲区读取图像。 但 glReadPixels 需要花200ms 才能得到一帧。 是否有其他方法从 GPU 的帧缓冲区读取图像(共享存储器或其他方法)?
顺便说一下,我的帧缓冲区大小是1280*720。
你(们)好
如 Anand 所建议、请转至 Vision SDK 3.0、其中我们已有一个几乎符合您要求的用例。
请参阅\vision_sdk\apps\src\HLOS\ADAS\src\usecases\avbrx_sv_display_avbtx 下的内容
这在 SGX 上执行3D SRV 渲染、然后执行 DSS M2M 写回、以将数据格式从 ARGB32转换为 YUV420 (IVA 编码器仅支持此格式)、然后使用 AVB Tx 进行 H264编码和流式传输。
用于呈现的缓冲区从 IPU 空间(共享存储器)中分配、并提供给 GPU、因此不需要帧复制。
此致、Shiju