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

Support GPUs without OpenGL 3.3+ drivers #128

Closed
i336 opened this issue Jan 7, 2017 · 118 comments · Fixed by #5902
Closed

Support GPUs without OpenGL 3.3+ drivers #128

i336 opened this issue Jan 7, 2017 · 118 comments · Fixed by #5902

Comments

@i336
Copy link

@i336 i336 commented Jan 7, 2017

I've been looking for an extremely fast terminal emulator for many years. xterm has unfixed rendering bugs and is slower than molasses. I don't like urxvt's lack of memory management. st uses more memory than xterm (yep!).

Just saw Alacritty on HN and was determined to try it out.

What are your plans for older hardware? I'm currently using a couple of laptops from 2007-2008: a ThinkPad T43 and a ThinkPad T60. Unfortunately the Rust nightly you're currently using is broken on i686 (#126) so I can't test Alacritty on the T43, but it reported the error in the title on my T60 (which has a slightly better GPU, FWIW).

T43 specs:

OpenGL vendor string: X.Org R300 Project
OpenGL renderer string: Gallium 0.4 on ATI RV370
OpenGL version string: 2.1 Mesa 11.0.2
OpenGL shading language version string: 1.20

01:00.0 VGA compatible controller: AMD/ATI [Advanced Micro Devices, Inc.] RV370/M22 [Mobility Radeon X300]

T60 specs:

Extended renderer info (GLX_MESA_query_renderer):
    Vendor: X.Org R300 Project (0x1002)
    Device: ATI RV515 (0x7145)
    Version: 11.2.2
    Accelerated: yes
    Video memory: 128MB

01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] RV515/M54 [Mobility Radeon X1400]

Yep, I realize these are kind of the "oh wow" of GPU land :) but I'm genuinely wondering what the best approach would be to support GPUs like these - I've been pondering making my own terminal emulator for a little while (as well as a 2D engine too, actually), but have absolutely no knowledge of OpenGL, Vulkan, etc.

"It would be impossible" is completely understandable; "it would require a nontrivial architecture redesign" also wouldn't be too surprising.

@jwilm
Copy link
Collaborator

@jwilm jwilm commented Jan 7, 2017

It's not impossible. I took a shortcut using a GL feature GL_ARB_blend_func_extended to make sub-pixel font rendering work properly. There are other ways to achieve this, and I think doing so would be reasonable for the project.

Alacritty's memory footprint is a bit high unfortunately. This will hopefully be improved in the future, but it's still early days in this area.

@ghost
Copy link

@ghost ghost commented Jan 7, 2017

@jwilm Sorry, it happened on my laptop ASUS K501UX too.

╭─mindcat@mindcat-linux-pc ~/.local/share/Steam/SteamApps/common/Ironclad Tactics  
╰─➤  alacritty
device_pixel_ratio: 1
Alacritty encountered an unrecoverable error:

	There was an error initializing the shaders: failed compiling shader: 0:14(10): error: GLSL 3.30 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.40, 1.50, 1.00 ES, 3.00 ES, 3.10 ES, and 3.20 ES
╭─mindcat@mindcat-linux-pc ~/.local/share/Steam/SteamApps/common/Ironclad Tactics  
╰─➤  lspci                                                                                                                                                                   127 ↵
00:00.0 Host bridge: Intel Corporation Skylake Host Bridge/DRAM Registers (rev 08)
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 520 (rev 07)
00:04.0 Signal processing controller: Intel Corporation Skylake Processor Thermal Subsystem (rev 08)
00:14.0 USB controller: Intel Corporation Sunrise Point-LP USB 3.0 xHCI Controller (rev 21)
00:14.2 Signal processing controller: Intel Corporation Sunrise Point-LP Thermal subsystem (rev 21)
00:15.0 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #0 (rev 21)
00:15.1 Signal processing controller: Intel Corporation Sunrise Point-LP Serial IO I2C Controller #1 (rev 21)
00:16.0 Communication controller: Intel Corporation Sunrise Point-LP CSME HECI #1 (rev 21)
00:17.0 RAID bus controller: Intel Corporation 82801 Mobile SATA Controller [RAID mode] (rev 21)
00:1c.0 PCI bridge: Intel Corporation Device 9d10 (rev f1)
00:1c.4 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #5 (rev f1)
00:1c.5 PCI bridge: Intel Corporation Sunrise Point-LP PCI Express Root Port #6 (rev f1)
00:1f.0 ISA bridge: Intel Corporation Sunrise Point-LP LPC Controller (rev 21)
00:1f.2 Memory controller: Intel Corporation Sunrise Point-LP PMC (rev 21)
00:1f.3 Audio device: Intel Corporation Sunrise Point-LP HD Audio (rev 21)
00:1f.4 SMBus: Intel Corporation Sunrise Point-LP SMBus (rev 21)
01:00.0 3D controller: NVIDIA Corporation GM107M [GeForce GTX 950M] (rev ff)
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 10)
03:00.0 Network controller: Intel Corporation Wireless 7265 (rev 59)

If I switch on NVIDIA card, it works fine. Intel HD 520 not.

@ghost

This comment has been minimized.

@darcien
Copy link

@darcien darcien commented Jan 8, 2017

Having the same problem on

00:02.0 VGA compatible controller: Intel Corporation Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller (rev 02)

00:02.1 Display controller: Intel Corporation Atom Processor D4xx/D5xx/N4xx/N5xx Integrated Graphics Controller (rev 02)

glxinfo result:

Extended renderer info (GLX_MESA_query_renderer):
    Vendor: Intel Open Source Technology Center (0x8086)
    Device: Mesa DRI Intel(R) Pineview M  (0xa011)
    Version: 13.0.3
    Accelerated: yes
    Video memory: 384MB
    Unified memory: yes
    Preferred profile: compat (0x2)
    Max core profile version: 0.0
    Max compat profile version: 2.1
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 2.0
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Pineview M 
OpenGL version string: 2.1 Mesa 13.0.3
OpenGL shading language version string: 1.20

EDIT: add glxinfo result

@casept
Copy link

@casept casept commented Jan 8, 2017

Same on a T400 with a GM45 intel GPU.
glxinfo:
https://gist.github.com/casept/576a633eb4f3729e2b4b05c8edfe6ddc

Quite a few laptops of simmilar vintage don't support opengl ES 3.x. Please consider whether you can make this software compatible with those machines. I can't wait to try it out!

@kamalmarhubi
Copy link

@kamalmarhubi kamalmarhubi commented Jan 12, 2017

@jwilm Any hints of what would need to be done to support GLSL 1.20, say?

@jwilm
Copy link
Collaborator

@jwilm jwilm commented Jan 12, 2017

@kamalmarhubi haven't looked into it at all, and I'm not that familiar with GL's evolution to know what won't be available. One thing that's for sure is the extension we are using would not be (see build.rs).

@abale
Copy link

@abale abale commented Jan 25, 2017

Same issue in vmware virtual machines on ubuntu 16.10.

@jmi2k
Copy link

@jmi2k jmi2k commented Jan 30, 2017

I've looked the sources, and it's quite difficult to make it work with GLSL 120. The vertex shader can easily be translated to 120-compatible code by removing layout qualifiers and assigning them before shader linking, and changing in/out with attribute/varying. The fragment shader is more difficult, because glBindFragDataLocation​ was added in GLSL 150 and glBindFragDataLocationIndexed​ in GLSL 330 (functions which would be required to remove layout qualifiers). I think we could do it step by step, and stop when the benefit isn't worth the effort.

@MagaTailor
Copy link
Contributor

@MagaTailor MagaTailor commented Jan 30, 2017

Don't forget about the ARM perspective :)

@poppyschmo
Copy link

@poppyschmo poppyschmo commented Apr 12, 2017

This might be obvious to other users of vendor-supplied drivers, but not keeping tabs on "disputed" files (ones provided by both your dist and the blob installer) can produce this error as a false positive. In my case, these were all shared libs of the libGL* variety. Basically, I'd gotten lazy in updating the "offending-files" manifest needed by my package manager's notification hook. A somewhat related discussion on libglvnd can be found here, though it doesn't focus on the dist-vs-blob clobberfest.

For anyone else potentially affected by this corner case, here's a manicured script(1)-style gist of my attempt at identifying the files and packages involved. BTW, I'm using the latest official Nvidia installer on Fedora 25.

@jcgruenhage
Copy link

@jcgruenhage jcgruenhage commented Jun 18, 2018

Just want to bump this issue, it's kinda sad not to see any progress on this. @jwilm, do you take donations? Making alacritty compatible with my laptop (Thinkpad X200T) would be worth 50$ to me.

@mirh
Copy link

@mirh mirh commented Jun 18, 2018

(which should have a GMA 4500MHD thing)
As with the reminder, I think the TL;DR for this feature request is ES2 (which would include just about anything, even the 3rd gen GMAs mentioned above) or desktop 2.1 (which would cut out especially mobile)

p.s. please some mod remove that overly long OT comment

@jedahan
Copy link
Contributor

@jedahan jedahan commented Jun 30, 2018

On a GTX620/GF119 with the same issue. Launched in April 2012, about 6 years old so maybe I should just get a gtx1030. Would definitely chip in $25 if that would be motivating.

@sirex
Copy link

@sirex sirex commented Sep 3, 2018

Same here:

> alacritty
Alacritty encountered an unrecoverable error:

	There was an error initializing the shaders: failed compiling shader: 0:14(10): error: GLSL 3.30 is not supported. Supported versions are: 1.10, 1.20, and 1.00 ES

> pacman -Q alacritty 
alacritty-git 0.1.0.809.g1adb5cb-1

> lspci -s $(lspci | grep VGA | cut -d' ' -f1) -vnn
00:02.0 VGA compatible controller [0300]: Intel Corporation Core Processor Integrated Graphics Controller [8086:0046] (rev 02) (prog-if 00 [VGA controller])
	Subsystem: Lenovo Core Processor Integrated Graphics Controller [17aa:215a]
	Flags: bus master, fast devsel, latency 0, IRQ 28
	Memory at f2000000 (64-bit, non-prefetchable) [size=4M]
	Memory at d0000000 (64-bit, prefetchable) [size=256M]
	I/O ports at 1800 [size=8]
	[virtual] Expansion ROM at 000c0000 [disabled] [size=128K]
	Capabilities: <access denied>
	Kernel driver in use: i915
	Kernel modules: i915

> glxinfo -B                                       
name of display: :0
display: :0  screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: Intel Open Source Technology Center (0x8086)
    Device: Mesa DRI Intel(R) Ironlake Mobile  (0x46)
    Version: 18.1.7
    Accelerated: yes
    Video memory: 1536MB
    Unified memory: yes
    Preferred profile: compat (0x2)
    Max core profile version: 0.0
    Max compat profile version: 2.1
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 2.0
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Ironlake Mobile 
OpenGL version string: 2.1 Mesa 18.1.7
OpenGL shading language version string: 1.20

OpenGL ES profile version string: OpenGL ES 2.0 Mesa 18.1.7
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 1.0.16

@mirh
Copy link

@mirh mirh commented Sep 4, 2018

Ironlake is pretty unfortunate, but with some faking and tinkering here and there you should get in the neighborhood of opengl 3.2/3.3
(information OT to this issue anyway)

@l29ah
Copy link

@l29ah l29ah commented Oct 11, 2018

What's the earliest Intel GPU that is supported by Alacritty?

@chrisduerr
Copy link
Member

@chrisduerr chrisduerr commented Oct 11, 2018

@l29ah There isn't any specific lowest GPU target for Alacritty. As far as I'm concerned, I'm only testing on my R9 390, so that would be the lowest GPU I can guarantee that works. But obviously much older GPUs should also work just fine.

As long as the OpenGL features Alacritty uses are supported, the GPU should work. So GLGS 3.30+ support should be present.

@l29ah
Copy link

@l29ah l29ah commented Oct 13, 2018

FWIW, it seems working on an Ivy Bridge laptop.

@r3boot
Copy link

@r3boot r3boot commented Nov 16, 2018

This happened to me as well. Running alacritty on a Thinkpad x201 with i915 GPU:

[15:54:57] alita [~] >> alacritty
The `scale_with_dpi` setting has been removed, on X11 the WINIT_HIDPI_FACTOR environment variable can be used instead.
Alacritty encountered an unrecoverable error:

    There was an error initializing the shaders: failed compiling shader: 0:14(10): error: GLSL 3.30 is not supported. Supported versions are: 1.10, 1.20, and 1.00 ES

[15:54:58] alita [~] >> pacman -Q alacritty
alacritty 0.2.3-2
[15:55:14] alita [~] >> lspci -s $(lspci | grep VGA | cut -d' ' -f1) -vnn
00:02.0 VGA compatible controller [0300]: Intel Corporation Core Processor Integrated Graphics Controller [8086:0046] (rev 02) (prog-if 00 [VGA controller])
    Subsystem: Lenovo Core Processor Integrated Graphics Controller [17aa:215a]
    Flags: bus master, fast devsel, latency 0, IRQ 24
    Memory at f2000000 (64-bit, non-prefetchable) [size=4M]
    Memory at d0000000 (64-bit, prefetchable) [size=256M]
    I/O ports at 1800 [size=8]
    [virtual] Expansion ROM at 000c0000 [disabled] [size=128K]
    Capabilities: <access denied>
    Kernel driver in use: i915
    Kernel modules: i915

[15:57:21] alita [~] >> glxinfo -B
name of display: :0
display: :0  screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: Intel Open Source Technology Center (0x8086)
    Device: Mesa DRI Intel(R) Ironlake Mobile  (0x46)
    Version: 18.2.1
    Accelerated: yes
    Video memory: 1536MB
    Unified memory: yes
    Preferred profile: compat (0x2)
    Max core profile version: 0.0
    Max compat profile version: 2.1
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 2.0
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Ironlake Mobile
OpenGL version string: 2.1 Mesa 18.2.1
OpenGL shading language version string: 1.20

OpenGL ES profile version string: OpenGL ES 2.0 Mesa 18.2.1
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 1.0.16

@mirh
Copy link

@mirh mirh commented Nov 16, 2018

Literally the same gpu posted 4 comments above.

@crodjer
Copy link

@crodjer crodjer commented Jul 7, 2021

Just found this that seems to start alacritty. Not sure of the implications of that variable thou: #3624

I am now doing the same while launching alacritty from sway:

bindsym $mod+Return exec LIBGL_ALWAYS_SOFTWARE=1 alacritty

The performance is sufficient for now.

@metacortexplus
Copy link

@metacortexplus metacortexplus commented Jul 9, 2021

So, how to make it work?

➜ glxinfo | grep OpenGL 
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Mobile Intel® GM45 Express Chipset (CTG)
OpenGL version string: 2.1 Mesa 21.1.3
OpenGL shading language version string: 1.20
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 2.0 Mesa 21.1.3
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 1.0.16
OpenGL ES profile extensions:

@danboid
Copy link

@danboid danboid commented Jul 12, 2021

Thanks @crodjer !

I was unable to run alacritty on my X96 Air Amlogic based TV box running Manjaro without that variable being set.

I have added that to the Arch wiki:

https://wiki.archlinux.org/title/Sway#Terminal

@mirh
Copy link

@mirh mirh commented Jul 12, 2021

The panfrost driver still doesn't support geometry shader.. maybe you can get away with it if you fake opengl 3.3 support, otherwise you'll have to wait or try #5168

@amjoseph-nixpkgs
Copy link

@amjoseph-nixpkgs amjoseph-nixpkgs commented Jul 14, 2021

The panfrost driver still doesn't support geometry shader.. maybe you can get away with it if you fake opengl 3.3 support, otherwise you'll have to wait or try #5168

I have been using alacritty with panfrost (rk3399-gru-kevin laptop), kernel 5.10.10, sway, and Debian's libgl1-mesa-dri 20.3.4-1 with PAN_MESA_DEBUG=gl3

It works great, except the startup time is agonizing. Often over 1200ms and never less than 700ms for "alacritty -e /bin/false".

Startup time is important for a terminal! Several times a day I find myself pressing the sway keybinding to open a new terminal, start typing, and find that a bunch of keystrokes got dropped because the terminal couldn't open fast enough.

I generated some flamegraphs and most of the time is spent by Mesa doing dynamic library loading (libdl.so stuff).

Honestly I can't blame Mesa here. The vast majority of 3D-accelerated software is fairly heavyweight programs (games, browsers, etc) that you don't start up multiple times per hour during ordinary workflow. It isn't really reasonable for alacritty to say "this is Mesa's problem, they should load faster". Terminal programs are not really a top-five use case for 3D acceleration. I certainly enjoy having a 3D-accelerated terminal, but realistically 95% of computer users do not care about that.

On the other hand, alacritty policy seems hostile to an mlterm/MacOS-style approach where you run (as few as) one process per compositor, and that process can open multiple terminal windows. I suspect this is an upstream limitation, coming from the Rust standard library's attitude that it's okay to kill the whole process due to unexpected error cases (like memory allocation failures). There are a lot of hidden land mines in the Rust standard library where an unexpected error condition basically leads to exit(-1).

The Linux devs had this debate with the Rust folks as a condition of being able to use Rust code in the kernel, and the end result was that Rust on Linux uses the Rust compiler, but doesn't use the Rust standard library. Unfortunately alacritty is definitely not heavyweight enough to fork the Rust standard library like Linux did :)

I managed to cut the startup time in half (it used to be over 2000ms!) by eliminating a dulplicate GL initialization. Attached patch is what I use.

0001-eliminate-unnecessary-double-call-to-create_gl_windo.patch.gz

@autumnontape
Copy link

@autumnontape autumnontape commented Jul 14, 2021

Panfrost doesn't support OpenGL 3.3, but it does support all the features alacritty requires beyond 3.1 as extensions. I built a patched version of alacritty that uses those extensions today, and it runs fine on my RK3288-based Chromebook with no special Mesa envvars:

alacritty on Panfrost 21.1.4, showing glxinfo and neofetch

Here's my patch:

0001-use-OpenGL-3.1-with-extensions-instead-of-OpenGL-3.3.patch.gz

@skyfaller
Copy link

@skyfaller skyfaller commented Sep 19, 2021

@autumnontape Thank you, your patch works for me on my Pinebook Pro running Manjaro ARM.

@kchibisov kchibisov self-assigned this Feb 18, 2022
kchibisov added a commit to kchibisov/alacritty that referenced this issue Feb 21, 2022
This commit adds a fallback GLES2 renderer for platforms not supporting
OpenGL 3.3 providing ability to run alacritty on those. While its
performance is slightly slower than glsl3 version it's way faster than
software rendering with sofware emulated GL (e.g. llvmpipe), since
that's what alacritty used on platforms not supporting required OpenGL
version.

Fixes alacritty#128.
kchibisov added a commit to kchibisov/alacritty that referenced this issue Feb 22, 2022
This commit adds a fallback GLES2 renderer for platforms not supporting
OpenGL 3.3 providing ability to run alacritty on those. While its
performance is slightly slower than glsl3 version it's way faster than
software rendering with sofware emulated GL (e.g. llvmpipe), since
that's what alacritty used on platforms not supporting required OpenGL
version.

Fixes alacritty#128.
kchibisov added a commit to kchibisov/alacritty that referenced this issue Feb 22, 2022
This commit adds a fallback GLES2 renderer for platforms not supporting
OpenGL 3.3 providing ability to run alacritty on those. While its
performance is slightly slower than glsl3 version it's way faster than
software rendering with sofware emulated GL (e.g. llvmpipe), since
that's what alacritty used on platforms not supporting required OpenGL
version.

Fixes alacritty#128.
kchibisov added a commit to kchibisov/alacritty that referenced this issue Feb 22, 2022
This commit adds a fallback GLES2 renderer for platforms not supporting
OpenGL 3.3 providing ability to run alacritty on those. While its
performance is slightly slower than glsl3 version it's way faster than
software rendering with sofware emulated GL (e.g. llvmpipe), since
that's what alacritty used on platforms not supporting required OpenGL
version.

Fixes alacritty#128.
kchibisov added a commit to kchibisov/alacritty that referenced this issue Feb 22, 2022
This commit adds a fallback GLES2 renderer for platforms not supporting
OpenGL 3.3 providing ability to run alacritty on those. While its
performance is slightly slower than glsl3 version it's way faster than
software rendering with sofware emulated GL (e.g. llvmpipe), since
that's what alacritty used on platforms not supporting required OpenGL
version.

Fixes alacritty#128.
kchibisov added a commit to kchibisov/alacritty that referenced this issue Feb 22, 2022
This commit adds a fallback GLES2 renderer for platforms not supporting
OpenGL 3.3 providing ability to run alacritty on those. While its
performance is slightly slower than glsl3 version it's way faster than
software rendering with sofware emulated GL (e.g. llvmpipe), since
that's what alacritty used on platforms not supporting required OpenGL
version.

Fixes alacritty#128.
kchibisov added a commit to kchibisov/alacritty that referenced this issue Feb 22, 2022
This commit adds a fallback GLES2 renderer for platforms not supporting
OpenGL 3.3 providing ability to run alacritty on those. While its
performance is slightly slower than glsl3 version it's way faster than
software rendering with sofware emulated GL (e.g. llvmpipe), since
that's what alacritty used on platforms not supporting required OpenGL
version.

Fixes alacritty#128.
kchibisov added a commit to kchibisov/alacritty that referenced this issue Feb 23, 2022
This commit adds a fallback GLES2 renderer for platforms not supporting
OpenGL 3.3 providing ability to run alacritty on those. While its
performance is slightly slower than glsl3 version it's way faster than
software rendering with sofware emulated GL (e.g. llvmpipe), since
that's what alacritty used on platforms not supporting required OpenGL
version.

Fixes alacritty#128.
kchibisov added a commit to kchibisov/alacritty that referenced this issue Feb 27, 2022
This commit adds a fallback GLES2 renderer for platforms not supporting
OpenGL 3.3 providing ability to run alacritty on those. While its
performance is slightly slower than glsl3 version it's way faster than
software rendering with sofware emulated GL (e.g. llvmpipe), since
that's what alacritty used on platforms not supporting required OpenGL
version.

Fixes alacritty#128.
kchibisov added a commit to kchibisov/alacritty that referenced this issue Feb 28, 2022
This commit adds a fallback GLES2 renderer for platforms not supporting
OpenGL 3.3 providing ability to run Alacritty on those. While its
performance is slightly slower than glsl3 version it's way faster than
software rendering with software emulated GL (e.g. llvmpipe), since
that's what Alacritty used on platforms not supporting required OpenGL
version.

Fixes alacritty#128.
chrisduerr added a commit that referenced this issue Mar 2, 2022
Currently Alacritty only works on hardware which supports OpenGL 3.3 or
more, which can become problematic with older devices. This patch adds a
new GLES2 renderer, since it is much more widely supported, especially
on weaker hardware like phones or a Raspberry Pi.

While the GLES2 renderer is slower than the OpenGL 3.3+ version, it is
still significantly faster than software rendering. However because of
this performance difference it is only used when necessary and there
should be no difference for machines supporting OpenGL 3.3+.

The two renderers are largely independent and separated in the
`renderer/text/glsl3` and `renderer/text/gles2` modules. Separate
shaders are also required for text rendering. The rectangle rendering
for underlines and the visual bell works identically for both versions,
but does have some version-specific shader code.

Fixes #128.

Co-authored-by: Christian Duerr <contact@christianduerr.com>
@kchibisov kchibisov unpinned this issue Mar 2, 2022
ezhang7423 added a commit to ezhang7423/alacritty that referenced this issue Jun 14, 2022
commit ce29942
Merge: 7f4ceee d9c6c8d
Author: ezhang7423 <ezhang7423@student.palomar.edu>
Date:   Tue Jun 14 12:59:09 2022 -0700

    Merge branch 'master' of github.com:alacritty/alacritty

commit d9c6c8d
Author: Ally Tiritoglu <ally.tirit@gmail.com>
Date:   Fri Jun 10 09:28:48 2022 -0700

    Update SGR escape sequence support

commit fdcf99b
Author: jeremycostanzo <56163564+jeremycostanzo@users.noreply.github.com>
Date:   Thu Jun 9 23:08:18 2022 +0200

    Add vi action to center view around vi cursor

commit 90552e3
Author: Kirill Chibisov <contact@kchibisov.com>
Date:   Thu Jun 9 19:31:08 2022 +0300

    Fix flickering during resize on Wayland

    This also fixes an issue of windows not being rendered while resizing.

    Fixes alacritty#6069.

commit 6dc670c
Author: Vasily Khoruzhick <vasily.khoruzhick@gmail.com>
Date:   Wed Jun 8 02:02:57 2022 -0700

    Support dual source blending in GLES2 renderer

    GLES2 has GL_EXT_blend_func_extended extension that enables
    dual-source blending, so essentially we can reuse fragment shader
    from GLSL3 renderer and do 1 rendering pass instead of 3 for the
    text.

    Co-authored-by: Kirill Chibisov <contact@kchibisov.com>
    Co-authored-by: Christian Duerr <contact@christianduerr.com>

commit 29b1ff5
Author: Kirill Chibisov <contact@kchibisov.com>
Date:   Tue Jun 7 11:09:03 2022 +0300

    Fix old vi cursor not being properly damaged

    Co-authored-by: Christian Duerr <contact@christianduerr.com>

