From bb15b8c701c3f69e0f159e60d13986f2d9c9df1a Mon Sep 17 00:00:00 2001 From: Sam Cake Date: Fri, 14 Apr 2017 00:46:41 -0700 Subject: [PATCH] ANd fixing the gl41 rendering --- .../gpu-gl/src/gpu/gl41/GL41BackendBuffer.cpp | 2 +- .../gpu-gl/src/gpu/gl41/GL41BackendShader.cpp | 5 +++-- libraries/render/src/render/drawItemBounds.slv | 16 ++++++++-------- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/libraries/gpu-gl/src/gpu/gl41/GL41BackendBuffer.cpp b/libraries/gpu-gl/src/gpu/gl41/GL41BackendBuffer.cpp index 8e2476e771..eb66cc4544 100644 --- a/libraries/gpu-gl/src/gpu/gl41/GL41BackendBuffer.cpp +++ b/libraries/gpu-gl/src/gpu/gl41/GL41BackendBuffer.cpp @@ -64,7 +64,7 @@ namespace gpu { glGenTextures(1, &_texBuffer); glActiveTexture(GL_TEXTURE0 + GL41Backend::RESOURCE_BUFFER_TEXBUF_TEX_UNIT); glBindTexture(GL_TEXTURE_BUFFER, _texBuffer); - glTexBuffer(GL_TEXTURE_BUFFER, GL_RGBA32F, _texBuffer); + glTexBuffer(GL_TEXTURE_BUFFER, GL_RGBA32F, _buffer); glBindTexture(GL_TEXTURE_BUFFER, 0); (void)CHECK_GL_ERROR(); } diff --git a/libraries/gpu-gl/src/gpu/gl41/GL41BackendShader.cpp b/libraries/gpu-gl/src/gpu/gl41/GL41BackendShader.cpp index 6b52b2db88..9e04fb0907 100644 --- a/libraries/gpu-gl/src/gpu/gl41/GL41BackendShader.cpp +++ b/libraries/gpu-gl/src/gpu/gl41/GL41BackendShader.cpp @@ -14,7 +14,7 @@ using namespace gpu::gl41; // GLSL version std::string GL41Backend::getBackendShaderHeader() const { - return std::string("#version 410 core"); + return std::string("#version 410 core\n#define GPU_GL410 1"); } int GL41Backend::makeResourceBufferSlots(GLuint glprogram, const Shader::BindingSet& slotBindings,Shader::SlotSet& resourceBuffers) { @@ -68,11 +68,12 @@ int GL41Backend::makeResourceBufferSlots(GLuint glprogram, const Shader::Binding GLint requestedLoc = (*requestedBinding)._location + GL41Backend::RESOURCE_BUFFER_SLOT0_TEX_UNIT; if (binding != requestedLoc) { binding = requestedLoc; - glProgramUniform1i(glprogram, location, binding); } } else { binding += GL41Backend::RESOURCE_BUFFER_SLOT0_TEX_UNIT; } + glProgramUniform1i(glprogram, location, binding); + ssboCount++; resourceBuffers.insert(Shader::Slot(name, binding, elementResource._element, elementResource._resource)); } diff --git a/libraries/render/src/render/drawItemBounds.slv b/libraries/render/src/render/drawItemBounds.slv index 7d438d5881..1392516376 100644 --- a/libraries/render/src/render/drawItemBounds.slv +++ b/libraries/render/src/render/drawItemBounds.slv @@ -28,14 +28,7 @@ struct ItemBound { vec4 boundDim_s; }; -#if __VERSION__ == 450 -layout(std140) buffer ssbo0Buffer { - ItemBound bounds[]; -}; -ItemBound getItemBound(int i) { - return bounds[i]; -} -#else +#if defined(GPU_GL410) uniform samplerBuffer ssbo0Buffer; ItemBound getItemBound(int i) { int offset = 2 * i; @@ -44,6 +37,13 @@ ItemBound getItemBound(int i) { bound.boundDim_s = texelFetch(ssbo0Buffer, offset + 1); return bound; } +#else +layout(std140) buffer ssbo0Buffer { + ItemBound bounds[]; +}; +ItemBound getItemBound(int i) { + return bounds[i]; +} #endif