Revert the changes to use SSAO AND 2 buffers

This commit is contained in:
samcake 2016-04-19 10:47:54 -07:00
parent 265f6f1275
commit 1a154bb3be
4 changed files with 9 additions and 17 deletions

View file

@ -51,7 +51,7 @@
#if (GPU_INPUT_PROFILE == GPU_CORE_43) #if (GPU_INPUT_PROFILE == GPU_CORE_43)
// Deactivate SSBO for now, we've run into some issues // Deactivate SSBO for now, we've run into some issues
// on GL 4.3 capable GPUs not behaving as expected // on GL 4.3 capable GPUs not behaving as expected
#define GPU_SSBO_DRAW_CALL_INFO //#define GPU_SSBO_DRAW_CALL_INFO
#endif #endif

View file

@ -461,8 +461,7 @@ protected:
mutable std::map<std::string, GLvoid*> _drawCallInfoOffsets; mutable std::map<std::string, GLvoid*> _drawCallInfoOffsets;
mutable int batchNum{ 0 }; GLuint _objectBuffer { 0 };
GLuint _objectBuffer[2];
GLuint _cameraBuffer { 0 }; GLuint _cameraBuffer { 0 };
GLuint _drawCallInfoBuffer { 0 }; GLuint _drawCallInfoBuffer { 0 };
GLuint _objectBufferTexture { 0 }; GLuint _objectBufferTexture { 0 };

View file

@ -67,9 +67,7 @@ void GLBackend::do_setDepthRangeTransform(Batch& batch, size_t paramOffset) {
} }
void GLBackend::initTransform() { void GLBackend::initTransform() {
glGenBuffers(1, &_transform._objectBuffer);
glGenBuffers(2, _transform._objectBuffer);
// glGenBuffers(1, &_transform._objectBuffer);
glGenBuffers(1, &_transform._cameraBuffer); glGenBuffers(1, &_transform._cameraBuffer);
glGenBuffers(1, &_transform._drawCallInfoBuffer); glGenBuffers(1, &_transform._drawCallInfoBuffer);
#ifndef GPU_SSBO_DRAW_CALL_INFO #ifndef GPU_SSBO_DRAW_CALL_INFO
@ -82,8 +80,7 @@ void GLBackend::initTransform() {
} }
void GLBackend::killTransform() { void GLBackend::killTransform() {
glDeleteBuffers(2, _transform._objectBuffer); glDeleteBuffers(1, &_transform._objectBuffer);
// glDeleteBuffers(1, &_transform._objectBuffer);
glDeleteBuffers(1, &_transform._cameraBuffer); glDeleteBuffers(1, &_transform._cameraBuffer);
glDeleteBuffers(1, &_transform._drawCallInfoBuffer); glDeleteBuffers(1, &_transform._drawCallInfoBuffer);
#ifndef GPU_SSBO_DRAW_CALL_INFO #ifndef GPU_SSBO_DRAW_CALL_INFO
@ -163,10 +160,7 @@ void GLBackend::TransformStageState::transfer(const Batch& batch) const {
memcpy(bufferData.data(), batch._objects.data(), byteSize); memcpy(bufferData.data(), batch._objects.data(), byteSize);
#ifdef GPU_SSBO_DRAW_CALL_INFO #ifdef GPU_SSBO_DRAW_CALL_INFO
batchNum++; glBindBuffer(GL_SHADER_STORAGE_BUFFER, _objectBuffer);
// glBindBuffer(GL_SHADER_STORAGE_BUFFER, _objectBuffer);
glBindBuffer(GL_SHADER_STORAGE_BUFFER, _objectBuffer[batchNum % 2]);
//glBindBuffer(GL_SHADER_STORAGE_BUFFER, _objectBuffer);
glBufferData(GL_SHADER_STORAGE_BUFFER, bufferData.size(), bufferData.data(), GL_DYNAMIC_DRAW); glBufferData(GL_SHADER_STORAGE_BUFFER, bufferData.size(), bufferData.data(), GL_DYNAMIC_DRAW);
glBindBuffer(GL_SHADER_STORAGE_BUFFER, 0); glBindBuffer(GL_SHADER_STORAGE_BUFFER, 0);
#else #else
@ -192,8 +186,7 @@ void GLBackend::TransformStageState::transfer(const Batch& batch) const {
} }
#ifdef GPU_SSBO_DRAW_CALL_INFO #ifdef GPU_SSBO_DRAW_CALL_INFO
glBindBufferBase(GL_SHADER_STORAGE_BUFFER, TRANSFORM_OBJECT_SLOT, _objectBuffer[batchNum % 2]); glBindBufferBase(GL_SHADER_STORAGE_BUFFER, TRANSFORM_OBJECT_SLOT, _objectBuffer);
// glBindBufferBase(GL_SHADER_STORAGE_BUFFER, TRANSFORM_OBJECT_SLOT, _objectBuffer);
#else #else
glActiveTexture(GL_TEXTURE0 + TRANSFORM_OBJECT_SLOT); glActiveTexture(GL_TEXTURE0 + TRANSFORM_OBJECT_SLOT);
glBindTexture(GL_TEXTURE_BUFFER, _objectBufferTexture); glBindTexture(GL_TEXTURE_BUFFER, _objectBufferTexture);

View file

@ -83,7 +83,7 @@ struct TransformObject {
layout(location=15) in ivec2 _drawCallInfo; layout(location=15) in ivec2 _drawCallInfo;
<!<@if FALSE @>!> <@if FALSE @>
// Disable SSBOs for now // Disable SSBOs for now
layout(std140) buffer transformObjectBuffer { layout(std140) buffer transformObjectBuffer {
TransformObject _object[]; TransformObject _object[];
@ -91,7 +91,7 @@ layout(std140) buffer transformObjectBuffer {
TransformObject getTransformObject() { TransformObject getTransformObject() {
return _object[_drawCallInfo.x]; return _object[_drawCallInfo.x];
} }
<!<@else@> <@else@>
uniform samplerBuffer transformObjectBuffer; uniform samplerBuffer transformObjectBuffer;
TransformObject getTransformObject() { TransformObject getTransformObject() {
@ -109,7 +109,7 @@ TransformObject getTransformObject() {
return object; return object;
} }
<@endif@>!> <@endif@>
<@endfunc@> <@endfunc@>