Using EGL and the dma_buf kernel framework to associate two textures with the contents of the same buffer without copy taking place

It’s been a few weeks I’ve been experimenting with EGL/GLESv2 as part of my work for WebKit (Browsers) team of Igalia. One thing I wanted to familiarize with was using shared DMA buffers to avoid copying textures in graphics programs.

I’ve been experimenting with the dma_buf API, which is a generic Linux kernel framework for sharing buffers for hardware access across multiple device drivers and subsystems, using EGL and GLESv2.

Continue reading Using EGL and the dma_buf kernel framework to associate two textures with the contents of the same buffer without copy taking place

Build WebKit/WPE on Linux/X11

There’s a lot of documentation online about building Webkit/WPE on Linux. But as most instructions are targetting embedded platforms developers, the focus is on building Webkit with Wayland using the flatpak-sdk to automate and speed up the building process. As the steps I’ve followed to build it on my X11 system and run the Webkit/WPE MiniBrowser on a nested Weston were a bit different from the recommended ones I thought that a blog post about them might be useful to people trying to build WPE/Webkit in platforms lacking Wayland, flatpak, systemd, and modern Desktop Environments like the latest KDE and GNOME.

Be careful though: this is not the recommended way to build WebKit/WPE, only the alternative steps I’ve followed in my personal computer until I have access to a building machine! If you are not sure about what you want to do with WebKit/WPE please take a look at the recommended wiki instructions before you follow mine!

Continue reading Build WebKit/WPE on Linux/X11

A system to reject phone calls from my laptop

This post is about a system we devised and set up at home for me to be able to reject all the annoying phone calls I receive during the day from my laptop, without having to go pick up the phone. If you are also working from home like I do you might find this hack useful. ๐Ÿ˜€

Demo:

Continue reading A system to reject phone calls from my laptop

Hair simulation with a mass-spring system (punk’s not dead!)

Hair rendering and simulation can be challenging, especially in real-time. There are many sophisticated algorithms for it (based onย particle systems, hair mesh simulation, mass-spring systems and more) that can give very good results. But in this post, I will try to explain a simple and somehow hacky approach I followed in my first attempt to simulate hair (the mohawk hair of the video below) using a mass-spring system.


 

The code can be found here: https://github.com/hikiko/mohawk

Continue reading Hair simulation with a mass-spring system (punk’s not dead!)

A short OpenGL / SPIRV example.

It’s been a while since Igalia is working on bringing SPIR-V to mesa OpenGL. Alejandro Piรฑeiro has already given a talk on the status of the ARB_gl_spirv extension development that was very well received at FOSDEM 2018 . Anyone interested in technical information can watch the video recording here: https://youtu.be/wXr8-C51qeU.

Continue reading A short OpenGL / SPIRV example.

Winnie: a framebuffer window system

A few weeks ago, I started a minimal window system, which performs software rendering on the linux /dev/fb0. My aim was to learn some systems programming and familiarize myself with concepts like event and device handling, memory management, window management, drawing on the framebuffer, IPC mechanisms etc (and certainly not to create a full linux window system! :)p) I call the program winnie and the code is available on github here: https://github.com/hikiko/winnie/tree/winnie.clients-as-plugins, https://github.com/hikiko/winnie and lp.

The program is not finished yet and I don’t know if I ever finish it, since I came up with new project ideas again.. Nevertheless, you can see some videos of the development stages below if you are interested (most recent first):

Continue reading Winnie: a framebuffer window system

A virtual keyboard

Some days ago I came up with the idea of a keyboard that can be used without having to type the letters. The user just stands in front of a camera and scrolls the letters by moving his head or hands to the appropriate direction…

And here it is:

Continue reading A virtual keyboard