Details
-
Bug
-
Resolution: Fixed
-
P1: Critical
-
None
-
Qt 3D Studio 2.7
-
None
Description
Can be reproduced on Windows with manually reducing the glyph cache texture size to 256 and running the modified qmldatainput example that plays back song lyrics with Chinese characters for exhausting the cache.
diff --git a/src/runtimerender/Qt3DSDistanceFieldGlyphCache.cpp b/src/runtimerender/Qt3DSDistanceFieldGlyphCache.cpp index d19c9f6..a909fb4 100644 --- a/src/runtimerender/Qt3DSDistanceFieldGlyphCache.cpp +++ b/src/runtimerender/Qt3DSDistanceFieldGlyphCache.cpp @@ -47,7 +47,7 @@ QT_BEGIN_NAMESPACE // Should work on most hardware. Used as stop gap until Qt 3D provides a // way to retrieve the system value #ifndef Q3DSDISTANCEFIELDGLYPHCACHE_MAXIMUM_TEXURE_SIZE -# define Q3DSDISTANCEFIELDGLYPHCACHE_MAXIMUM_TEXURE_SIZE 2048 +# define Q3DSDISTANCEFIELDGLYPHCACHE_MAXIMUM_TEXURE_SIZE 256 #endif
Tried backporting changes* done to QtDeclarative for the glyph cache fixing similar issues but the issue still remains. it crashes in Windows in GPU libraries because (uninitialized) texture size being allocated is over the max texture size.
height 1414812758 int width 256 int
1 Q3DSDistanceFieldGlyphCache::resizeTexture Qt3DSDistanceFieldGlyphCache.cpp 113 0x7ffd32892f87 2 Q3DSDistanceFieldGlyphCache::storeGlyphs Qt3DSDistanceFieldGlyphCache.cpp 146 0x7ffd3289113d 3 QQuickItemPrivate::childContainerNode Qt5Quickd 0x7ffd38496359 4 Q3DSDistanceFieldGlyphCache::processPendingGlyphs Qt3DSDistanceFieldGlyphCache.cpp 255 0x7ffd32891504 5 qt3ds::render::Q3DSDistanceFieldRenderer::buildGlyphsPerTexture Qt3DSDistanceFieldRenderer.cpp 381 0x7ffd3251bc91 6 qt3ds::render::Q3DSDistanceFieldRenderer::renderText Qt3DSDistanceFieldRenderer.cpp 950 0x7ffd3251e8eb 7 qt3ds::render::SDistanceFieldRenderable::Render Qt3DSRenderableObjects.cpp 516 0x7ffd328d1fe3 8 qt3ds::render::RenderRenderable Qt3DSRendererImplLayerRenderData.cpp 914 0x7ffd325bfdbc 9 qt3ds::render::SLayerRenderData::renderTransparentObjectsPass Qt3DSRendererImplLayerRenderData.cpp 1066 0x7ffd328c6d8f 10 qt3ds::render::SLayerRenderData::RunRenderPass Qt3DSRendererImplLayerRenderData.cpp 1187 0x7ffd328c5ef1 11 qt3ds::render::SLayerRenderData::Render Qt3DSRendererImplLayerRenderData.cpp 1199 0x7ffd328bef23 12 qt3ds::render::SLayerRenderData::RenderToTexture Qt3DSRendererImplLayerRenderData.cpp 1786 0x7ffd328c1ea5 13 qt3ds::render::SLayerRenderToTextureRunnable::Run Qt3DSRendererImplLayerRenderData.cpp 2435 0x7ffd32357247 14 `anonymous namespace'::SRenderList::RunRenderTasks Qt3DSRenderRenderList.cpp 108 0x7ffd32856c85 15 QVector<float>::reallocData Qt3DSRenderContextCore.cpp 888 0x7ffd3250763a 16 `anonymous namespace'::Qt3DSRenderSceneManager::RenderPresentation Qt3DSRenderRuntimeBinding.cpp 1568 0x7ffd323dd592 17 SApp::Render Qt3DSApplication.cpp 1100 0x7ffd323a5d40 18 SApp::UpdateAndRender Qt3DSApplication.cpp 1193 0x7ffd323ac93e 19 Q3DStudio::CRuntimeView::Render Qt3DSRuntimeView.cpp 414 0x7ffd32362e8b 20 Q3DSViewer::Q3DSViewerApp::Render Qt3DSViewerApp.cpp 544 0x7ffd3234a936 ... <More>
*9a53834f1e7fce2fc3b1ecc2a311faedbc371d37 *46d72a117df642135718b38995346267312c4808