Skip to content

Rendering artifact during rapid pan (stale/partial tiles persist) #32

Description

@diegospa99

Summary

When panning rapidly (especially across a multi-puck TMA slide), tiles render inconsistently — some pucks appear with different brightness/contrast or partial fills, and edge-detail popups can get stuck on `loading...` mid-pan.

Symptoms

  • During or right after a fast pan, adjacent pucks in the same view render with visually distinct brightness/intensity (some appear ~30% dimmer than expected, others appear correct)
  • Looks like tile-loading order issue: stale tiles from a prior viewport linger, new tiles render on top in patches → uneven mosaic
  • Resolves to a clean render after pan stops and tiles fully reload (a few seconds)
  • The `EDGE` info popup can also show `loading...` while a click-target is being resolved against a still-loading region

Repro

  1. Open a multi-puck Xenium TMA dataset
  2. Zoom out to bird's-eye / overview level
  3. Pan rapidly across the slide (mouse drag) or use the minimap to jump
  4. Observe the patchy/inconsistent puck rendering during/just after the pan

Likely causes

  • Tile fetch queue not cancelled on viewport change → late-arriving tiles paint stale data over fresh
  • Cache eviction inconsistent across the pyramid levels currently visible
  • No debounce on the edge-detail fetch when the click position is moving

Suggested fixes

  • Cancel in-flight tile requests when viewport changes significantly
  • Render a low-res placeholder while higher-res tiles load (instead of leaving stale tiles)
  • Debounce or invalidate edge-detail queries when pan is active

Use case driving this

Currently doing a manuscript-level audit comparing LR mechanisms across multiple pucks of a Xenium TMA. Scrolling between pucks rapidly is the common path; the artifact makes brightness comparisons unreliable until the user pauses and waits for a clean render.

Versions

TissuePlex v0.2.0 (post-sync from RaredonLab/TissuePlex:dev on 2026-05-28)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions