gpt4 book ai didi

android - 如何在 OpenGL ES 和 Vulkan 之间传递纹理?

转载 作者:行者123 更新时间:2023-12-04 15:43:10 26 4
gpt4 key购买 nike

我需要将在 OpenGL ES 中生成的纹理传递给 Vulkan,在上面渲染一些东西,然后传递回 OpenGL ES。有没有快速的方法来做到这一点?读取到 cpu 并传递给 gpu 每帧听起来对于实时 Android 应用来说太慢了。

最佳答案

在 Android 上,最广泛支持的方法是使用 AHardwareBuffer、VK_ANDROID_external_memory_android_hardware_buffer 和 VK_KHR_external_semaphore_fd 以及 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT 句柄。这些扩展尚未得到广泛支持——但也不是任何替代方案——但这是 UI 框架(通过 Skia)将使用的,因此它最终应该会得到广泛支持。

在 OpenGL ES 端,您可以将 AHardwareBuffer 导入 EGLImage ( EGL_ANDROID_image_native_buffer ),然后从那里导入 GL 纹理 ( GL_OES_EGL_image_external_essl3 )。使用 EGL_ANDROID_native_fence_sync 完成同步导入/导出.

关于android - 如何在 OpenGL ES 和 Vulkan 之间传递纹理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56970011/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com