diff options
author | Jim Albamont <jim.albamont@kdab.com> | 2020-12-10 22:13:20 -0800 |
---|---|---|
committer | Paul Lemire <paul.lemire@kdab.com> | 2020-12-11 06:53:54 +0000 |
commit | e09188f773ab287dd8c4569a1996d89113bfd5d7 (patch) | |
tree | 3711bd75aabf2f063520190dba0e59b0b5614afe /src/plugins/renderers/opengl | |
parent | 612c7b5030e25e5750d5c02937d7e3211da0ef12 (diff) | |
download | qt3d-e09188f773ab287dd8c4569a1996d89113bfd5d7.tar.gz |
Add missing sampler types and sizes to gl4 helpers
In particular the CubeMapArray and CubeMapArrayShadow
were missing from the call to get uniform size causing
a crash when these sampler types were used.
While fixing this, I double-checked the samplers types in
uniformByteSize
uniformTypeFromGLType
buildUniformBuffer
and made sure they were consistent
Change-Id: Ief91952fd7727945ba1c4156fe053587a4060684
Pick-to: 5.15 6.0
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src/plugins/renderers/opengl')
-rw-r--r-- | src/plugins/renderers/opengl/graphicshelpers/graphicshelpergl4.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/plugins/renderers/opengl/graphicshelpers/graphicshelpergl4.cpp b/src/plugins/renderers/opengl/graphicshelpers/graphicshelpergl4.cpp index cfefa9917..94510ff41 100644 --- a/src/plugins/renderers/opengl/graphicshelpers/graphicshelpergl4.cpp +++ b/src/plugins/renderers/opengl/graphicshelpers/graphicshelpergl4.cpp @@ -633,6 +633,7 @@ UniformType GraphicsHelperGL4::uniformTypeFromGLType(GLenum type) case GL_SAMPLER_1D: case GL_SAMPLER_1D_ARRAY: case GL_SAMPLER_1D_SHADOW: + case GL_SAMPLER_1D_ARRAY_SHADOW: case GL_SAMPLER_2D: case GL_SAMPLER_2D_RECT: case GL_SAMPLER_2D_SHADOW: @@ -651,6 +652,7 @@ UniformType GraphicsHelperGL4::uniformTypeFromGLType(GLenum type) case GL_INT_SAMPLER_2D: case GL_INT_SAMPLER_3D: case GL_INT_SAMPLER_BUFFER: + case GL_INT_SAMPLER_2D_RECT: case GL_INT_SAMPLER_CUBE: case GL_INT_SAMPLER_CUBE_MAP_ARRAY: case GL_INT_SAMPLER_1D_ARRAY: @@ -661,6 +663,7 @@ UniformType GraphicsHelperGL4::uniformTypeFromGLType(GLenum type) case GL_UNSIGNED_INT_SAMPLER_2D: case GL_UNSIGNED_INT_SAMPLER_3D: case GL_UNSIGNED_INT_SAMPLER_BUFFER: + case GL_UNSIGNED_INT_SAMPLER_2D_RECT: case GL_UNSIGNED_INT_SAMPLER_1D_ARRAY: case GL_UNSIGNED_INT_SAMPLER_2D_ARRAY: case GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE: @@ -1077,17 +1080,21 @@ void GraphicsHelperGL4::buildUniformBuffer(const QVariant &v, const ShaderUnifor case GL_INT_SAMPLER_2D: case GL_INT_SAMPLER_3D: case GL_INT_SAMPLER_CUBE: + case GL_INT_SAMPLER_CUBE_MAP_ARRAY: case GL_INT_SAMPLER_BUFFER: case GL_INT_SAMPLER_2D_RECT: case GL_UNSIGNED_INT_SAMPLER_1D: case GL_UNSIGNED_INT_SAMPLER_2D: case GL_UNSIGNED_INT_SAMPLER_3D: case GL_UNSIGNED_INT_SAMPLER_CUBE: + case GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY: case GL_UNSIGNED_INT_SAMPLER_BUFFER: case GL_UNSIGNED_INT_SAMPLER_2D_RECT: case GL_SAMPLER_1D_SHADOW: case GL_SAMPLER_2D_SHADOW: case GL_SAMPLER_CUBE_SHADOW: + case GL_SAMPLER_CUBE_MAP_ARRAY: + case GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW: case GL_SAMPLER_1D_ARRAY: case GL_SAMPLER_2D_ARRAY: case GL_INT_SAMPLER_1D_ARRAY: @@ -1250,6 +1257,10 @@ uint GraphicsHelperGL4::uniformByteSize(const ShaderUniform &description) case GL_SAMPLER_1D_SHADOW: case GL_SAMPLER_2D_SHADOW: case GL_SAMPLER_CUBE_SHADOW: + case GL_SAMPLER_CUBE_MAP_ARRAY: + case GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW: + case GL_INT_SAMPLER_CUBE_MAP_ARRAY: + case GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY: case GL_SAMPLER_1D_ARRAY: case GL_SAMPLER_2D_ARRAY: case GL_INT_SAMPLER_1D_ARRAY: |