在shader中访问SSBO时程序崩溃。

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

每当我试图访问一个SSBO时,我都会收到一个错误信息,称 atio6axx.pdb not loaded.

我的显卡 (AMD) 驱动程序已更新, 但有趣的是,同时搜索的解决方案,我发现 这个 线程,这是几个小时前才发的,那么会不会是驱动的问题呢?我搜索了一下我的电脑,发现 .dll 而非 .pdb,可能是这个问题吗?我把VS设置为从Microsoft Symbol Servers加载符号,但不是NuGet.org Symbol Servers。

相关代码。

Shader(简化为只显示必要的代码)

#version 430 core

layout(binding = 5, std430) buffer test
{
    float t[];
};

out vec4 colour;

void main()
{
    colour = vec4(test.t[0], test.t[1], test.t[2], 1);
}

创建SSBO

float test[3] { 0, 10, 0 };

glGenBuffers(1, &ss_id);
glBindBuffer(GL_SHADER_STORAGE_BUFFER, ss_id);
glBufferData(GL_SHADER_STORAGE_BUFFER, sizeof(float) * 3, test, GL_STATIC_READ);
glBindBufferBase(GL_SHADER_STORAGE_BUFFER, 5, ss_id);
glBindBuffer(GL_SHADER_STORAGE_BUFFER, 0);

感谢任何帮助

c++ opengl graphics 3d
1个回答
0
投票

对于其他有这个问题的人,我找到了它发生的原因。我指的是SSBO中的数据与 test.t[0]而不是应该只是 t[0].

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