diff options
author | Joe Wilm <jwilm@users.noreply.github.com> | 2020-08-04 17:24:51 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-05 00:24:51 +0000 |
commit | 99c34c7ce92fe02c733b5fd19dd054783038f037 (patch) | |
tree | 456143cbb4f3b361e34d59f16e398b42f455e589 /CHANGELOG.md | |
parent | de84ab2072288ea609ef9ae8e6521b537baab75d (diff) |
Reduce InstanceData footprint
The InstanceData type in the rendering subsystem was previously 17 f32s
plus one u8 which occupied a total of 72 bytes per instance. This meant
that for every character or background cell drawn, 72 bytes were sent to
the GPU. In the case of a 400x100 cell grid, a total of 2.9MB would be
sent.
This patch reduces InstanceData's size to 36 bytes, a 50% improvement!
Using the above example for comparison, a worst case of 1.44MB would be
transferred.
The motivation for this patch comes from macOS. Once the terminal grid
would reach a certain size, performance experienced a sharp and dramatic
drop (render times would go from ~3ms to ~16ms). I don't want to
speculate too much on the underlying issue, but suffice it to say that
this patch alleviates the problem in my testing.
While the performance impact was most significant on macOS, with
rendering times cut by more than 50% in some cases, this also results in
a measurable performance difference on other systems with high density
grids.
Co-authored-by: Christian Duerr <contact@christianduerr.com>
Diffstat (limited to 'CHANGELOG.md')
-rw-r--r-- | CHANGELOG.md | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 4277034a..caeee1f5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ### Fixed - Incorrect window location with negative `window.position` config options +- Slow rendering performance with HiDPI displays, especially on macOS ## 0.5.0 |