View Issue Details

IDProjectCategoryView StatusLast Update
0003272NoesisGUIC++ SDKpublic2024-08-07 15:06
ReporterJanNohavica Assigned Tojsantos  
PrioritynormalSeveritycrash 
Status resolvedResolutionfixed 
Product Version3.1 
Summary0003272: Complex SVG crashes render
Description

With big enough SVG and high resolution Noesis asserts and crashes in

VGLContext::RequestDynamicGeometry
NS_ASSERT(numIndices * sizeof(uint16_t) <= DYNAMIC_IB_SIZE);

We suspect that there are too many vertices created in

mContext->CacheStrokePath or mContext->CacheFillPath

We haven’t bumped DYNAMIC_IB_SIZE from the default 128K,
but it might not be enough seeing the commented out parts like this (PathTessellator::ProcessPath)
#if 0
// If the number of indices is big we need to split the draws in several batches
// Right now, this process is not compatible with PPAA generation
if (cached->indices.Size() * sizeof(uint16_t) > DYNAMIC_IB_SIZE)
{
Split(cached);
}
#endif

Steps To Reproduce

Put really complex SVG in Path and try to render in high resolution.

Attached Files
crash.png (13,024 bytes)   
crash.png (13,024 bytes)   
PlatformAny

Activities

jsantos

jsantos

2024-04-24 11:42

manager   ~0009411

Last edited: 2024-04-24 11:46

In 3.2.3 we fixed the crash. Instead of crashing, we are now giving this error

"Path too complex to render. Please split the geometry into several paths".

It is complicated to render these paths and the splitting process we had in the past was very inefficient and incomplete.
We decided to leave the task of simplification to the client.

Issue History

Date Modified Username Field Change
2024-04-24 11:02 JanNohavica New Issue
2024-04-24 11:02 JanNohavica File Added: crash.png
2024-04-24 11:40 jsantos Assigned To => jsantos
2024-04-24 11:40 jsantos Status new => assigned
2024-04-24 11:42 jsantos Note Added: 0009411
2024-04-24 11:42 jsantos Status assigned => feedback
2024-04-24 11:46 jsantos Note Edited: 0009411
2024-04-24 11:46 jsantos Note Edited: 0009411
2024-08-07 15:06 jsantos Status feedback => resolved
2024-08-07 15:06 jsantos Resolution open => fixed