summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Lemire <paul.lemire@kdab.com>2019-07-23 14:01:18 +0200
committerPaul Lemire <paul.lemire@kdab.com>2019-08-07 11:37:00 +0200
commitfcf6017b82868c044c8d06ca8092ab8acfe56070 (patch)
tree7469191f46a56144c19a429debd46523fc9363c6
parent853d2edf9158b4237a963f04cc7f4b58e0315f4b (diff)
GLTexture: glTexParam is not supported on multisampled textures
So try to avoid performing these calls on such texture Change-Id: I051fd6a0150d07656687a1f84756d8a3d506ec24 Reviewed-by: Mike Krus <mike.krus@kdab.com>
-rw-r--r--src/render/renderers/opengl/textures/gltexture.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/render/renderers/opengl/textures/gltexture.cpp b/src/render/renderers/opengl/textures/gltexture.cpp
index ce212de03..27b94882a 100644
--- a/src/render/renderers/opengl/textures/gltexture.cpp
+++ b/src/render/renderers/opengl/textures/gltexture.cpp
@@ -495,6 +495,13 @@ void GLTexture::uploadGLTextureData()
void GLTexture::updateGLTextureParameters()
{
+ const bool isMultisampledTexture = (m_actualTarget == QAbstractTexture::Target2DMultisample ||
+ m_actualTarget == QAbstractTexture::Target2DMultisampleArray);
+ // Multisampled textures can only be accessed by texelFetch in shaders
+ // and don't support wrap modes and mig/mag filtes
+ if (isMultisampledTexture)
+ return;
+
m_gl->setWrapMode(QOpenGLTexture::DirectionS, static_cast<QOpenGLTexture::WrapMode>(m_parameters.wrapModeX));
if (m_actualTarget != QAbstractTexture::Target1D &&
m_actualTarget != QAbstractTexture::Target1DArray &&