对超出缓冲区大小的维度的imageStore()操作

问题描述 投票:1回答:1

我有计算着色器,我在该缓冲区上有uimage2d缓冲区和imageStore()操作。我想知道如果我写入超出缓冲区大小的位置会有什么行为。会有一些包裹效果吗?或者行为取决于司机?或者它是否未定义且任何事情都可能发生?

opengl compute-shader
1个回答
1
投票

根据该规范,访问不存在的纹理元素没有效果。

OpenGL 4.6 API Core Profile Specification - 8.26. TEXTURE IMAGE LOADS AND STORES;第193页:

如果为图像加载,存储或原子操作识别的单个纹理元素不存在,则将访问视为无效。无效的图像加载将返回零。无效的图像存储将无效。无效的图像原子不会更新绑定到图像单元的任何纹理,并且将返回零。如果访问被视为无效,则:

[...]

  • 选定的纹理元素不存在
© www.soinside.com 2019 - 2024. All rights reserved.