Programming Leftovers
-
The Story Behind Mesa LLVMpipe ORCJIT Upstreaming
LLVMpipe is a software renderer in the Mesa driver that does not use GPU hardware. Instead, it uses LLVM's JIT compiler to dynamically convert the graphics-related code to be rendered into rasterized data for display. It offers better performance compared to softpipe.
Closed-source drivers have long been a major obstacle to the desktop ecosystem of the riscv64 architecture, causing most riscv64 development boards' built-in GPUs to be partially or completely unusable. Consequently, desktop distributions had to use software rendering as a substitute.
For a long time, the JIT backend used by Mesa's LLVMpipe was the outdated MCJIT, which lacked architecture support, rather than the newer ORCJIT, which supports a broader range of architectures. Since MCJIT has been officially replaced by ORCJIT and no longer accepts new architecture updates, Mesa had to use the lower-performing softpipe for software rendering on architectures like riscv64. This rendered desktop environments almost unusable, devastating the desktop ecosystem.
As a result, the open-source community was eager to have a faster software renderer on the riscv64 architecture.
-
Programming Ada: Implementing The Lock-Free Ring Buffer
In the previous article we looked at designing a lock-free ring buffer (LFRB) in Ada, contrasting and comparing it with the C++-based version which it is based on, and highlighting the Ada way of doing things. In this article we’ll cover implementing the LFRB, including the data request task that the LFRB will be using to fill the buffer with. Accompanying the LFRB is a test driver, which will allow us to not only demonstrate the usage of the LFRB, but also to verify the correctness of the code.
-
Programming Tiny Blinkenlight Projects With Light
[mitxela] has a tiny problem, literally: some of his projects are so small as to defy easy programming. While most of us would probably solve the problem of having no physical space on a board to mount a connector with WiFi or Bluetooth, he took a different path and gave this clever light-based programming interface a go.
-
Perl / Raku