Store typeIds in range data

Change-Id: I09e9481296cbd0429858df893de902c63891b430
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
This commit is contained in:
Ulf Hermann
2014-08-29 19:31:23 +02:00
parent 009b1bd437
commit f70cbad9b1
3 changed files with 47 additions and 32 deletions

View File

@@ -219,7 +219,7 @@ void MemoryUsageModel::loadData()
insertEnd(currentUsageIndex, insertEnd(currentUsageIndex,
event.startTime - range(currentUsageIndex).start - 1); event.startTime - range(currentUsageIndex).start - 1);
} }
currentUsageIndex = insertStart(event.startTime); currentUsageIndex = insertStart(event.startTime, event.typeIndex);
d->data.insert(currentUsageIndex, allocation); d->data.insert(currentUsageIndex, allocation);
} }
} }
@@ -242,7 +242,7 @@ void MemoryUsageModel::loadData()
if (currentJSHeapIndex != -1) if (currentJSHeapIndex != -1)
insertEnd(currentJSHeapIndex, insertEnd(currentJSHeapIndex,
event.startTime - range(currentJSHeapIndex).start - 1); event.startTime - range(currentJSHeapIndex).start - 1);
currentJSHeapIndex = insertStart(event.startTime); currentJSHeapIndex = insertStart(event.startTime, event.typeIndex);
d->data.insert(currentJSHeapIndex, allocation); d->data.insert(currentJSHeapIndex, allocation);
} }
} }

View File

@@ -68,7 +68,7 @@ public:
void resizeUnfinishedLoads(); void resizeUnfinishedLoads();
void flattenLoads(); void flattenLoads();
int updateCacheCount(int lastCacheSizeEvent, qint64 startTime, qint64 pixSize, int updateCacheCount(int lastCacheSizeEvent, qint64 startTime, qint64 pixSize,
PixmapCacheEvent &newEvent); PixmapCacheEvent &newEvent, int typeId);
QVector<PixmapCacheEvent> data; QVector<PixmapCacheEvent> data;
QVector<Pixmap> pixmaps; QVector<Pixmap> pixmaps;
@@ -291,7 +291,8 @@ void PixmapCacheModel::loadData()
PixmapState &state = pixmap.sizes[newEvent.sizeIndex]; PixmapState &state = pixmap.sizes[newEvent.sizeIndex];
if (state.cacheState == ToBeCached) { if (state.cacheState == ToBeCached) {
lastCacheSizeEvent = d->updateCacheCount(lastCacheSizeEvent, startTime, lastCacheSizeEvent = d->updateCacheCount(lastCacheSizeEvent, startTime,
state.size.width() * state.size.height(), newEvent); state.size.width() * state.size.height(), newEvent,
event.typeIndex);
state.cacheState = Cached; state.cacheState = Cached;
} }
break; break;
@@ -351,7 +352,7 @@ void PixmapCacheModel::loadData()
} }
lastCacheSizeEvent = d->updateCacheCount(lastCacheSizeEvent, startTime, pixSize, lastCacheSizeEvent = d->updateCacheCount(lastCacheSizeEvent, startTime, pixSize,
newEvent); newEvent, event.typeIndex);
break; break;
} }
case PixmapLoadingStarted: { // Load case PixmapLoadingStarted: { // Load
@@ -371,7 +372,7 @@ void PixmapCacheModel::loadData()
PixmapState &state = pixmap.sizes[newEvent.sizeIndex]; PixmapState &state = pixmap.sizes[newEvent.sizeIndex];
state.loadState = Loading; state.loadState = Loading;
state.started = insertStart(startTime); state.started = insertStart(startTime, event.typeIndex);
d->data.insert(state.started, newEvent); d->data.insert(state.started, newEvent);
break; break;
} }
@@ -415,7 +416,8 @@ void PixmapCacheModel::loadData()
// If the pixmap loading wasn't started, start it at traceStartTime() // If the pixmap loading wasn't started, start it at traceStartTime()
if (state.loadState == Initial) { if (state.loadState == Initial) {
newEvent.pixmapEventType = PixmapLoadingStarted; newEvent.pixmapEventType = PixmapLoadingStarted;
state.started = insert(traceStartTime(), startTime - traceStartTime()); state.started = insert(traceStartTime(), startTime - traceStartTime(),
event.typeIndex);
d->data.insert(state.started, newEvent); d->data.insert(state.started, newEvent);
// All other indices are wrong now as we've prepended. Fix them ... // All other indices are wrong now as we've prepended. Fix them ...
@@ -540,7 +542,7 @@ void PixmapCacheModel::PixmapCacheModelPrivate::flattenLoads()
} }
int PixmapCacheModel::PixmapCacheModelPrivate::updateCacheCount(int lastCacheSizeEvent, int PixmapCacheModel::PixmapCacheModelPrivate::updateCacheCount(int lastCacheSizeEvent,
qint64 startTime, qint64 pixSize, PixmapCacheEvent &newEvent) qint64 startTime, qint64 pixSize, PixmapCacheEvent &newEvent, int typeId)
{ {
Q_Q(PixmapCacheModel); Q_Q(PixmapCacheModel);
newEvent.pixmapEventType = PixmapCacheCountChanged; newEvent.pixmapEventType = PixmapCacheCountChanged;
@@ -553,7 +555,7 @@ int PixmapCacheModel::PixmapCacheModelPrivate::updateCacheCount(int lastCacheSiz
} }
newEvent.cacheSize = prevSize + pixSize; newEvent.cacheSize = prevSize + pixSize;
int index = q->insertStart(startTime); int index = q->insertStart(startTime, typeId);
data.insert(index, newEvent); data.insert(index, newEvent);
return index; return index;
} }

