最近我研究了改进流媒体的纹理提交等等,尽管我进行了长时间的搜索,但我还没有找到任何材料,甚至没有提到任何使用仅限DSA功能的PBO的方式。
我不是在寻找合适的地方,或者到目前为止还没有办法吗?
答案 0 :(得分:2)
所有像素传输函数都可以采用缓冲区对象+偏移量或客户端CPU指针(例如,与VAO函数不同,现在只能使用缓冲区)。因此,允许您直接传递缓冲区对象+偏移量需要为两种执行像素传输的方法中的每一种设置单独的入口点。因此,他们需要glNamedReadPixelsToBuffer
和glNamedReadPixelsToClient
。
因此,不是进一步增加函数的数量(而不是使用客户端内存禁止),它们使缓冲区部分按照它一直以来的方式工作:通过绑定点。所以,是的,您仍然必须将该缓冲区绑定到PACK / UNPACK绑定。
由于像素传输并不是一个常见的操作(相对于其他类型的状态更改和渲染命令的数量),并且由于这些特定的绑定不直接与GPU相关联,因此它不应该影响您的代码那么多。另外,已经有lot of context state tied to pixel transfer operations;什么更重要?