【问题标题】:Video playback with Vulkan on Android Devices [duplicate]在 Android 设备上使用 Vulkan 播放视频 [重复]
【发布时间】:2017-05-07 05:43:34
【问题描述】:

世界几何的视频播放,也就是“电影纹理”,是许多游戏的重要功能。在 Android 上,这可以通过使用

GL_TEXTURE_EXTERNAL_OES

OpenGL ES 的扩展。

但我找不到任何类似的 vulkan 扩展或功能。

是否有人已经找到了如何使用 vulkan 播放视频的解决方案,它不涉及在 CPU 和 GPU ram 之间复制每一帧的纹理数据,因此对于 Android 设备来说足够高效?

【问题讨论】:

  • Vulkan 的外部内存扩展几个月前就已经登陆了。给它一些时间。它仍然被认为是实验性的,驱动程序需要实现这一点,并且第 3 方软件(如 Android)需要公开和利用该功能。
  • VK_KHX_external_memory 和朋友可能是您正在寻找的扩展等价物。
  • 是的。尽管正如 Nicol Bolas 在他的回答中提到的那样,external_memory 扩展并不是完整的答案:您还需要一种以可移植方式处理 YCbCr 格式和设备特定格式的方法。 GL_TEXTURE_EXTERNAL_OES 是一个巨大的驱动魔法黑盒(通常涉及隐藏着色器重新编译);在 Vulkan 中实现同样的目标不会那么简单。

标签: android vulkan


【解决方案1】:

Vulkan 等价物是KHX_external_memory 扩展行。 “KHX”这个名字意味着它们是实验性的,所以它们可能没有被广泛实施。

但是,当前实际为外部内存提供源的扩展是 Win32(通过 Windows HANDLEs)和 fd(通过 POSIX 文件描述符)。这与 OES_EGL_image_external 的行为完全不同,OES_EGL_image_external 的行为是关于访问 EGL 图像,这些图像甚至可以具有 OpenGL 通常不处理的格式 (YUV)。 Vulkan 外部存储器工具要求格式为实际的 Vulkan 格式。

所以目前,Vulkan 无法有效处理您所说的内容。

【讨论】:

    猜你喜欢
    • 2017-10-24
    • 2023-03-27
    • 2015-06-28
    • 1970-01-01
    • 2014-04-18
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多