You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
// If our terminal screen size doesn't match our expected renderer
// size then we skip a frame. This can happen if the terminal state
// is resized between when the renderer mailbox is drained and when
// the state mutex is acquired inside this function.
//
// For some reason this doesn't seem to cause any significant issues
// with flickering while resizing. '\_('-')_/'
if (grid_size.rows!=state.terminal.rowsor
grid_size.columns!=state.terminal.cols)
{
return;
}
In this case, we just stop rendering which makes it look like the terminal is hanging. We should clip the terminal area (if it's bigger than our window) or blank the padding (if it's smaller) in this scenario.
The only known way to trigger this is DECCOLM, so it's low priority since almost nothing uses this. But notably vtetest uses this and it makes it appear like we perform much worse than we do.
The text was updated successfully, but these errors were encountered:
…org#4523)
This significantly improves the robustness of the renderers since it
prevents synchronization issues from causing memory corruption due to
out of bounds read/writes while building the cells.
TODO: when viewport is narrower than renderer grid size, fill blank
margin with bg color- currently appears as black, this only affects
DECCOLM right now, and possibly could create single-frame artefacts
during poorly managed resizes, but it's not ideal regardless.
…org#4523)
This significantly improves the robustness of the renderers since it
prevents synchronization issues from causing memory corruption due to
out of bounds read/writes while building the cells.
TODO: when viewport is narrower than renderer grid size, fill blank
margin with bg color- currently appears as black, this only affects
DECCOLM right now, and possibly could create single-frame artefacts
during poorly managed resizes, but it's not ideal regardless.
Both Metal and OpenGL have something like the following:
ghostty/src/renderer/OpenGL.zig
Lines 749 to 760 in 7eb35d7
In this case, we just stop rendering which makes it look like the terminal is hanging. We should clip the terminal area (if it's bigger than our window) or blank the padding (if it's smaller) in this scenario.
The only known way to trigger this is DECCOLM, so it's low priority since almost nothing uses this. But notably
vtetest
uses this and it makes it appear like we perform much worse than we do.The text was updated successfully, but these errors were encountered: