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

View File

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

View File

@@ -191,78 +191,91 @@ void SceneGraphTimelineModel::loadData()
case QmlDebug::SceneGraphRendererFrame: {
qint64 startTime = event.startTime - event.numericData1 - event.numericData2 -
event.numericData3 - event.numericData4;
d->data.insert(insert(startTime, event.numericData1),
d->data.insert(insert(startTime, event.numericData1, event.typeIndex),
SceneGraphEvent(RenderPreprocess));
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;
d->data.insert(insert(startTime, event.numericData3), SceneGraphEvent(RenderBind));
d->data.insert(insert(startTime, event.numericData3, event.typeIndex),
SceneGraphEvent(RenderBind));
startTime += event.numericData3;
d->data.insert(insert(startTime, event.numericData4), SceneGraphEvent(RenderRender));
d->data.insert(insert(startTime, event.numericData4, event.typeIndex),
SceneGraphEvent(RenderRender));
break;
}
case QmlDebug::SceneGraphAdaptationLayerFrame: {
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));
startTime += event.numericData2;
d->data.insert(insert(startTime, event.numericData3),
d->data.insert(insert(startTime, event.numericData3, event.typeIndex),
SceneGraphEvent(GlyphStore, event.numericData1));
break;
}
case QmlDebug::SceneGraphContextFrame: {
d->data.insert(insert(event.startTime - event.numericData1, event.numericData1),
SceneGraphEvent(Material));
d->data.insert(insert(event.startTime - event.numericData1, event.numericData1,
event.typeIndex), SceneGraphEvent(Material));
break;
}
case QmlDebug::SceneGraphRenderLoopFrame: {
qint64 startTime = event.startTime - event.numericData1 - event.numericData2 -
event.numericData3;
d->data.insert(insert(startTime, event.numericData1),
d->data.insert(insert(startTime, event.numericData1, event.typeIndex),
SceneGraphEvent(RenderThreadSync));
startTime += event.numericData1 + event.numericData2;
// 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;
}
case QmlDebug::SceneGraphTexturePrepare: {
qint64 startTime = event.startTime - event.numericData1 - event.numericData2 -
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;
d->data.insert(insert(startTime, event.numericData2), SceneGraphEvent(TextureConvert));
d->data.insert(insert(startTime, event.numericData2, event.typeIndex),
SceneGraphEvent(TextureConvert));
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;
d->data.insert(insert(startTime, event.numericData4), SceneGraphEvent(TextureUpload));
d->data.insert(insert(startTime, event.numericData4, event.typeIndex),
SceneGraphEvent(TextureUpload));
startTime += event.numericData4;
d->data.insert(insert(startTime, event.numericData5), SceneGraphEvent(TextureMipmap));
d->data.insert(insert(startTime, event.numericData5, event.typeIndex),
SceneGraphEvent(TextureMipmap));
break;
}
case QmlDebug::SceneGraphPolishAndSync: {
qint64 startTime = event.startTime - event.numericData1 - event.numericData2 -
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;
d->data.insert(insert(startTime, event.numericData2), SceneGraphEvent(Wait));
d->data.insert(insert(startTime, event.numericData2, event.typeIndex),
SceneGraphEvent(Wait));
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;
d->data.insert(insert(startTime, event.numericData4), SceneGraphEvent(Animations));
d->data.insert(insert(startTime, event.numericData4, event.typeIndex),
SceneGraphEvent(Animations));
break;
}
case QmlDebug::SceneGraphWindowsAnimations: {
// GUI thread, separate animations stage
d->data.insert(insert(event.startTime - event.numericData1, event.numericData1),
SceneGraphEvent(Animations));
d->data.insert(insert(event.startTime - event.numericData1, event.numericData1,
event.typeIndex), SceneGraphEvent(Animations));
break;
}
case QmlDebug::SceneGraphPolishFrame: {
// GUI thread, separate polish stage
d->data.insert(insert(event.startTime - event.numericData1, event.numericData1),
SceneGraphEvent(Polish));
d->data.insert(insert(event.startTime - event.numericData1, event.numericData1,
event.typeIndex), SceneGraphEvent(Polish));
break;
}
default: break;