我有计算着色器,其中我在该缓冲区上有 uimage2d 缓冲区和 imageStore() 操作。我想知道如果我写入超出缓冲区大小的位置会发生什么行为。会有一些包裹效果吗?或者行为取决于驱动程序?或者它会未定义并且任何事情都可能发生?
1 回答
1
根据规范,对不存在的纹素的访问无效。
请参阅OpenGL 4.6 API 核心配置文件规范 - 8.26。纹理图像加载和存储;第 193 页:
如果为图像加载、存储或原子操作识别的单个纹素不存在,则该访问被视为无效。无效的图像加载将返回零。 无效的图像存储将不起作用。无效的图像原子不会更新绑定到图像单元的任何纹理,并将返回零。在以下情况下,访问被视为无效:
[...]
- 选定的纹素不存在
于 2019-03-10T23:09:32.840 回答