Loon GPU es un proyecto de código abierto presentado por Kevin Gibson que ofrece una capa de abstracción gráfica bindless inspirada en el artículo «No Graphics API» publicado por Sebastian Aaltonen en diciembre de 2025. La biblioteca se apoya en Vulkan 1.3 y Metal 4 como backends y propone simplificar la programación gráfica eliminando los objetos buffer, los grupos de bindings explícitos y los samplers tradicionales. En su lugar, utiliza punteros de dispositivo GPU obtenidos mediante llamadas a malloc y free, lo que permite tratar la memoria de la GPU como si fuera memoria C convencional, con variantes para memoria persistente mapeada a CPU, memoria local de GPU y memoria optimizada para lectura desde CPU.
El modelo apuesta por vertex pulling en lugar de vertex buffers y por un heap global de texturas al que los shaders acceden mediante índices, evitando la complejidad del modelo de bindings de Vulkan. Internamente, la biblioteca asigna un VkBuffer o un MTLHeap por cada reserva de memoria y mantiene una lista ordenada de punteros para localizar el buffer y el desplazamiento asociados; la nueva extensión VK_KHR_device_address_commands podría reducir la necesidad de este mapeo cuando esté disponible.
El componente más laborioso del proyecto son los shaders. Loon emplea Slang como lenguaje, que permite declarar un puntero uniforme como argumento de entrada para alimentar los datos al shader, pero Slang no ofrece control sobre el layout de los push constants, lo que impide pasar argumentos distintos a las etapas de vértice y fragmento en Vulkan. En Metal, el soporte de Slang es experimental y presenta varias limitaciones que obligan a traducir manualmente los shaders. Además, el tamaño de threadgroup debe especificarse en el código y se extrae mediante análisis del texto fuente, una solución provisional mientras Metal exponga esa información del lado de la CPU.
