Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

use t=z with kitty 0.21.3+, and eliminate auxvecs entirely #1900

Closed
dankamongmen opened this issue Jul 7, 2021 · 5 comments · Fixed by #1988
Closed

use t=z with kitty 0.21.3+, and eliminate auxvecs entirely #1900

dankamongmen opened this issue Jul 7, 2021 · 5 comments · Fixed by #1988
Assignees
Labels
bitmaps bitmapped graphics (sixel, kitty, mmap) perf sweet sweet perf
Milestone

Comments

@dankamongmen
Copy link
Owner

We have potentially hundreds or thousands of cells in a single graphic. In the kitty animation paradigm, we have to duplicate the entire image to use as potential rebuild data (though see kovidgoyal/kitty#3809, which would invalidate this entire issue). Rather than creating one block per cell, just create a single allocation of the sum size, swizzle to linear block form, and store indices into this block (or pointers, whatever). This collapses thousands of decently-sized (hundreds of bytes) allocations into a single large allocation.

Even if we get the t=z capability in Kitty graphics, we'll want to do this for versions between 0.20.0 and whatever version gets that.

@dankamongmen dankamongmen added documentation Improvements or additions to documentation enhancement New feature or request bitmaps bitmapped graphics (sixel, kitty, mmap) perf sweet sweet perf and removed documentation Improvements or additions to documentation enhancement New feature or request labels Jul 7, 2021
@dankamongmen dankamongmen self-assigned this Jul 7, 2021
@dankamongmen dankamongmen added this to the 3.0.0 milestone Jul 7, 2021
@dankamongmen
Copy link
Owner Author

it looks like we got kovid's blessing for our proposal in kitty 3809, so do this if it's trivial, but otherwise invest effort in our proposed extension, and prepare a kitty PR.

@dankamongmen
Copy link
Owner Author

kitty 3809 got implemented for 0.21.3, so i think we can throw this on history's rubbish heap. let's instead move to take advantage of t=z posthaste.

@dankamongmen dankamongmen changed the title create single block for kitty animated auxvecs use t=z with kitty 0.21.3+, and eliminate auxvecs entirely Jul 22, 2021
@dankamongmen
Copy link
Owner Author

hrmm, it's not working as i would expect, at least not how i'm driving it thus far...if i leave the redraw out entirely, and run statepixel, we get what we would expect -- the graphic is eliminated one cell at a time. if i then turn on the t=z redraw, we get a real mess.

@dankamongmen
Copy link
Owner Author

so i've got the rebuilds working, but we're seeing problems on statepixel with both the old and new animation, though it works in master. so clearly we've introduced some kind of failure there; hopefully, upon getting it resolved, we'll have a complete solution here for both 0.20.0--0.21.2 and 0.21.3+.

@dankamongmen
Copy link
Owner Author

ok, we've got it working now! we just now need shift kitty_blit_animated() over to kitty_blit_selfref(), which right now is not working, but that ought be pretty obvious. the hard part is done!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bitmaps bitmapped graphics (sixel, kitty, mmap) perf sweet sweet perf
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant