-
-
Notifications
You must be signed in to change notification settings - Fork 121
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
deal with alacritty's weird sixel erasure semantics #2142
Comments
looking into alacritty, on the "ought see 16 *s" we move from
to
so one, we went from UNSEEN to QUIESCENT on the sixel overall, though the sprixcells transitions are correct ( |
this does indeed fix alacritty. xterm remains correct. butttttttttttttt xterm now leaves copies of the orca around, and alacritty's copy problem is exacerbated. xterm's |
ahhh, properly using |
though this raises the question...why was it working in xterm, if we weren't invalidating? which raises another question: why would we need invalidate on a wipe of sixel? that just means we're going to print a character over it, destroying the affected area. we shouldn't need redraw it. hrmmmm... was alacritty not printing over the graphics? let's take a closer look... |
now regarding kitty: things work perfectly on an older version. so presumably we're doing something wrong with animation. |
so exposing RAST in alacritty, we do seem to be knocking things out:
|
....yes, that seems to be the case, wtf. in alacritty, it appears that drawing a glyph over a graphic does not necessarily destroy it. wtf?!? wait. we're drawing default glyphs on a white box. is it possible that glyphs print with transparency, and it's just being hidden!? |
nope, changing the color up doesn't help. BUT, this explains why alacritty is duplicating the orca in MADNESS. |
in #1740 we found that DECERA doesn't work on alacritty, so we can't help with that. ugh. yeah, from all i can tell, we can't obliterate this sixel with glyphs in alacritty. what on earth? |
yeah. load a full-screen sixel with |
it seems that if i start above a sixel in alacritty, and hit enter until i come out the bottom, that erases it. so maybe alacritty is an all-or-nothing deal, where you have to touch each line? i mean, that's bizarre, but that's what it's looking like.... ...and that would match the behavior we're seeing. ok, this is insane. maybe file a bug against @ayosec? either way, dealing with this will require some thought and work. let's move that to 3.0. retitling this bug. |
ahhh, and this explains why |
it looks like applying a new graphic atop the old graphic is also sufficient to destroy it. so alacritty seems to be pursuing a semantics between kitty and sixel -- clearly a sixel has a holistic concept here. this is yet another place where mosaics could make things much simpler. |
see hackerb9/vt340test#16 for questions about whether DECERA applies to sixel |
i think the best way to "solve" this would be to get upstream to change it, given that it still hasn't been merged into main alacritty. |
yeah if i could loop @ayosec in on this, that would be best |
i've described this at alacritty/alacritty#4763 (comment) |
the best way to deal with this might be mosaics. this is only an effect of the current implementation, not planned behavior, according to @ayosec. i definitely don't want to write a second raster path to deal with that if it might be going away (and hasn't yet been officially merged in any case). so maybe we just stop supporting alacritty until we have mosaics (we have special-case code to even recognize alacritty as a sixel provider today)? |
i'm disinclined to write code to deal with this. as noted above, mosaics makes it go away. who knows whether the |
I think mosaics would indeed solve it for you. I have an old version of alacritty-ayosec and images look the same as all other terminals. |
oh, it looks the same when you draw it. the discrepancy happens when you try printing glyphs over it. |
In a given line, I'm printing the images for that line, and then printing text over any cell that had an image before -- i.e. I am always destroying every image from the previous frame on that line, either with another image over it or text over it. That originally evolved out of seeing xterm screw image areas up that I hadn't touched at all on the latest frame. |
Hey, I just found this ticket by accident (had time to looks around). Is contour still a problem here? What should I fix / improve? :) |
Is this still an issue in Alacritty with the latest changes? |
hi @ayosec I'm no expert on this issue but I just compiled your latest update on alacritty graphics branch v0.11.0, and run the Now it appears the output is all exactly the same as xterm's, except the "ought see empty square" is an empty square indeed, but the characters behind it don't show, like xterm does. Although I'm not sure the relevance of that: |
Thanks for testing it!
This is something that I noticed when I was investigating how to implement the support for graphics in Alacritty. Xterm never replaces text, it just draw the graphic on top of it. I put some other examples in alacritty/alacritty#910 (comment). We can replicate that behaviour in Alacritty, but I don't know if it is a good idea. Does anybody know what the original DEC terminals did? |
What are these "latest changes"? :)
…On Fri, Jul 15, 2022, 3:24 PM Ayose Cazorla ***@***.***> wrote:
Is this still an issue in Alacritty with the latest changes?
—
Reply to this email directly, view it on GitHub
<#2142 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAAN3OZ32CW3EKQW3DMQYPTVUFRBLANCNFSM5DPGZIZA>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
There is a summary in alacritty/alacritty#4763 (comment). The tl;dr is that most problems described in the description of this issue should be fixed. |
Running the
bitmapstates
PoC in various terminals, we see some problems. IMHO we ought get these resolved for 2.4.0, probably pushing it back. =[kitty: the last three states seem wrong
alacritty: 2 and 4 plus one later
xterm: perfect, nice work xterm
contour: two breakages:
i haven't been able to build wezterm in a bit =(
The text was updated successfully, but these errors were encountered: