最低保证的Shader存储块大小是多少?

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

如果有的话,我似乎找不到它的存在.我在使用统一缓冲区时遇到了一个问题,gl规范给出的最小尺寸只有1024个位置。我在SSBO的着色器中可以引用的位置数量是否有一个设定的最小值?例如,如果我想在一个SSBO中能够访问10,000个 mat4s?

另外,在目前的现代硬件上,使用SSBO与使用顶点缓冲器之间是否有明显的性能差异?

使用SSBO、VBO或几何着色器大概如何比较?这是在存储扩展顶点的情况下)。如果没有一般情况下的答案,我就剖析一下。

c++ opengl shader vertex-buffer ssbo
1个回答
0
投票

最大的shader存储块大小可以通过以下方式获得。

GLint64 size;
glGetInteger64v(GL_MAX_SHADER_STORAGE_BLOCK_SIZE, &size) 

规范保证的shader存储块大小的最小值是2^27(128MB)。

参见 OpenGL 4.6 API核心配置文件规范 - 状态表 分别 着色器存储缓冲区对象

© www.soinside.com 2019 - 2024. All rights reserved.