commit bb7b120
Author: Kirill Chibisov <contact@kchibisov.com>
Date:   Mon Jun 6 11:00:39 2022 +0300

    Fix crash when damaging off-screen hint

    Co-authored-by: Christian Duerr <contact@christianduerr.com>

commit 56a69c0
Author: Yuri Astrakhan <yuriastrakhan@gmail.com>
Date:   Wed Jun 1 21:22:50 2022 -0400

    Fix a few minor clippy lints

commit e20541a
Author: André Kugland <kugland@gmail.com>
Date:   Wed Jun 1 03:33:08 2022 +0000

    Fix DEC Special Character Set (Line drawing)

    This patch resolves some mapping issues with the line drawing character
    set where characters like linefeed were incorrectly mapped to their
    proper character representation rather than the codepoint of their
    identification glpyh.

    Co-authored-by: Christian Duerr <contact@christianduerr.com>

commit 63ef6c9
Author: Kirill Chibisov <contact@kchibisov.com>
Date:   Fri May 27 00:30:33 2022 +0300

    Fix Vi cursor not being damaged on scroll

    There's no need to damage intermediate Vi mode cursor points, since it
    can't change the terminal content meaning that only the previous
    and current vi cursor's viewport points matter to damage it properly.

commit 3bfc4c2
Author: Kirill Chibisov <contact@kchibisov.com>
Date:   Mon May 23 03:35:09 2022 +0300

    Don't inherit `--command` for `SpawnNewInstance`

    Fixes alacritty#6060.

commit c10888b
Author: a5ob7r <12132068+a5ob7r@users.noreply.github.com>
Date:   Mon May 23 09:01:46 2022 +0900

    Fix selection change after leaving vi-mode

    This patch fixes that the right point of the selection range moves to
    another point when leaves vi-mode with a selection by ToggleViMode.
    The cause is that always moves a vi-mode cursor to a search origin
    whether or not the current search is active.

    This problem is a regression which is introduced by alacritty#5945.

commit 394b3ff
Author: Andrés Mejía <andres@mejibyte.com>
Date:   Sun May 22 07:12:57 2022 -0500

    Fix inaccurate method documentation

commit 9f8c5c4
Author: Kirill Chibisov <contact@kchibisov.com>
Date:   Fri May 20 22:23:55 2022 +0300

    Enable damage tracking only on Wayland

    Other platforms don't have such concepts in general or have them
    via different interfaces not related to EGL.

    This commit also resolves some minor clippy issues.

    Fixes alacritty#6051.

    Co-authored-by: Christian Duerr <contact@christianduerr.com>

commit e319ca9
Author: algon <algon.0320@gmail.com>
Date:   Fri May 20 19:08:25 2022 +0900

    Fix builtin glyphs for U+2567 and U+2568

commit 5c51d52
Author: Kirill Chibisov <contact@kchibisov.com>
Date:   Sun May 8 11:24:51 2022 +0300

    Fix gap in builtin box drawing

    Builtin box drawing glyphs in range from '\u{2580}' to `\u{2587}`
    could have gap due to missing rounding. Previously height was rounded,
    however not the `y` offset. This commit fixes it.

commit ad3ebba
Author: a5ob7r <12132068+a5ob7r@users.noreply.github.com>
Date:   Fri Apr 29 10:24:35 2022 +0900

    Remove unnecessary commas in config keybindings

commit 9bbb296
Author: mahkoh <mahkoh@users.noreply.github.com>
Date:   Sat Apr 16 20:39:26 2022 +0200

    Fix selection copy without button release

    To prevent the current selection clipboard from being overwritten right
    before pasting, text is no longer copied solely because the user
    scrolled the scrollback buffer.

    The selection also isn't copied when a mouse button other than LMB/RMB
    are released, since these are the only ones capable of modifying the
    selection range.

    This should prevent issues where the selection of the user gets
    unexpectedly overwritten, especially in scenarios where the user is
    currently in the process of pasting something into Alacritty.

    Signed-off-by: Julian Orth <ju.orth@gmail.com>

commit d5cad2a
Author: kumattau <kumattau@gmail.com>
Date:   Sat Apr 16 22:39:14 2022 +0900

    Fix cell_height of impl From<SizeInfo<f32>> for WindowSize

commit 6737104
Author: Kirill Chibisov <contact@kchibisov.com>
Date:   Wed Apr 6 13:06:39 2022 +0300

    Extract `SizeInfo` from alacritty_terminal

    The `SizeInfo` is a SizeInfo used for rendering, which contains
    information about padding, and such, however all the terminal need is
    number of visible lines and columns.

commit 851dbc3
Author: Kirill Chibisov <contact@kchibisov.com>
Date:   Sun Apr 3 23:08:44 2022 +0300

    Disallow OSC 52 for unfocused window

    This leads to issues on macOS, since if we store clipboard at the same
    time it could error out. Also, on e.g. Wayland the clipboard store for
    unfocused window won't work anyway.

commit 49d64fb
Author: Christian Duerr <contact@christianduerr.com>
Date:   Fri Apr 1 01:10:12 2022 +0200

    Fix OSC 4 color response format

    The commit 60ef17e introduced support for the color query response
    escape for OSC 4, however it did omit the `4;` prefix and started the
    OSC with just the color index.

    This patch fixes this bug and correctly responds to queries with full
    OSC 4 format, including prefix plus color index.

    Fixes alacritty#5981.

commit b16fe12
Author: Kirill Chibisov <contact@kchibisov.com>
Date:   Fri Mar 25 15:02:44 2022 +0300

    Reset blinking on search bindings in Vi mode

    The Vi cursor is used as the current match indicator, however when
    it's blinking during search jumps the current match is invisible.

    Fixes alacritty#5934.

commit e7bb6c2
Author: Kirill Chibisov <contact@kchibisov.com>
Date:   Thu Mar 24 12:13:30 2022 +0300

    Persist OpenGL context creation flags

    This commit persists OpenGL context creation flags from previous window
    build attempts saving time in multiwindow context.

    It also creates window as srgb by default, since it's what Alacritty is
    rendering in. For reference [1] and [2]. Moreover the fallback for 10
    bit colors is also added.

    [1] - alacritty#4939 and
    [2] - alacritty#3756.

    Fixes alacritty#4703.

commit f4bdf5f
Author: Kirill Chibisov <contact@kchibisov.com>
Date:   Wed Mar 16 19:27:55 2022 +0300

    Add colored underline support

    This commit adds support for colored underline and refines the dynamic
    extra storage. The extra storage now is using `Arc` making cloning it way
    faster compared to `Box` approach which scales really well when it comes
    to cloning in `Term::write_at_cursor`, since cloning `Arc` is constant
    time.

    Fixes alacritty#4142.

commit 589c1e9
Author: Kirill Chibisov <contact@kchibisov.com>
Date:   Mon Mar 14 08:52:53 2022 +0300

    Use center of the pixel when aligning undercurl

    Since `x` position in rect shader represents left side of the pixel we
    should use the center of it when dealing with contiguous functions.

commit 7312f33
Author: Kirill Chibisov <contact@kchibisov.com>
Date:   Fri Mar 11 12:34:15 2022 +0300

    Fix `font.glyph_offset` not live reloading

    Fixes alacritty#5944.

commit 0965773
Author: Christian Duerr <contact@christianduerr.com>
Date:   Thu Mar 10 20:45:20 2022 +0100

    Fix crash when searching during reset

    This fixes a crash which occurs when the terminal is reset while
    searching, due to the vi mode cursor being outside of the visible area.

    This also fixes an issue where the search state reset would incorrectly
    clamp the vi mode cursor to the grid, rather than the absolute viewport
    position.

    While this fix does resolve all crashes when searching while running
    `cat /dev/urandom`, it does raise the question if manually clamping the
    vi mode cursor in every location where it is modified is the right
    choice.

    A follow-up to provide a safer API which guarantees correct modification
    of the vi mode cursor location is probably a good idea.

    Fixes alacritty#5942.

commit a69c3c4
Author: Kirill Chibisov <contact@kchibisov.com>
Date:   Thu Mar 10 15:25:01 2022 +0300

    Fix line indicator damage computation

    The starting point of damage should be computed from the right side
    of the terminal, not from the starting point of line indicator.

commit dbccd7e
Author: Kirill Chibisov <contact@kchibisov.com>
Date:   Sun Mar 6 19:34:12 2022 +0300

    Use round instead of ceil for line position

    Ceiling line position results in strikeout line being lower than
    it should.

commit d8113dc
Author: Kirill Chibisov <contact@kchibisov.com>
Date:   Wed Mar 2 22:35:19 2022 +0300

    Fix gap calculation for dashed underline

commit 1880522
Author: Kirill Chibisov <contact@kchibisov.com>
Date:   Wed Mar 2 13:05:12 2022 +0300

    Add fallback GLES2 renderer

    Currently Alacritty only works on hardware which supports OpenGL 3.3 or
    more, which can become problematic with older devices. This patch adds a
    new GLES2 renderer, since it is much more widely supported, especially
    on weaker hardware like phones or a Raspberry Pi.

    While the GLES2 renderer is slower than the OpenGL 3.3+ version, it is
    still significantly faster than software rendering. However because of
    this performance difference it is only used when necessary and there
    should be no difference for machines supporting OpenGL 3.3+.

    The two renderers are largely independent and separated in the
    `renderer/text/glsl3` and `renderer/text/gles2` modules. Separate
    shaders are also required for text rendering. The rectangle rendering
    for underlines and the visual bell works identically for both versions,
    but does have some version-specific shader code.

    Fixes alacritty#128.

    Co-authored-by: Christian Duerr <contact@christianduerr.com>

commit 00383ae
Author: Chris Copeland <chris@chrisnc.net>
Date:   Sun Feb 27 10:35:23 2022 -0800

    Add `ToggleMaximized` key binding action

commit 13b6248
Author: Christian Duerr <contact@christianduerr.com>
Date:   Thu Feb 24 05:17:25 2022 +0100

    Add version 0.10.1 to changelog

commit 8ea6c3b
Author: nibon7 <nibon7@163.com>
Date:   Tue Feb 22 21:08:49 2022 +0800

    Omit git version hash when git command fails

commit 36e981a
Author: Kirill Chibisov <contact@kchibisov.com>
Date:   Tue Feb 22 13:57:04 2022 +0300

    Don't use 'origin_upper_left' in rect shaders

commit 4734b2b
Author: Kirill Chibisov <contact@kchibisov.com>
Date:   Fri Feb 18 01:27:10 2022 +0300

    Don't load font twice during display creation

    This commit finishes the effort from a64553b to avoid reloading font
    twice during startup, since the original issue is with getting font
    metrics without building the glyph cache.

commit aaab88c
Author: mahkoh <mahkoh@users.noreply.github.com>
Date:   Wed Feb 16 22:15:50 2022 +0100

    Account for absolute WAYLAND_DISPLAY paths

    If WAYLAND_DISPLAY contains a '/', we have to replace with with another
    character before using WAYLAND_DISPLAY as a path component.

commit a64553b
Author: Greg Depoire--Ferrer <56923875+greg904@users.noreply.github.com>
Date:   Wed Feb 16 20:57:46 2022 +0000

    Reuse Rasterizer in Display::new

    Instead of creating a `Rasterizer` to guess the window dimensions,
    dropping it and then creating a new one for the glyph cache, reuse the
    same `Rasterizer`.

    This prevents the font from being loaded twice during startup.

commit ed5dbc1
Author: Kirill Chibisov <contact@kchibisov.com>
Date:   Mon Feb 14 19:10:13 2022 +0300

    Add support for dashed and dotted underlines

    This finishes implementation of underline styles provided by
    `CSI 4 : [1-5] m` escape sequence.

commit 774eb03
Author: Kirill Chibisov <contact@kchibisov.com>
Date:   Fri Feb 11 02:04:50 2022 +0300

    Clear damage rects right after drawing

    Since we could queue damage before we get into the actual rendering
    we should clear it after drawing not before.

commit 933030e
Author: Kirill Chibisov <contact@kchibisov.com>
Date:   Thu Feb 10 23:42:33 2022 +0300

    Fix terminal not being damage when only font size changed

    If font size changes however the cells stay the same the terminal won't
    be damaged, since it wasn't resized, however the visual change happened,
    thus the entire screen should be damaged.

commit c35ccaf
Author: Kirill Chibisov <contact@kchibisov.com>
Date:   Thu Feb 10 15:29:03 2022 +0300

    Make undercurls thickness close to underlines

    Fixes alacritty#5873.

commit eefce4e
Author: Christian Duerr <contact@christianduerr.com>
Date:   Thu Feb 10 12:09:23 2022 +0100

    Add note about publishing RCs to crates.io

    We've been testing out the pre-release feature of crates.io and there
    haven't been any major issues. So this updates the documentation to
    recommend publishing to crates.io even before the official release.

