perf: reduce software rendering overhead for NVIDIA+Wayland
Targeted optimizations for the DMABuf-disabled rendering path where every frame is software-composited: - Replace infinite CSS scroll-text animation with transition-based cycle that only repaints during active scroll, not during pauses - Remove CSS mask-image on scrolling text (mask + animation was the single most expensive continuous repaint) - Replace wa-icon in track rows with inline SVG — eliminates 30-50 shadow DOM trees (each with SVG fetch/parse) during scroll - Remove hover transitions on album cards, artist cards, genre cards, fav icons, queue remove buttons — each transition was causing per-frame software repaints - Use visibility:hidden instead of opacity:0 for queue remove button (binary switch vs per-frame alpha blend) - Add decoding=async to now-playing cover art images (prevents main-thread blocking during image decode on track change) - Add contain:strict to fixed-height track rows (33px) and queue items (49px) — browser skips size contribution calculations
This commit is contained in:
@@ -319,6 +319,7 @@ export class QueuePanel
|
||||
box-sizing: border-box;
|
||||
height: 49px;
|
||||
overflow: hidden;
|
||||
contain: strict;
|
||||
}
|
||||
|
||||
.track-item:hover {
|
||||
@@ -384,12 +385,11 @@ export class QueuePanel
|
||||
padding: 4px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
opacity: 0;
|
||||
transition: opacity 0.15s;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.track-item:hover .remove-button {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
.remove-button:hover {
|
||||
|
||||
Reference in New Issue
Block a user