overte icon indicating copy to clipboard operation
overte copied to clipboard

TextPayload FadeEffect crash in Qt6 branch

Open ksuprynowicz opened this issue 1 month ago • 3 comments

/usr/include/c++/15/bits/shared_ptr_base.h:1344: _Tp* std::__shared_ptr_deref(_Tp*) [with _Tp = render::ShapePipeline]: Assertion '__p != nullptr' failed.
__pthread_kill_implementation 0x00007fffafe9e95c
render::entities::TextPayload::render RenderableTextEntityItem.cpp:394
render::payloadRender<…> RenderableTextEntityItem.cpp:426
render::Payload::render Item.h:626
render::Item::render Item.h:522
renderShape DrawTask.cpp:60
render::renderShapes DrawTask.cpp:80
operator() RenderDeferredTask.cpp:519
gpu::doInBatch Context.cpp:367
RenderTransparentDeferred::run RenderDeferredTask.cpp:480
task::jobRun<…> Task.h:104
task::Job::Model::run Task.h:180
task::Job::run Task.h:218
task::Task::TaskModel::run Task.h:336
task::Job::run Task.h:218
task::Task::TaskModel::run Task.h:336
task::Job::run Task.h:218
task::Switch::SwitchModel::run Task.h:477
task::Job::run Task.h:218
task::Task::TaskModel::run Task.h:336
task::Job::run Task.h:218
task::Task::TaskModel::run Task.h:336
task::Job::run Task.h:218
task::Engine::run Task.h:525
task::Engine::run Task.h:519
GraphicsEngine::render_runRenderFrame GraphicsEngine.cpp:130
GraphicsEngine::render_performFrame GraphicsEngine.cpp:293
operator() GraphicsEngine.cpp:52
RenderEventHandler::render RenderEventHandler.cpp:43
RenderEventHandler::event RenderEventHandler.cpp:50
Application::notify Application_Events.cpp:64

ksuprynowicz avatar Oct 24 '25 16:10 ksuprynowicz

args->_shapePipeline shared pointer is empty

ksuprynowicz avatar Oct 24 '25 16:10 ksuprynowicz

@HifiExperiments What would be the best way to fix this issue or work around it?

ksuprynowicz avatar Oct 24 '25 16:10 ksuprynowicz

ah TextPayloads don’t have shapePipelines, they set their own pipelines here: https://github.com/overte-org/overte/blob/c4e686e2084509af3114736d2094ed1683fe3030/libraries/render-utils/src/text/Font.cpp#L636

I’m guessing this worked during my testing because it was picking up on the shapePipeline of the previously drawn object

I will take a look at a better way to do this, for now your temporary fix is good

HifiExperiments avatar Oct 24 '25 22:10 HifiExperiments