commit d1608dd
Author: Christian Duerr <contact@christianduerr.com>
Date:   Wed Feb 9 21:41:54 2022 +0100

    Add version to info log

commit 8afeb2c
Author: Kirill Chibisov <contact@kchibisov.com>
Date:   Wed Feb 9 19:25:36 2022 +0300

    Fix warnings when building only with Wayland feature

    This commit also makes our CI fail hard when warning encountered when
    building only for either Wayland or X11.

commit 59f16f6
Author: Kirill Chibisov <contact@kchibisov.com>
Date:   Wed Feb 9 17:41:57 2022 +0300

    Fix alpha when using `colors.transparent_background_colors`

    The alpha is expected to be premultiplied from the text shader, so
    we should apply it to the background color.

commit 73c3dd8
Author: Kirill Chibisov <contact@kchibisov.com>
Date:   Tue Feb 8 20:47:31 2022 +0300

    Add support for drawing undercurls

    Fixes alacritty#1628.

commit 7263d22
Author: sckzor <sckzor@protonmail.com>
Date:   Tue Feb 8 06:43:27 2022 -0500

    Add instructions for building without X11/Wayland

commit c2959f4
Author: Kirill Chibisov <contact@kchibisov.com>
Date:   Mon Feb 7 22:18:51 2022 +0300

    Fix alacritty_terminal not emitting damage on color change

commit 998250f
Author: Thomas Churchman <thomas@kepow.org>
Date:   Thu Feb 3 13:04:46 2022 +0100

    Fix renderable_cursor method documentation

    This method no longer returns an `Option` since alacritty#5773.

    Co-authored-by: Kirill Chibisov <contact@kchibisov.com>

commit d22cd74
Author: Kirill Chibisov <contact@kchibisov.com>
Date:   Thu Feb 3 03:22:28 2022 +0300

    Fix builtin font block elements going invisible

commit 4bf8f37
Author: Christian Duerr <contact@christianduerr.com>
Date:   Wed Feb 2 20:23:29 2022 +0100

    Fix repeated permission requests on M1 macs

    This adds a codesign step to our makefile build which should
    automatically sign the application and resolve the issues on M1 macs
    where Alacritty constantly requests permissions.

    Since self-signing does still seem to fix this issue after sharing the
    resulting `Alacritty.app` with other M1 macs, the binary produced by our
    release build should also be fixed automatically.

    Fixes alacritty#5840.

commit 40b5e17
Author: Kirill Chibisov <contact@kchibisov.com>
Date:   Wed Feb 2 20:20:14 2022 +0300

    Fix terminal damage after leaving Vi mode

    This fixes an issue when search results were not damaged when leaving Vi
    mode.

commit 8f1abe1
Author: Kirill Chibisov <contact@kchibisov.com>
Date:   Wed Feb 2 00:12:58 2022 +0300

    Add damage tracking and reporting to compatible compositors

    This allows compositors to only process damaged (that is, updated)
    regions of our window buffer, which for larger window sizes (think 4k)
    should significantly reduce compositing workload under compositors that
    support/honor it, which is good for performance, battery life and lower
    latency over remote connections like VNC.

    On Wayland, clients are expected to always report correct damage, so
    this makes us a good citizen there. It can also aid remote desktop
    (waypipe, rdp, vnc, ...) and other types of screencopy by having damage
    bubble up correctly.

    Fixes alacritty#3186.

commit d58dff1
Author: oxalica <oxalicc@pm.me>
Date:   Mon Jan 31 04:57:25 2022 +0800

    Clean up and abstract shader creation code

    Co-authored-by: Christian Duerr <contact@christianduerr.com>

commit 5459492
Author: Kirill Chibisov <contact@kchibisov.com>
Date:   Sun Jan 30 15:46:02 2022 +0300

    Use cell width to compute builtin font thickness

    While using underline thickness could sound logical to draw other
    lines most fonts don't make underlines thick compared to cell bounding
    box if you increase font size. So instead we're using cell width to
    scale builtin font nicely.

    This commit also adjusts arcs drawing and alignment.

    Fixes alacritty#5826.
    Fixes alacritty#5821.

commit efae2cc
Author: Kirill Chibisov <contact@kchibisov.com>
Date:   Sun Jan 30 09:36:35 2022 +0300

    Log used display server on Linux/BSD

    This also fixes a bug where the welcome log message wasn't logged.

commit f6651a9
Author: Kirill Chibisov <contact@kchibisov.com>
Date:   Sat Jan 29 23:06:44 2022 +0300

    Account for font.offset and glyph.offset in built-in font

    This commit takes into account `font.offset` and `font.glyph_offset`
    when generating built-in font.

commit 094c2c9
Author: zandr <7629614+deathlyfrantic@users.noreply.github.com>
Date:   Sat Jan 29 14:50:44 2022 -0500

    Add option to control built-in box drawing chars

    This commit adds the config `font.builtin_box_drawing` option to
    control built-in font, which is enabled by default.

commit d1deff9
Author: Christian Duerr <contact@christianduerr.com>
Date:   Sun Jan 23 15:22:23 2022 +0100

    Remove outdated changelog URLs

    Alacritty's website (https://alacritty.org) is now advertised publicly
    on the GitHub page. Since that includes the old 0.3.0 and 0.5.0
    changelogs, it's not necessary to point them out separately anymore.

commit 9f6b49c
Author: Christian Duerr <contact@christianduerr.com>
Date:   Sat Jan 22 23:48:44 2022 +0100

    Fix logfile overwriting existing files

commit 4e91e99
Author: Ömer Sinan Ağacan <omeragacan@gmail.com>
Date:   Fri Jan 21 16:45:37 2022 +0300

    Fix typo in SizeInfo padding_y rustdoc

commit 14c22b1
Author: Kirill Chibisov <contact@kchibisov.com>
Date:   Fri Jan 21 12:48:15 2022 +0300

    Reset cursor blinking on ToggleViMode

    Fixes alacritty#4468.

commit c4d610d
Author: DaftMouse <daftmouse@protonmail.com>
Date:   Thu Jan 20 20:57:58 2022 -0300

    Fix OSC 104 with empty second parameter

    This fixes a bug where using OSC 104 without parameters but
    with a trailling semicolon (e.g. '\e]104;\e\\') would not be handled.

    Fixes alacritty#5542.

