Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-110039

Assert triggered when antialiasing is enabled with Quick3D in Qt 5.15

    XMLWordPrintable

Details

    • Windows
    • ff3d6efeb (tqtc/lts-5.15)

    Description

      The value it is trying to convert is GL_SAMPLER_2D_MULTISAMPLE in fromShaderGLToPropertyDataTypes, but that is not handled.

      Can be reproduced with Qt Quick 3D Antialias example on AMD GPUs. On Nvidia HW it does not seem to be using GL_SAMPLER_2D_MULTISAMPLE there.

      000000b0`8b4fc010 00007ffc`110e776f     Qt5Cored!qt_message_fatal(QtMsgType __formal = QtFatalMsg (0n3), class QMessageLogContext * context = 0x000000b0`8b4fc318, class QString * message = 0x000000b0`8b4fc2b0)+0xcd [C:\Users\qt\work\qt\qtbase\src\corelib\global\qlogging.cpp @ 1885]
      000000b0`8b4fc280 00007ffc`110d8d28     Qt5Cored!QMessageLogger::fatal(char * msg = 0x00007ffc`11804f38 "ASSERT: "%s" in file %s, line %d")+0x8f [C:\Users\qt\work\qt\qtbase\src\corelib\global\qlogging.cpp @ 894]
      000000b0`8b4fc2e0 00007ffc`1a0f0bc1     Qt5Cored!qt_assert(char * assertion = 0x00007ffc`1a173a28 "false", char * file = 0x00007ffc`1a174200 "C:\Users\qt\work\qt\qtquick3d\include\QtQuick3DRender\5.15.12\QtQuick3DRender\private\../../../../../src/render/backends/gl/qssgopenglutil_p.h", int line = 0n1799)+0x58 [C:\Users\qt\work\qt\qtbase\src\corelib\global\qglobal.cpp @ 3377]
      000000b0`8b4fc350 00007ffc`1a103a5a     Qt5Quick3DRenderd!GLConversion::fromShaderGLToPropertyDataTypes(unsigned int value = 0x9108)+0x1d1 [C:\Users\qt\work\qt\qtquick3d\src\render\backends\gl\qssgopenglutil_p.h @ 1800]
      000000b0`8b4fc390 00007ffc`1a124f6c     Qt5Quick3DRenderd!QSSGRenderBackendGLBase::getConstantInfoByID(struct _QSSGRenderBackendShaderProgramObject * po = 0x00000264`119686b0, unsigned int id = 0x12b, unsigned int bufSize = 0x200, int * numElem = 0x000000b0`8b4fc46c, QSSGRenderShaderDataType * type = 0x000000b0`8b4fc454, int * binding = 0x000000b0`8b4fc474, char * nameBuf = 0x000000b0`8b4fc610 "advancedBlendInfoAmdInternal_samplerMsaa")+0xca [C:\Users\qt\work\qt\qtquick3d\src\render\backends\gl\qssgrenderbackendglbase.cpp @ 1866]
      000000b0`8b4fc410 00007ffc`1a125952     Qt5Quick3DRenderd!QSSGRenderShaderProgram::getShaderParameters(void)+0x13c [C:\Users\qt\work\qt\qtquick3d\src\render\qssgrendershaderprogram.cpp @ 650]
      000000b0`8b4fc830 00007ffc`1a12750e     Qt5Quick3DRenderd!QSSGRenderShaderProgram::link(void)+0x72 [C:\Users\qt\work\qt\qtquick3d\src\render\qssgrendershaderprogram.cpp @ 701]
      000000b0`8b4fc880 00007ffc`1a1134d3     Qt5Quick3DRenderd!QSSGRenderShaderProgram::create(class QSSGRef<QSSGRenderContext> * context = 0x000000b0`8b4fce00, char * programName = 0x00000264`119c1388 "mesh subset pipeline-- ;hasLighting=true;lightCount=1;specularModel=Default;;diffuseMap={;;;;;};diffuseMap_swizzle={;;;;};emissiveMap={;;;;;};emissiveMap_swizzle={;;;;};specularMap={;;;;;};specularMap_swizzle={;;;;};baseColorMap={;;;;;};baseColorMap_swizzle={;;;;};bumpMap={;;;;;};bumpMap_swizzle={;;;;};specularAmountMap={;;;;;};specularAmountMap_swizzle={;;;;};normalMap={;;;;;};normalMap_swizzle={;;;;};displacementMap={;;;;;};displacementMap_swizzle={;;;;};lightmapIndirect={;;;;;};lightmapIndirect_swizzle={;;;;};lightmapRadiosity={;;;;;};lightmapRadiosity_swizzle={;;;;};lightmapShadow={;;;;;};lightmapShadow_swizzle={;;;;};opacityMap={;;;;;};opacityMap_swizzle={;;;;};roughnessMap={;;;;;};roughnessMap_swizzle={;;;;};metalnessMap={;;;;;};metalnessMap_swizzle={;;;;};occlusionMap={;;;;;};occlusionMap_swizzle={;;;;};translucencyMap={;;;;;};translucencyMap_swizzle={;;;;};opacityMap_channel=R;roughnessMap_channel=R;metalnessMap_channel=R;occlusionMap_channel=R;translucencyMap_channel=R;tessellationMode={noTessellation=true;;;};alphaMode=Default;;vertexAttributes={position=true;normal=true;texcoord0=true;;tangent=true;binormal=true;}", struct QSSGDataView<unsigned char> * vertShaderSource = 0x000000b0`8b4fcfe0, struct QSSGDataView<unsigned char> * fragShaderSource = 0x000000b0`8b4fcfd0, struct QSSGDataView<unsigned char> * tessControlShaderSource = 0x000000b0`8b4fcfc0, struct QSSGDataView<unsigned char> * tessEvaluationShaderSource = 0x000000b0`8b4fcfb0, struct QSSGDataView<unsigned char> * geometryShaderSource = 0x000000b0`8b4fcfa0, bool separateProgram = false, QSSGRenderShaderProgramBinaryType type = Unknown (0n0), bool binaryProgram = false)+0x108e [C:\Users\qt\work\qt\qtquick3d\src\render\qssgrendershaderprogram.cpp @ 1089]
      000000b0`8b4fcda0 00007ffc`10cdc2e1     Qt5Quick3DRenderd!QSSGRenderContext::compileSource(char * shaderName = 0x00000264`119c1388 "mesh subset pipeline-- ;hasLighting=true;lightCount=1;specularModel=Default;;diffuseMap={;;;;;};diffuseMap_swizzle={;;;;};emissiveMap={;;;;;};emissiveMap_swizzle={;;;;};specularMap={;;;;;};specularMap_swizzle={;;;;};baseColorMap={;;;;;};baseColorMap_swizzle={;;;;};bumpMap={;;;;;};bumpMap_swizzle={;;;;};specularAmountMap={;;;;;};specularAmountMap_swizzle={;;;;};normalMap={;;;;;};normalMap_swizzle={;;;;};displacementMap={;;;;;};displacementMap_swizzle={;;;;};lightmapIndirect={;;;;;};lightmapIndirect_swizzle={;;;;};lightmapRadiosity={;;;;;};lightmapRadiosity_swizzle={;;;;};lightmapShadow={;;;;;};lightmapShadow_swizzle={;;;;};opacityMap={;;;;;};opacityMap_swizzle={;;;;};roughnessMap={;;;;;};roughnessMap_swizzle={;;;;};metalnessMap={;;;;;};metalnessMap_swizzle={;;;;};occlusionMap={;;;;;};occlusionMap_swizzle={;;;;};translucencyMap={;;;;;};translucencyMap_swizzle={;;;;};opacityMap_channel=R;roughnessMap_channel=R;metalnessMap_channel=R;occlusionMap_channel=R;translucencyMap_channel=R;tessellationMode={noTessellation=true;;;};alphaMode=Default;;vertexAttributes={position=true;normal=true;texcoord0=true;;tangent=true;binormal=true;}", struct QSSGDataView<unsigned char> * vertShader = 0x000000b0`8b4fd360, struct QSSGDataView<unsigned char> * fragShader = 0x000000b0`8b4fd350, struct QSSGDataView<unsigned char> * tessControlShaderSource = 0x000000b0`8b4fd340, struct QSSGDataView<unsigned char> * tessEvaluationShaderSource = 0x000000b0`8b4fd330, struct QSSGDataView<unsigned char> * geometryShaderSource = 0x000000b0`8b4fd320, bool separateProgram = false, QSSGRenderShaderProgramBinaryType type = Unknown (0n0), bool binaryProgram = false)+0x3f3 [C:\Users\qt\work\qt\qtquick3d\src\render\qssgrendercontext.cpp @ 217]
      000000b0`8b4fd030 00007ffc`10cdc622     Qt5Quick3DRuntimeRenderd!QSSGShaderCache::forceCompileProgram(class QByteArray * inKey = 0x000000b0`8b4fd738, class QByteArray * inVert = 0x00000264`118cdb68, class QByteArray * inFrag = 0x00000264`118cdcc8, class QByteArray * inTessCtrl = 0x00000264`118cdbc0, class QByteArray * inTessEval = 0x00000264`118cdc18, class QByteArray * inGeom = 0x00000264`118cdc70, class QFlags<enum ShaderCacheProgramFlagValues> * inFlags = 0x000000b0`8b4fd688, class QVarLengthArray<QSSGShaderPreprocessorFeature,7> * inFeatures = 0x00000264`118cdd80, bool separableProgram = false, bool fromDisk = false)+0x9f1 [C:\Users\qt\work\qt\qtquick3d\src\runtimerender\qssgrendershadercache.cpp @ 440]
      000000b0`8b4fd590 00007ffc`10ceb768     Qt5Quick3DRuntimeRenderd!QSSGShaderCache::compileProgram(class QByteArray * inKey = 0x000000b0`8b4fd738, class QByteArray * inVert = 0x00000264`118cdb68, class QByteArray * inFrag = 0x00000264`118cdcc8, class QByteArray * inTessCtrl = 0x00000264`118cdbc0, class QByteArray * inTessEval = 0x00000264`118cdc18, class QByteArray * inGeom = 0x00000264`118cdc70, class QFlags<enum ShaderCacheProgramFlagValues> * inFlags = 0x000000b0`8b4fd688, class QVarLengthArray<QSSGShaderPreprocessorFeature,7> * inFeatures = 0x00000264`118cdd80, bool separableProgram = false)+0x102 [C:\Users\qt\work\qt\qtquick3d\src\runtimerender\qssgrendershadercache.cpp @ 518]
      000000b0`8b4fd620 00007ffc`10ca832a     Qt5Quick3DRuntimeRenderd!`anonymous namespace'::QSSGProgramGenerator::compileGeneratedShader(class QByteArray * inShaderName = 0x000000b0`8b4fd738, class QFlags<enum ShaderCacheProgramFlagValues> * inFlags = 0x000000b0`8b4fd758, class QVarLengthArray<QSSGShaderPreprocessorFeature,7> * inFeatureSet = 0x00000264`118cdd80, bool separableProgram = false)+0x298 [C:\Users\qt\work\qt\qtquick3d\src\runtimerender\qssgrendershadercodegeneratorv2.cpp @ 379]
      000000b0`8b4fd700 00007ffc`10ca8445     Qt5Quick3DRuntimeRenderd!`anonymous namespace'::QSSGShaderGenerator::generateMaterialShader(class QByteArray * inShaderPrefix = 0x000000b0`8b4fd8e0)+0x1da [C:\Users\qt\work\qt\qtquick3d\src\runtimerender\qssgrenderdefaultmaterialshadergenerator.cpp @ 1477]
      000000b0`8b4fd7e0 00007ffc`10c1600d     Qt5Quick3DRuntimeRenderd!`anonymous namespace'::QSSGShaderGenerator::generateShader(struct QSSGRenderGraphObject * inMaterial = 0x00000264`118d33c0, struct QSSGShaderDefaultMaterialKey * inShaderDescription = 0x000000b0`8b4fd9d0, class QSSGShaderStageGeneratorInterface * inVertexPipeline = 0x000000b0`8b4fda00, class QVarLengthArray<QSSGShaderPreprocessorFeature,7> * inFeatureSet = 0x000000b0`8b4fe180, class QVector<QSSGRenderLight *> * inLights = 0x00000264`119919c0, struct QSSGRenderableImage * inFirstImage = 0x00000000`00000000, bool inHasTransparency = false, class QByteArray * inVertexPipelineName = 0x000000b0`8b4fd8e0, class QByteArray * __formal = 0x000000b0`8b4fd8e8)+0xd5 [C:\Users\qt\work\qt\qtquick3d\src\runtimerender\qssgrenderdefaultmaterialshadergenerator.cpp @ 1499]
      000000b0`8b4fd810 00007ffc`10bcb9ad     Qt5Quick3DRuntimeRenderd!QSSGRendererImpl::generateShader(struct QSSGSubsetRenderable * inRenderable = 0x00000264`118ceeb8, class QVarLengthArray<QSSGShaderPreprocessorFeature,7> * inFeatureSet = 0x000000b0`8b4fe180)+0x39d [C:\Users\qt\work\qt\qtquick3d\src\runtimerender\rendererimpl\qssgrendererimplshaders.cpp @ 455]
      000000b0`8b4fdac0 00007ffc`10bba0b4     Qt5Quick3DRuntimeRenderd!QSSGRendererImpl::getShader(struct QSSGSubsetRenderable * inRenderable = 0x00000264`118ceeb8, class QVarLengthArray<QSSGShaderPreprocessorFeature,7> * inFeatureSet = 0x000000b0`8b4fe180)+0x10d [C:\Users\qt\work\qt\qtquick3d\src\runtimerender\rendererimpl\qssgrendererimpl.cpp @ 999]
      000000b0`8b4fdba0 00007ffc`10bf8c13     Qt5Quick3DRuntimeRenderd!QSSGSubsetRenderable::render(class QVector2D * inCameraVec = 0x000000b0`8b4fe300, class QVarLengthArray<QSSGShaderPreprocessorFeature,7> * inFeatureSet = 0x000000b0`8b4fe180)+0x84 [C:\Users\qt\work\qt\qtquick3d\src\runtimerender\rendererimpl\qssgrenderableobjects.cpp @ 214]
      000000b0`8b4fde50 00007ffc`10bef65e     Qt5Quick3DRuntimeRenderd!renderRenderable(struct QSSGLayerRenderData * inData = 0x00000264`11991970, struct QSSGRenderableObject * inObject = 0x00000264`118ceeb8, class QVector2D * inCameraProps = 0x000000b0`8b4fe300, class QVarLengthArray<QSSGShaderPreprocessorFeature,7> * inFeatureSet = 0x000000b0`8b4fe180, unsigned int __formal = 0, struct QSSGRenderCamera * inCamera = 0x00000264`118d35e0)+0x53 [C:\Users\qt\work\qt\qtquick3d\src\runtimerender\rendererimpl\qssgrendererimpllayerrenderdata.cpp @ 871]
      000000b0`8b4fdef0 00007ffc`10bec3c0     Qt5Quick3DRuntimeRenderd!QSSGLayerRenderData::runRenderPass(<function> * inRenderFn = 0x00007ffc`10b95ec0, bool inEnableBlending = true, bool inEnableDepthWrite = true, bool inEnableTransparentDepthWrite = false, bool inSortOpaqueRenderables = true, unsigned int indexLight = 0, struct QSSGRenderCamera * inCamera = 0x00000264`118d35e0, class QSSGResourceFrameBuffer * theFB = 0x00000000`00000000)+0x36e [C:\Users\qt\work\qt\qtquick3d\src\runtimerender\rendererimpl\qssgrendererimpllayerrenderdata.cpp @ 922]
      000000b0`8b4fe330 00007ffc`10bee7d5     Qt5Quick3DRuntimeRenderd!QSSGLayerRenderData::render(class QSSGResourceFrameBuffer * theFB = 0x00000000`00000000)+0x120 [C:\Users\qt\work\qt\qtquick3d\src\runtimerender\rendererimpl\qssgrendererimpllayerrenderdata.cpp @ 982]
      000000b0`8b4fe3d0 00007ffc`10bc8e07     Qt5Quick3DRuntimeRenderd!QSSGLayerRenderData::runnableRenderToViewport(class QSSGRef<QSSGRenderFrameBuffer> * theFB = 0x000000b0`8b4fec00)+0x1805 [C:\Users\qt\work\qt\qtquick3d\src\runtimerender\rendererimpl\qssgrendererimpllayerrenderdata.cpp @ 1362]
      000000b0`8b4febc0 00007ffc`10c6f1ce     Qt5Quick3DRuntimeRenderd!QSSGRendererImpl::renderLayer(struct QSSGRenderLayer * inLayer = 0x00000264`118d4e30, class QSize * surfaceSize = 0x00000264`118c8a54, bool clear = true, class QColor * clearColor = 0x00000264`118c8a60)+0x197 [C:\Users\qt\work\qt\qtquick3d\src\runtimerender\rendererimpl\qssgrendererimpl.cpp @ 189]
      000000b0`8b4fec80 00007ffc`14fad390     Qt5Quick3DRuntimeRenderd!QSSGRenderContextInterface::renderLayer(struct QSSGRenderLayer * inLayer = 0x00000264`118d4e30, bool needsClear = true)+0x6e [C:\Users\qt\work\qt\qtquick3d\src\runtimerender\qssgrendercontextcore.cpp @ 258]
      000000b0`8b4fecd0 00007ffc`14faf04b     Qt5Quick3Dd!QQuick3DSceneRenderer::render(void)+0x440 [C:\Users\qt\work\qt\qtquick3d\src\quick3d\qquick3dscenerenderer.cpp @ 233]
      000000b0`8b4feec0 00007ffc`14faefba     Qt5Quick3Dd!SGFramebufferObjectNode::render(void)+0x7b [C:\Users\qt\work\qt\qtquick3d\src\quick3d\qquick3dscenerenderer.cpp @ 119]
      000000b0`8b4ff010 00007ffc`101b7f89     Qt5Quick3Dd!SGFramebufferObjectNode::preprocess(void)+0x1a [C:\Users\qt\work\qt\qtquick3d\src\quick3d\qquick3dscenerenderer.cpp @ 110]
      000000b0`8b4ff040 00007ffc`101b77f6     Qt5Quickd!QSGRenderer::preprocess(void)+0x179 [C:\Users\qt\work\qt\qtdeclarative\src\quick\scenegraph\coreapi\qsgrenderer.cpp @ 339]
      000000b0`8b4ff0d0 00007ffc`101b7b8a     Qt5Quickd!QSGRenderer::renderScene(class QSGBindable * bindable = 0x000000b0`8b4ff1e8)+0xc6 [C:\Users\qt\work\qt\qtdeclarative\src\quick\scenegraph\coreapi\qsgrenderer.cpp @ 241]
      000000b0`8b4ff1c0 00007ffc`1028c5de     Qt5Quickd!QSGRenderer::renderScene(unsigned int fboId = 0)+0x8a [C:\Users\qt\work\qt\qtdeclarative\src\quick\scenegraph\coreapi\qsgrenderer.cpp @ 213]
      000000b0`8b4ff210 00007ffc`1036d32f     Qt5Quickd!QSGDefaultRenderContext::renderNextFrame(class QSGRenderer * renderer = 0x00000264`11884610, unsigned int fboId = 0)+0x4e [C:\Users\qt\work\qt\qtdeclarative\src\quick\scenegraph\qsgdefaultrendercontext.cpp @ 230]
      000000b0`8b4ff250 00007ffc`102aca32     Qt5Quickd!QQuickWindowPrivate::renderSceneGraph(class QSize * size = 0x00000264`10224e90, class QSize * surfaceSize = 0x000000b0`8b4ff768)+0x80f [C:\Users\qt\work\qt\qtdeclarative\src\quick\items\qquickwindow.cpp @ 619]
      000000b0`8b4ff520 00007ffc`102ab924     Qt5Quickd!QSGRenderThread::syncAndRender(class QImage * grabImage = 0x00000000`00000000)+0xe62 [C:\Users\qt\work\qt\qtdeclarative\src\quick\scenegraph\qsgthreadedrenderloop.cpp @ 838]
      000000b0`8b4ff960 00007ffc`110fbfe2     Qt5Quickd!QSGRenderThread::run(void)+0x414 [C:\Users\qt\work\qt\qtdeclarative\src\quick\scenegraph\qsgthreadedrenderloop.cpp @ 1046]
      000000b0`8b4ffb10 00007ffc`5ef17614     Qt5Cored!QThreadPrivate::start(void * arg = 0x00000264`10224e10)+0x1d2 [C:\Users\qt\work\qt\qtbase\src\corelib\thread\qthread_win.cpp @ 406]
      000000b0`8b4ffba0 00007ffc`60c026a1     KERNEL32!BaseThreadInitThunk+0x14
      000000b0`8b4ffbd0 00000000`00000000     ntdll!RtlUserThreadStart+0x21
      

      Attachments

        For Gerrit Dashboard: QTBUG-110039
        # Subject Branch Project Status CR V

        Activity

          People

            inho Inho Lee
            poikelin Joni Poikelin
            Votes:
            1 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes