Opengl GL\U映射\U失效\U范围\U位是否需要glInvalidateBufferSubData?
这可能是一个奇怪的问题,但不是我没有看到,就是没有注意到 我正在使用Opengl GL\U映射\U失效\U范围\U位是否需要glInvalidateBufferSubData?,opengl,Opengl,这可能是一个奇怪的问题,但不是我没有看到,就是没有注意到 我正在使用 glMapBufferRange(GL_数组_BUFFER,0,BufferSize,GL_MAP_WRITE_BIT | GL_MAP_PERSISTENT_BIT | GL_MAP_COHERENT_BIT | GL_MAP_INVALIDATE_RANGE_BIT) 文件规定: GL\u MAP\u INVALIDATE\u RANGE\u位表示 指定的范围可能会被丢弃。此范围内的数据为 未定义,后续写入的数据除外。无G
glMapBufferRange(GL_数组_BUFFER,0,BufferSize,GL_MAP_WRITE_BIT | GL_MAP_PERSISTENT_BIT | GL_MAP_COHERENT_BIT | GL_MAP_INVALIDATE_RANGE_BIT
)
文件规定:
GL\u MAP\u INVALIDATE\u RANGE\u位表示
指定的范围可能会被丢弃。此范围内的数据为
未定义,后续写入的数据除外。无GL错误
如果后续总账操作访问未写入的数据,则生成,但
结果是未定义和系统错误(可能包括程序错误
终止)可能发生。此标志不能与组合使用
GL\U映射\U读取位
现在,这并没有告诉我它现在是自动完成的(我对此表示怀疑),还是需要一些手动触发器,比如glInvalidateBufferSubData
我看不出任何性能差异,所以我有点好奇。使用该位会导致映射调用无效,而不是建议它;) 然而,如果您使用的是持久映射,那么指定该位就没有意义了。您只需要映射缓冲区一次,因为这就是使用持久映射的意义所在。使持久映射缓冲区无效,虽然合法,但实际上可能不会做任何事情