Skip to content

Instantly share code, notes, and snippets.

View britalmeida's full-sized avatar

Inês Almeida britalmeida

View GitHub Profile
@rootnotez
rootnotez / LinuxGraphicsComponents.md
Last active January 13, 2026 20:40
Linux Graphics Terms and Troubleshooting

Linux Graphics Components and Troubleshooting Tools #001

Linux Graphics Components

  • Compositors: Combine and render multiple graphical elements into a final display output. In X11, use the Composite extension to work with the X server, managing window transparency, effects, and desktop composition (ex: Compiz, KWin, Mutter). In Wayland, the compositor is the display server itself (ex: Weston, Sway, GNOME mutter-wayland). Compositors interact with the graphics stack through DRM/KMS for direct hardware access and use EGL or similar APIs for GPU-accelerated rendering.

  • DRI (Direct Rendering Infrastructure): A framework that allows applications to directly access graphics hardware for accelerated rendering while maintaining security and coordination with the display system. DRI provides device interfaces at /dev/dri (such as /dev/dri/card0, /dev/dri/renderD128) that applications and drivers use to communicate with graphics hardware, enabling efficient GPU operations without going through the X s

@ibireme
ibireme / kpc_demo.c
Last active January 20, 2026 08:14
A demo shows how to read Intel or Apple M1 CPU performance counter in macOS.
// =============================================================================
// XNU kperf/kpc demo
// Available for 64-bit Intel/Apple Silicon, macOS/iOS, with root privileges
//
//
// Demo 1 (profile a function in current thread):
// 1. Open directory '/usr/share/kpep/', find your CPU PMC database.
// M1 (Pro/Max/Ultra): /usr/share/kpep/a14.plist
// M2 (Pro/Max): /usr/share/kpep/a15.plist
// M3: /usr/share/kpep/as1.plist
@raysan5
raysan5 / custom_game_engines_small_study.md
Last active January 12, 2026 10:18
A small state-of-the-art study on custom engines

CUSTOM GAME ENGINES: A Small Study

a_plague_tale

WARNING: Article moved to separate repo to allow users contributions: https://github.com/raysan5/custom_game_engines

A couple of weeks ago I played (and finished) A Plague Tale, a game by Asobo Studio. I was really captivated by the game, not only by the beautiful graphics but also by the story and the locations in the game. I decided to investigate a bit about the game tech and I was surprised to see it was developed with a custom engine by a relatively small studio. I know there are some companies using custom engines but it's very difficult to find a detailed market study with that kind of information curated and updated. So this article.

Nowadays lots of companies choose engines like [Unreal](https:

@kalmanolah
kalmanolah / haste.py
Last active December 8, 2021 21:47
Simple python script for putting things on hastebin. The resulting hastebin URL is copied to your primary clipboard using xsel. Usage: `cat yourfile.txt | haste`, `haste yourfile.txt`, 'haste` or `haste --clip`. `haste --help` for help.
#!/usr/bin/env python3
# @python3
# @author Kalman Olah <hello@kalmanolah.net>
"""A hastebin CLI tool."""
import click
import json
import requests
import subprocess
import sys
@hellerbarde
hellerbarde / latency.markdown
Created May 31, 2012 13:16 — forked from jboner/latency.txt
Latency numbers every programmer should know

Latency numbers every programmer should know

L1 cache reference ......................... 0.5 ns
Branch mispredict ............................ 5 ns
L2 cache reference ........................... 7 ns
Mutex lock/unlock ........................... 25 ns
Main memory reference ...................... 100 ns             
Compress 1K bytes with Zippy ............. 3,000 ns  =   3 µs
Send 2K bytes over 1 Gbps network ....... 20,000 ns  =  20 µs
SSD random read ........................ 150,000 ns  = 150 µs

Read 1 MB sequentially from memory ..... 250,000 ns = 250 µs

@href
href / dict_namedtuple.py
Created October 27, 2011 12:00
Convert any dictionary to a named tuple
from collections import namedtuple
def convert(dictionary):
return namedtuple('GenericDict', dictionary.keys())(**dictionary)
"""
>>> d = dictionary(a=1, b='b', c=[3])
>>> named = convert(d)
>>> named.a == d.a
True
>>> named.b == d.b