commit 60ef17e
Author: DaftMouse <daftmouse@protonmail.com>
Date:   Sat Jan 15 00:35:05 2022 -0300

    Add ´?´ support to OSC 4

commit e38f51c
Author: Christian Duerr <contact@christianduerr.com>
Date:   Thu Jan 13 06:36:22 2022 +0100

    Remove time dependency

    In 7398e9f a regression was introduced which causes Alacritty to crash
    on startup since wayland has a keyboard repeat rate thread started
    before our logger is initialized.

    Since the latest version of time was rather inconvenient to use anyway
    and there is no nice solution for this issue other than downgrading the
    `time` version again, the time since startup is now logged instead of
    the local time.

    This should still provide all the relevant information, while getting
    rid of an unnecessary dependency. While it would be possible to also
    print the delta between log messages, this can be trivially computed so
    it has been omitted to skip adding another `Mutex` to the `Logger`
    struct.

commit 7398e9f
Author: Christian Duerr <contact@christianduerr.com>
Date:   Thu Jan 13 03:23:37 2022 +0100

    Fix macOS release CI

    Since the CI machine is amd64, it is not possible to just execute the
    aarch64 binary to test the application. So instead of running `cargo
    test`, we just use `cargo build` instead.

    Building on the non-release CI instead of just checking also allows us
    to make sure linking works properly before a release fails due to it.

commit 1c9fa73
Author: James McCoy <jamessan@jamessan.com>
Date:   Wed Jan 12 20:53:03 2022 -0500

    Update time crate to 0.3.5

    Due to unsoundness issues (c.f., time-rs/time#380 and time-rs/time#293),
    determining the local timezone can only happen while single-threaded.

    Determine the timezone early in startup and apply the offset to the UTC
    timestamp before formatting.

commit fd7573d
Author: Kirill Chibisov <contact@kchibisov.com>
Date:   Tue Jan 11 23:58:50 2022 +0300

    Don't blink when cursor is hidden

    This prevents unnecessary redraws when the terminal is idle, cursor is
    hidden and blinking is enabled.

commit 01c1cc1
Author: Kirill Chibisov <contact@kchibisov.com>
Date:   Tue Jan 11 23:41:57 2022 +0300

    Use `with_position` instead of `set_outer_position`

    This uses `with_position` method on a `WindowBuilder` instead of setting
    window position on the created window later on.

commit a8c8c57
Author: Kirill Chibisov <contact@kchibisov.com>
Date:   Tue Jan 11 16:22:30 2022 +0300

    Fix use-after-free when formatting Wayland protocol error

commit 5e39ea9
Author: Kirill Chibisov <contact@kchibisov.com>
Date:   Tue Jan 11 00:56:49 2022 +0300

    Fix block selection expansion with Ctrl + RMB

    When 'ExpandSelection' binding was added only default binding for
    RightClick was added, however to expand block selection holding control
    when doing a click is required, so this commit adds a binding for
    'RMB + Control'.

commit ed35d03
Author: Christian Duerr <contact@christianduerr.com>
Date:   Sat Jan 8 21:24:42 2022 +0100

    Fix fullwidth char regex search infinite loop

    This resolves an issue where the regex search could loop indefinitely
    when the end point was defined in a location containing a fullwidth
    character, thus skipping over the end before termination.

    Fixes alacritty#5753.

commit 5aa8046
Author: a5ob7r <12132068+a5ob7r@users.noreply.github.com>
Date:   Fri Jan 7 18:03:15 2022 +0900

    Fix last column block selection

    This fixes a regression introduced in 8e58409, where block selections
    containing the last cell would have the trailing newline stripped and be
    joined into one long line on copy.

commit 50c7c2b
Author: David <wendajiang93@163.com>
Date:   Thu Jan 6 11:31:45 2022 +0800

    Fix macOS IME regression

    Fixes 5669.

commit db83902
Author: Kirill Chibisov <contact@kchibisov.com>
Date:   Thu Jan 6 02:13:55 2022 +0300

    Fix title setting via IPC when dynamic_title is enabled

commit f717710
Author: Kirill Chibisov <contact@kchibisov.com>
Date:   Thu Jan 6 00:45:06 2022 +0300

    Use builtin font for box drawing unicode characters

    This commit adds hand rolled drawing of unicode box drawing[1] and
    block elements[2] from ranges U+2500 up to U+259f. While using system
    font for such characters will look better most of the time, the
    characters tend to overlap or not align, so providing builtin font is
    the lesser evil here.

    [1] - https://www.unicode.org/charts/PDF/U2500.pdf
    [2] - https://www.unicode.org/charts/PDF/U2580.pdf

    Fixes alacritty#5485.

commit 2057ac2
Author: a5ob7r <12132068+a5ob7r@users.noreply.github.com>
Date:   Wed Jan 5 06:46:20 2022 +0900

    Trim \n from hints/semantic-/simple selection

    Before this patch a hint regex ending in the last column would append a
    newline, despite this newline being "invisible" to the user. To match
    the expected behavior, newlines are trimmed from regex hint matches.

    To ensure consistency the simple and semantic selection also do not
    include a newline at the end of the copied text anymore.

    Fixes alacritty#5697.

commit 437f42f
Author: Christian Duerr <contact@christianduerr.com>
Date:   Tue Jan 4 19:25:26 2022 +0100

    Migrate from structopt to clap 3

commit 75c14b9
Author: Kirill Chibisov <contact@kchibisov.com>
Date:   Tue Jan 4 01:20:56 2022 +0300

    Update wayland-client to v0.29.3

    This should bring support for latest wayland.xml.
    It also updates some other dependencies which are used by alacritty.

    Fixes alacritty#5743.

commit ce59fa4
Author: Kirill Chibisov <contact@kchibisov.com>
Date:   Mon Jan 3 21:55:22 2022 +0300

    Add title/class CLI parameters to create-window

    This adds the ability to pass title and class over IPC via the
    create-window subcommand, so users can run only one instance for windows
    of different spurposes in the window managers of their choice.

commit 7f4ceee
Author: ezhang7423 <ezhang7423@student.palomar.edu>
Date:   Sat Jan 1 03:11:27 2022 -0800

    rm println

commit 182468c
Author: ezhang7423 <ezhang7423@student.palomar.edu>
Date:   Sat Jan 1 03:10:31 2022 -0800

    huh

commit 45c9451
Author: ezhang7423 <ezhang7423@student.palomar.edu>
Date:   Sat Jan 1 03:01:20 2022 -0800

    fin
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging a pull request may close this issue.