Quantcast
Channel: AMD Developer Forums: Message List - OpenGL & Vulkan
Viewing all articles
Browse latest Browse all 631

Re: Re: GLSL compute shader incompatibilities

$
0
0

I tried once again and found that it is more an issue of the size specified when clearing the buffer than when creating it. Here I paste your modified code which doesn't work for me.

 

unsigned int bo[8];
unsigned char data[32 * 16];
glGenBuffers(8, bo);
glBindBufferBase(GL_SHADER_STORAGE_BUFFER, 0, bo[0]);
glBindBuffer(GL_SHADER_STORAGE_BUFFER, bo[0]);
glBufferData(GL_SHADER_STORAGE_BUFFER, 32 * 16, &data[0], GL_DYNAMIC_COPY);
glGetBufferSubData(GL_SHADER_STORAGE_BUFFER, 0, 12, &data[0]);
checkGLError("GetBufferSubData");
glClearBufferSubData(GL_SHADER_STORAGE_BUFFER, GL_RGB32UI, 0, 12, GL_RGB_INTEGER, GL_UNSIGNED_INT, 0); // Works when using size 16 instead of 12, but 3 * 4 = 12
checkGLError("ClearBufferSubData");
glGetBufferSubData(GL_SHADER_STORAGE_BUFFER, 0, 12, &data[0]);
checkGLError("GetBufferSubData");

 

The code reports INVALID_VALUE error after the ClearBufferSubData call.

Please, check my code again. If needed, I can send you a whole project for MSVC 2012 (using Freeglut and GLEW), it is only a simple test suite for the case.

 

Thank you in advance!


Viewing all articles
Browse latest Browse all 631

Trending Articles