diff options
author | Pablo Gamito <pablogamito@google.com> | 2023-06-09 14:23:25 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-06-09 14:23:25 +0000 |
commit | 2809fe16429e1d974e35e95493a7708ca00aae02 (patch) | |
tree | 58865261f0b295a9c10e392dbebec87f2b7702fb | |
parent | c43426f67e75f02b3467451a78989198713c57d1 (diff) | |
parent | 89570faf2c88e0c217131443f8e11a705e159624 (diff) | |
download | development-2809fe16429e1d974e35e95493a7708ca00aae02.tar.gz |
Show noop transactions in viewer am: 89570faf2c
Original change: https://googleplex-android-review.googlesource.com/c/platform/development/+/23631337
Change-Id: I332a2412178b687000e0ee1a125c52becb07f655
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
3 files changed, 39 insertions, 3 deletions
diff --git a/tools/winscope/src/viewers/viewer_transactions/presenter.ts b/tools/winscope/src/viewers/viewer_transactions/presenter.ts index 7c0ef394e..d4a091086 100644 --- a/tools/winscope/src/viewers/viewer_transactions/presenter.ts +++ b/tools/winscope/src/viewers/viewer_transactions/presenter.ts @@ -283,6 +283,26 @@ export class Presenter { ) ); } + + if ( + transactionStateProto.layerChanges.length === 0 && + transactionStateProto.displayChanges.length === 0 + ) { + entries.push( + new UiDataEntry( + originalIndex, + TimeUtils.format(entry.getTimestamp()), + Number(entryProto.vsyncId), + transactionStateProto.pid.toString(), + transactionStateProto.uid.toString(), + UiDataEntryType.NO_OP, + '', + transactionStateProto.transactionId.toString(), + '', + {} + ) + ); + } } for (const layerCreationArgsProto of entryProto.addedLayers) { diff --git a/tools/winscope/src/viewers/viewer_transactions/presenter_test.ts b/tools/winscope/src/viewers/viewer_transactions/presenter_test.ts index 1cd964ca6..7ea260ef3 100644 --- a/tools/winscope/src/viewers/viewer_transactions/presenter_test.ts +++ b/tools/winscope/src/viewers/viewer_transactions/presenter_test.ts @@ -32,7 +32,7 @@ describe('PresenterTransactions', () => { let traces: Traces; let presenter: Presenter; let outputUiData: undefined | UiData; - const TOTAL_OUTPUT_ENTRIES = 1504; + const TOTAL_OUTPUT_ENTRIES = 1647; beforeAll(async () => { parser = await UnitTestUtils.getParser('traces/elapsed_and_real_timestamp/Transactions.pb'); @@ -75,10 +75,11 @@ describe('PresenterTransactions', () => { 'LAYER_CHANGED', 'LAYER_DESTROYED', 'LAYER_HANDLE_DESTROYED', + 'NO_OP', ]); - expect(outputUiData?.allTransactionIds.length).toEqual(1152); - expect(outputUiData?.allLayerAndDisplayIds.length).toEqual(116); + expect(outputUiData?.allTransactionIds.length).toEqual(1295); + expect(outputUiData?.allLayerAndDisplayIds.length).toEqual(117); expect(outputUiData?.entries.length).toEqual(TOTAL_OUTPUT_ENTRIES); @@ -158,6 +159,7 @@ describe('PresenterTransactions', () => { UiDataEntryType.LAYER_CHANGED, UiDataEntryType.LAYER_DESTROYED, UiDataEntryType.LAYER_HANDLE_DESTROYED, + UiDataEntryType.NO_OP, ]) ); @@ -189,6 +191,19 @@ describe('PresenterTransactions', () => { ); }); + it('includes no op transitions', () => { + presenter.onTypeFilterChanged([UiDataEntryType.NO_OP]); + expect(new Set(outputUiData!.entries.map((entry) => entry.type))).toEqual( + new Set([UiDataEntryType.NO_OP]) + ); + + for (const entry of outputUiData!.entries) { + expect(entry.layerOrDisplayId).toEqual(''); + expect(entry.what).toEqual(''); + expect(entry.propertiesTree).toEqual({}); + } + }); + it('filters entries according to "what" search string', () => { expect(outputUiData!.entries.length).toEqual(TOTAL_OUTPUT_ENTRIES); diff --git a/tools/winscope/src/viewers/viewer_transactions/ui_data.ts b/tools/winscope/src/viewers/viewer_transactions/ui_data.ts index 36f2f3e9f..f61d86cdb 100644 --- a/tools/winscope/src/viewers/viewer_transactions/ui_data.ts +++ b/tools/winscope/src/viewers/viewer_transactions/ui_data.ts @@ -56,6 +56,7 @@ class UiDataEntryType { static LAYER_DESTROYED = 'LAYER_DESTROYED'; static LAYER_CHANGED = 'LAYER_CHANGED'; static LAYER_HANDLE_DESTROYED = 'LAYER_HANDLE_DESTROYED'; + static NO_OP = 'NO_OP'; } export {UiData, UiDataEntry, UiDataEntryType}; |