auu
This commit is contained in:
parent
d995726462
commit
0a343ecbc5
326 changed files with 15584 additions and 0 deletions
25
test/v4776-frame-pipeline-smoke-test.js
Normal file
25
test/v4776-frame-pipeline-smoke-test.js
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
'use strict';
|
||||
const {assert,functionSource,app,css}=require('./helpers/app-source');
|
||||
for(const name of ['scheduleBoardDragFrame','queueCameraInteraction','scheduleWorldOverview','schedulePresenceRender','scheduleReactionRender']){
|
||||
const source=functionSource(name);
|
||||
if(name==='queueCameraInteraction')assert(source.includes('CAMERA_DISPLAY_WATCHDOG_MS')&&source.includes('cancelAnimationFrame')&&source.includes('clearTimeout'),'Camera missed-vsync fallback does not cancel its paired scheduler');
|
||||
else if(name==='scheduleBoardDragFrame')assert(source.includes('DRAG_DISPLAY_WATCHDOG_MS')&&source.includes('cancelAnimationFrame')&&source.includes('clearTimeout'),'Pickup missed-vsync fallback does not cancel its paired scheduler');
|
||||
else if(name!=='scheduleWorldOverview')assert(!source.includes('setTimeout('),`${name} still double-throttles through setTimeout plus requestAnimationFrame`);
|
||||
assert(source.includes('requestAnimationFrame'),`${name} must remain frame-synchronized`);
|
||||
}
|
||||
const minimap=functionSource('scheduleMinimap');
|
||||
assert(minimap.includes("classList?.contains?.('is-interacting')"),'Minimap must not repaint during an active gesture');
|
||||
const overview=functionSource('drawWorldOverview');
|
||||
assert(functionSource('positionCachedWorldOverview').includes('overviewCanvas.style.transform'),'Overview panning must move the cached bitmap as a compositor layer');
|
||||
assert(functionSource('scheduleWorldOverview').includes('requestIdleCallback'),'Overview cache rebuilds must be deferred to idle time');
|
||||
assert(overview.includes('overviewBitmapCopies'),'Overview bitmap copy must only occur during cache rebuild');
|
||||
assert(!overview.includes('sourceX='),'Overview must not copy a viewport-sized sub-rectangle every pan frame');
|
||||
const camera=functionSource('applyCamera');
|
||||
assert(camera.includes('translate3d('),'Nearby field panning must use a compositor transform');
|
||||
assert(camera.includes('shiftOnlineLayersForCamera'),'Online canvases must move without full repaint during camera gestures');
|
||||
assert(camera.includes('minimapDirty=true'),'Camera movement must mark, not immediately repaint, the minimap');
|
||||
assert(functionSource('boardPlayHudVisible').includes('hudBoardId===b?.id'),'Selected-board HUD persistence changed unexpectedly');
|
||||
assert(css.includes('#viewport.panning::after{display:none}'),'Full-screen vignette must be suppressed while panning');
|
||||
assert(css.includes('#presenceCanvas,#reactionCanvas{transform-origin:0 0'),'Online canvases are not compositor-ready');
|
||||
assert(app.includes("const APP_VERSION='47.77'"),'Application version was not advanced');
|
||||
console.log('v47.77 compositor frame-pipeline regression test passed');
|
||||
Loading…
Add table
Add a link
Reference in a new issue