From 0b405ba4d912e988768a467668730b877a0b7a61 Mon Sep 17 00:00:00 2001 From: etowahadams Date: Mon, 8 Jan 2024 11:23:19 -0500 Subject: [PATCH] perf(core): stretch certain marks instead of redraw (#1018) * feat: stretchable marks * feat: stretchGraphics option * feat: stretchGraphicsThreshold Co-authored-by: Sehi L'Yi * feat: add stretchGraphicsThreshold to schema * fix: check all resolved tracks stretchable * chore: make first render more clear * chore(editor): add a demo for comparing rendering approaches (#1023) * chore: add a demo for perf comparison * chore: add a demo thumbnail --------- Co-authored-by: sehilyi * fix: make alignment example wider * chore: linting * chore: cleanup * fix: update schema * feat: add title * fix: no stretching when mouse interactions --------- Co-authored-by: Sehi L'Yi Co-authored-by: sehilyi --- editor/example/index.ts | 11 ++ editor/example/json-spec/index.ts | 2 + editor/example/json-spec/perf-alignment.ts | 30 ++++ editor/example/thumbnails.ts | 2 + editor/example/thumbnails/PERF_ALIGNMENT.png | Bin 0 -> 114031 bytes src/gosling-schema/gosling.schema.json | 144 +++++++++++++++++++ src/gosling-schema/gosling.schema.ts | 19 +++ src/tracks/gosling-track/gosling-track.ts | 71 ++++++++- 8 files changed, 277 insertions(+), 2 deletions(-) create mode 100644 editor/example/json-spec/perf-alignment.ts create mode 100644 editor/example/thumbnails/PERF_ALIGNMENT.png diff --git a/editor/example/index.ts b/editor/example/index.ts index 742e128b..dd914725 100644 --- a/editor/example/index.ts +++ b/editor/example/index.ts @@ -36,6 +36,7 @@ export type ExampleGroup = | 'Coordinated Multiple Views' | 'Applications' | 'Track Templates' + | 'Experimental' | 'Doc' | 'Unassigned'; @@ -75,6 +76,10 @@ export const ExampleGroups: { name: 'Track Templates', description: 'Built-in track templates that allow creating common tracks, like ideograms and gene annotations.' }, + { + name: 'Experimental', + description: 'Examples that include experimental features, such as performance improvements.' + }, { name: 'Doc', description: 'Examples used in the official documentation.' @@ -412,6 +417,12 @@ export const editorExampleObj: { spec: JsonExampleSpecs.EX_SPEC_ALIGNMENT_CHART, image: THUMBNAILS.ALIGNMENT }, + PERF_ALIGNMENT: { + group: 'Experimental', + name: 'Performance Comparison: Stretching Tiles', + spec: JsonExampleSpecs.EX_SPEC_PERF_ALIGNMENT, + image: THUMBNAILS.PERF_ALIGNMENT + }, CORCES_ET_AL: { group: 'Coordinated Multiple Views', name: 'Corces et al. 2020', diff --git a/editor/example/json-spec/index.ts b/editor/example/json-spec/index.ts index 835c69e0..3fd03232 100644 --- a/editor/example/json-spec/index.ts +++ b/editor/example/json-spec/index.ts @@ -24,6 +24,7 @@ import { EX_SPEC_CYTOBANDS } from './ideograms'; import { EX_SPEC_PILEUP } from './pileup'; import { EX_SPEC_TEMPLATE } from './track-template'; import { EX_SPEC_MOUSE_EVENT } from './mouse-event'; +import { EX_SPEC_PERF_ALIGNMENT } from './perf-alignment' import { EX_SPEC_DEBUG } from './debug'; export const JsonExampleSpecs = { @@ -42,6 +43,7 @@ export const JsonExampleSpecs = { EX_SPEC_RESPONSIVE_TRACK_WISE_COMPARISON, EX_SPEC_ALIGNMENT_CHART, EX_SPEC_RESPONSIVE_ALIGNMENT_CHART, + EX_SPEC_PERF_ALIGNMENT, EX_SPEC_MARK_DISPLACEMENT, EX_SPEC_CIRCULAR_OVERVIEW_LINEAR_DETAIL, EX_SPEC_SARS_COV_2, diff --git a/editor/example/json-spec/perf-alignment.ts b/editor/example/json-spec/perf-alignment.ts new file mode 100644 index 00000000..a689a3c0 --- /dev/null +++ b/editor/example/json-spec/perf-alignment.ts @@ -0,0 +1,30 @@ +import type { GoslingSpec } from '@gosling-lang/gosling-schema'; +import { alignmentWithText } from './responsive-alignment'; + +const commonProps = { width: 800, height: 400, xAxis: false, rowLegend: false, colorLegend: false }; +export const EX_SPEC_PERF_ALIGNMENT: GoslingSpec = { + zoomLimits: [1, 396], + xDomain: { interval: [350, 396] }, + assembly: 'unknown', + title: 'Smoother Zoom', + subtitle: 'Rather than redrawing every element at every frame, we can scale existing elements', + views: [ + { + tracks: [ + { + ...alignmentWithText(commonProps), + title: 'New Approach: Stretching Tiles', + experimental: { stretchGraphics: true } + } + ] + }, + { + tracks: [ + { + ...alignmentWithText(commonProps), + title: 'Original Approach' + } + ] + } + ] +}; diff --git a/editor/example/thumbnails.ts b/editor/example/thumbnails.ts index 29e6e3bc..05d499d3 100644 --- a/editor/example/thumbnails.ts +++ b/editor/example/thumbnails.ts @@ -15,6 +15,7 @@ import MARK_DISPLACEMENT from './thumbnails/MARK_DISPLACEMENT.png'; import MATRIX_HFFC6 from './thumbnails/MATRIX_HFFC6.gif'; import MATRIX from './thumbnails/MATRIX.png'; import MOUSE_EVENT from './thumbnails/MOUSE_EVENT.png'; +import PERF_ALIGNMENT from './thumbnails/PERF_ALIGNMENT.png'; import RESPONSIVE_COMPARATIVE_MATRICES from './thumbnails/RESPONSIVE_COMPARATIVE_MATRICES.gif'; import RESPONSIVE_IDEOGRAM from './thumbnails/RESPONSIVE_IDEOGRAM.gif'; import RESPONSIVE_MULTIVEC from './thumbnails/RESPONSIVE_MULTIVEC.gif'; @@ -48,6 +49,7 @@ export const THUMBNAILS = { MATRIX_HFFC6, MATRIX, MOUSE_EVENT, + PERF_ALIGNMENT, RESPONSIVE_COMPARATIVE_MATRICES, RESPONSIVE_IDEOGRAM, RESPONSIVE_MULTIVEC, diff --git a/editor/example/thumbnails/PERF_ALIGNMENT.png b/editor/example/thumbnails/PERF_ALIGNMENT.png new file mode 100644 index 0000000000000000000000000000000000000000..4403b62ad31b4c9e703e71a8259a8a2d4d7bd94c GIT binary patch literal 114031 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%0DG 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 eeiA=v-~R(jc6`h%pOk3;0000 = (HGC, context, op override drawTile(tile: Tile) { if (PRINT_RENDERING_CYCLE) console.warn('drawTile(tile)'); - tile.drawnAtScale = this._xScale.copy(); // being used in `super.draw()` - + /** + * If we don't have info about the tile, we can't draw anything. + */ const tileInfo = this.#processedTileInfo[tile.tileId]; if (!tileInfo) { // We do not have a track model prepared to visualize return; } + /** + * Add a copy of the track scale to the tile. The tile needs its own scale because we will use it to + * determine how much the tile has been stretched (if we are stretching the graphics) + */ + if (!tile.drawnAtScale) { + // This is the first time this tile is being drawn + tile.drawnAtScale = this._xScale.copy(); + } + + /** + * For certain types of marks and layouts (linear), we can stretch the graphics to avoid redrawing + * This is much more performant than redrawing everything at every frame + */ + const [graphicsXScale, graphicsXPos] = this.getXScaleAndOffset(tile.drawnAtScale); + const isFirstRender = graphicsXScale === 1; // The graphicsXScale is 1 if first time the tile is being drawn + if (!this.#isTooStretched(graphicsXScale) && this.#hasStretchableGraphics() && !isFirstRender) { + // Stretch the graphics + tile.graphics.scale.x = graphicsXScale; + tile.graphics.position.x = graphicsXPos; + return; + } + + /** + * If we can't stretch the graphics, we need to redraw everything! + */ + + // We need the tile scale to match the scale of the track + tile.drawnAtScale = this._xScale.copy(); + // Clear the graphics and redraw everything tile.graphics?.clear(); tile.graphics?.removeChildren(); @@ -1472,6 +1502,43 @@ const factory: PluginTrackFactory = (HGC, context, op } }); } + + /** + * Used in drawTile() + * Checks if the track has marks which are stretchable. Stretching + * is not supported for circular layouts or 2D tracks + */ + #hasStretchableGraphics() { + const hasStretchOption = this.options.spec.experimental?.stretchGraphics; + if (hasStretchOption === true) { + return true; + } else if (hasStretchOption === false) { + return false; + } + // The default behavior is that we stretch when stretching looks acceptable + const isFirstTrack1D = !Is2DTrack(this.getResolvedTracks()[0]); + const isNotCircularLayout = this.options.spec.layout !== 'circular'; + const stretchableMarks = ['bar', 'line', 'rect', 'area']; + const hasStretchableMark = this.getResolvedTracks().reduce( + (acc, spec) => acc && stretchableMarks.includes(spec.mark), + true + ); + const noMouseInteractions = !this.options.spec.experimental?.mouseEvents; + + return isFirstTrack1D && isNotCircularLayout && hasStretchableMark && noMouseInteractions; + } + + /** + * Used in drawTile() + * Checks if the tile Graphic is too stretched. If so, it returns true. + * @param stretchFactor The factor by which the tile is stretched + * @returns True if the tile is too stretched, false otherwise + */ + #isTooStretched(stretchFactor: number) { + const defaultThreshold = 1.5; + const threshold = this.options.spec.experimental?.stretchGraphicsThreshold ?? defaultThreshold; + return stretchFactor > threshold || stretchFactor < 1 / threshold; + } } return new GoslingTrackClass(); };