From 1a154bb3bea72def71e2b00ecfb6533d30f5d1a8 Mon Sep 17 00:00:00 2001 From: samcake Date: Tue, 19 Apr 2016 10:47:54 -0700 Subject: [PATCH] Revert the changes to use SSAO AND 2 buffers --- libraries/gl/src/gl/Config.h | 2 +- libraries/gpu/src/gpu/GLBackend.h | 3 +-- libraries/gpu/src/gpu/GLBackendTransform.cpp | 15 ++++----------- libraries/gpu/src/gpu/Transform.slh | 6 +++--- 4 files changed, 9 insertions(+), 17 deletions(-) diff --git a/libraries/gl/src/gl/Config.h b/libraries/gl/src/gl/Config.h index a7d2c27db2..8f7582c271 100644 --- a/libraries/gl/src/gl/Config.h +++ b/libraries/gl/src/gl/Config.h @@ -51,7 +51,7 @@ #if (GPU_INPUT_PROFILE == GPU_CORE_43) // Deactivate SSBO for now, we've run into some issues // on GL 4.3 capable GPUs not behaving as expected -#define GPU_SSBO_DRAW_CALL_INFO +//#define GPU_SSBO_DRAW_CALL_INFO #endif diff --git a/libraries/gpu/src/gpu/GLBackend.h b/libraries/gpu/src/gpu/GLBackend.h index 2175322302..b25ec42fc9 100644 --- a/libraries/gpu/src/gpu/GLBackend.h +++ b/libraries/gpu/src/gpu/GLBackend.h @@ -461,8 +461,7 @@ protected: mutable std::map _drawCallInfoOffsets; - mutable int batchNum{ 0 }; - GLuint _objectBuffer[2]; + GLuint _objectBuffer { 0 }; GLuint _cameraBuffer { 0 }; GLuint _drawCallInfoBuffer { 0 }; GLuint _objectBufferTexture { 0 }; diff --git a/libraries/gpu/src/gpu/GLBackendTransform.cpp b/libraries/gpu/src/gpu/GLBackendTransform.cpp index 788e14ab1f..a1958d9d71 100755 --- a/libraries/gpu/src/gpu/GLBackendTransform.cpp +++ b/libraries/gpu/src/gpu/GLBackendTransform.cpp @@ -67,9 +67,7 @@ void GLBackend::do_setDepthRangeTransform(Batch& batch, size_t paramOffset) { } void GLBackend::initTransform() { - - glGenBuffers(2, _transform._objectBuffer); -// glGenBuffers(1, &_transform._objectBuffer); + glGenBuffers(1, &_transform._objectBuffer); glGenBuffers(1, &_transform._cameraBuffer); glGenBuffers(1, &_transform._drawCallInfoBuffer); #ifndef GPU_SSBO_DRAW_CALL_INFO @@ -82,8 +80,7 @@ void GLBackend::initTransform() { } void GLBackend::killTransform() { - glDeleteBuffers(2, _transform._objectBuffer); - // glDeleteBuffers(1, &_transform._objectBuffer); + glDeleteBuffers(1, &_transform._objectBuffer); glDeleteBuffers(1, &_transform._cameraBuffer); glDeleteBuffers(1, &_transform._drawCallInfoBuffer); #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); #ifdef GPU_SSBO_DRAW_CALL_INFO - batchNum++; - // glBindBuffer(GL_SHADER_STORAGE_BUFFER, _objectBuffer); - glBindBuffer(GL_SHADER_STORAGE_BUFFER, _objectBuffer[batchNum % 2]); - //glBindBuffer(GL_SHADER_STORAGE_BUFFER, _objectBuffer); + glBindBuffer(GL_SHADER_STORAGE_BUFFER, _objectBuffer); glBufferData(GL_SHADER_STORAGE_BUFFER, bufferData.size(), bufferData.data(), GL_DYNAMIC_DRAW); glBindBuffer(GL_SHADER_STORAGE_BUFFER, 0); #else @@ -192,8 +186,7 @@ void GLBackend::TransformStageState::transfer(const Batch& batch) const { } #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 glActiveTexture(GL_TEXTURE0 + TRANSFORM_OBJECT_SLOT); glBindTexture(GL_TEXTURE_BUFFER, _objectBufferTexture); diff --git a/libraries/gpu/src/gpu/Transform.slh b/libraries/gpu/src/gpu/Transform.slh index b7e3b0f6d3..ba006d5c73 100644 --- a/libraries/gpu/src/gpu/Transform.slh +++ b/libraries/gpu/src/gpu/Transform.slh @@ -83,7 +83,7 @@ struct TransformObject { layout(location=15) in ivec2 _drawCallInfo; -!> +<@if FALSE @> // Disable SSBOs for now layout(std140) buffer transformObjectBuffer { TransformObject _object[]; @@ -91,7 +91,7 @@ layout(std140) buffer transformObjectBuffer { TransformObject getTransformObject() { return _object[_drawCallInfo.x]; } - +<@else@> uniform samplerBuffer transformObjectBuffer; TransformObject getTransformObject() { @@ -109,7 +109,7 @@ TransformObject getTransformObject() { return object; } -<@endif@>!> +<@endif@> <@endfunc@>