mirror of
https://github.com/overte-org/overte.git
synced 2025-07-23 17:44:13 +02:00
Revert the changes to use SSAO AND 2 buffers
This commit is contained in:
parent
265f6f1275
commit
1a154bb3be
4 changed files with 9 additions and 17 deletions
|
@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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 };
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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@>
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue