我有计算着色器,我在该缓冲区上有uimage2d缓冲区和imageStore()操作。我想知道如果我写入超出缓冲区大小的位置会有什么行为。会有一些包裹效果吗?或者行为取决于司机?或者它是否未定义且任何事情都可能发生?
根据该规范,访问不存在的纹理元素没有效果。
见OpenGL 4.6 API Core Profile Specification - 8.26. TEXTURE IMAGE LOADS AND STORES;第193页:
如果为图像加载,存储或原子操作识别的单个纹理元素不存在,则将访问视为无效。无效的图像加载将返回零。无效的图像存储将无效。无效的图像原子不会更新绑定到图像单元的任何纹理,并且将返回零。如果访问被视为无效,则:
[...]
- 选定的纹理元素不存在