View File

@@ -191,78 +191,91 @@ void SceneGraphTimelineModel::loadData()
case QmlDebug::SceneGraphRendererFrame: { case QmlDebug::SceneGraphRendererFrame: {
qint64 startTime = event.startTime - event.numericData1 - event.numericData2 - qint64 startTime = event.startTime - event.numericData1 - event.numericData2 -
event.numericData3 - event.numericData4; event.numericData3 - event.numericData4;
d->data.insert(insert(startTime, event.numericData1), d->data.insert(insert(startTime, event.numericData1, event.typeIndex),
SceneGraphEvent(RenderPreprocess)); SceneGraphEvent(RenderPreprocess));
startTime += event.numericData1; startTime += event.numericData1;
d->data.insert(insert(startTime, event.numericData2), SceneGraphEvent(RenderUpdate)); d->data.insert(insert(startTime, event.numericData2, event.typeIndex),
SceneGraphEvent(RenderUpdate));
startTime += event.numericData2; startTime += event.numericData2;
d->data.insert(insert(startTime, event.numericData3), SceneGraphEvent(RenderBind)); d->data.insert(insert(startTime, event.numericData3, event.typeIndex),
SceneGraphEvent(RenderBind));
startTime += event.numericData3; startTime += event.numericData3;
d->data.insert(insert(startTime, event.numericData4), SceneGraphEvent(RenderRender)); d->data.insert(insert(startTime, event.numericData4, event.typeIndex),
SceneGraphEvent(RenderRender));
break; break;
} }
case QmlDebug::SceneGraphAdaptationLayerFrame: { case QmlDebug::SceneGraphAdaptationLayerFrame: {
qint64 startTime = event.startTime - event.numericData2 - event.numericData3; qint64 startTime = event.startTime - event.numericData2 - event.numericData3;
d->data.insert(insert(startTime, event.numericData2), d->data.insert(insert(startTime, event.numericData2, event.typeIndex),
SceneGraphEvent(GlyphRender, event.numericData1)); SceneGraphEvent(GlyphRender, event.numericData1));
startTime += event.numericData2; startTime += event.numericData2;
d->data.insert(insert(startTime, event.numericData3), d->data.insert(insert(startTime, event.numericData3, event.typeIndex),
SceneGraphEvent(GlyphStore, event.numericData1)); SceneGraphEvent(GlyphStore, event.numericData1));
break; break;
} }
case QmlDebug::SceneGraphContextFrame: { case QmlDebug::SceneGraphContextFrame: {
d->data.insert(insert(event.startTime - event.numericData1, event.numericData1), d->data.insert(insert(event.startTime - event.numericData1, event.numericData1,
SceneGraphEvent(Material)); event.typeIndex), SceneGraphEvent(Material));
break; break;
} }
case QmlDebug::SceneGraphRenderLoopFrame: { case QmlDebug::SceneGraphRenderLoopFrame: {
qint64 startTime = event.startTime - event.numericData1 - event.numericData2 - qint64 startTime = event.startTime - event.numericData1 - event.numericData2 -
event.numericData3; event.numericData3;
d->data.insert(insert(startTime, event.numericData1), d->data.insert(insert(startTime, event.numericData1, event.typeIndex),
SceneGraphEvent(RenderThreadSync)); SceneGraphEvent(RenderThreadSync));
startTime += event.numericData1 + event.numericData2; startTime += event.numericData1 + event.numericData2;
// Skip actual rendering. We get a SceneGraphRendererFrame for that // Skip actual rendering. We get a SceneGraphRendererFrame for that
d->data.insert(insert(startTime, event.numericData3), SceneGraphEvent(Swap)); d->data.insert(insert(startTime, event.numericData3, event.typeIndex),
SceneGraphEvent(Swap));
break; break;
} }
case QmlDebug::SceneGraphTexturePrepare: { case QmlDebug::SceneGraphTexturePrepare: {
qint64 startTime = event.startTime - event.numericData1 - event.numericData2 - qint64 startTime = event.startTime - event.numericData1 - event.numericData2 -
event.numericData3 - event.numericData4 - event.numericData5; event.numericData3 - event.numericData4 - event.numericData5;
d->data.insert(insert(startTime, event.numericData1), SceneGraphEvent(TextureBind)); d->data.insert(insert(startTime, event.numericData1, event.typeIndex),
SceneGraphEvent(TextureBind));
startTime += event.numericData1; startTime += event.numericData1;
d->data.insert(insert(startTime, event.numericData2), SceneGraphEvent(TextureConvert)); d->data.insert(insert(startTime, event.numericData2, event.typeIndex),
SceneGraphEvent(TextureConvert));
startTime += event.numericData2; startTime += event.numericData2;
d->data.insert(insert(startTime, event.numericData3), SceneGraphEvent(TextureSwizzle)); d->data.insert(insert(startTime, event.numericData3, event.typeIndex),
SceneGraphEvent(TextureSwizzle));
startTime += event.numericData3; startTime += event.numericData3;
d->data.insert(insert(startTime, event.numericData4), SceneGraphEvent(TextureUpload)); d->data.insert(insert(startTime, event.numericData4, event.typeIndex),
SceneGraphEvent(TextureUpload));
startTime += event.numericData4; startTime += event.numericData4;
d->data.insert(insert(startTime, event.numericData5), SceneGraphEvent(TextureMipmap)); d->data.insert(insert(startTime, event.numericData5, event.typeIndex),
SceneGraphEvent(TextureMipmap));
break; break;
} }
case QmlDebug::SceneGraphPolishAndSync: { case QmlDebug::SceneGraphPolishAndSync: {
qint64 startTime = event.startTime - event.numericData1 - event.numericData2 - qint64 startTime = event.startTime - event.numericData1 - event.numericData2 -
event.numericData3 - event.numericData4; event.numericData3 - event.numericData4;
d->data.insert(insert(startTime, event.numericData1), SceneGraphEvent(Polish)); d->data.insert(insert(startTime, event.numericData1, event.typeIndex),
SceneGraphEvent(Polish));
startTime += event.numericData1; startTime += event.numericData1;
d->data.insert(insert(startTime, event.numericData2), SceneGraphEvent(Wait)); d->data.insert(insert(startTime, event.numericData2, event.typeIndex),
SceneGraphEvent(Wait));
startTime += event.numericData2; startTime += event.numericData2;
d->data.insert(insert(startTime, event.numericData3), SceneGraphEvent(GUIThreadSync)); d->data.insert(insert(startTime, event.numericData3, event.typeIndex),
SceneGraphEvent(GUIThreadSync));
startTime += event.numericData3; startTime += event.numericData3;
d->data.insert(insert(startTime, event.numericData4), SceneGraphEvent(Animations)); d->data.insert(insert(startTime, event.numericData4, event.typeIndex),
SceneGraphEvent(Animations));
break; break;
} }
case QmlDebug::SceneGraphWindowsAnimations: { case QmlDebug::SceneGraphWindowsAnimations: {
// GUI thread, separate animations stage // GUI thread, separate animations stage
d->data.insert(insert(event.startTime - event.numericData1, event.numericData1), d->data.insert(insert(event.startTime - event.numericData1, event.numericData1,
SceneGraphEvent(Animations)); event.typeIndex), SceneGraphEvent(Animations));
break; break;
} }
case QmlDebug::SceneGraphPolishFrame: { case QmlDebug::SceneGraphPolishFrame: {
// GUI thread, separate polish stage // GUI thread, separate polish stage
d->data.insert(insert(event.startTime - event.numericData1, event.numericData1), d->data.insert(insert(event.startTime - event.numericData1, event.numericData1,
SceneGraphEvent(Polish)); event.typeIndex), SceneGraphEvent(Polish));
break; break;
} }
default: break; default: break;