microscrap / cuda-gfx
Nvidia CUDA plugin for ScrapyardIO Tubes — DeferredFramebuffer, WindowHandler, Rendering Engine, and Input Handler.
0.7.1
2026-08-09 19:08 UTC
Requires
- php: ^8.4|^8.5|^8.6
- ext-cuda: ^0.7.0
- ext-glfw: ^0.7.0
- fabricate/nuts-and-bolts: ^0.7.0
- microscrap/cuda: ^0.7.0
- microscrap/glfw: ^0.7.0
- scrapyard-io/tubes: ^0.7.0
Requires (Dev)
- pestphp/pest: ^4
This package is not auto-updated.
Last update: 2026-08-10 17:42:52 UTC
README
Docs: ScrapyardIO — microscrap/cuda-gfx 0.7.x
CUDA companion for ScrapyardIO tubes 0.7 — CudaFramebuffer extends tubes abstract DeferredFramebuffer (headless GPU by default; windowed CUDA–GL present on Linux/Jetson). Registers Deferred + Window keys cuda.
Highlights
CudaFramebufferextendsDeferredFramebuffer(not Managed / notPixelStore)- Headless default —
::sized()/::gpu()→CudaGPUBuffer(cudaMallocRGBA8) - Explicit host lane —
::cpu()→CudaCPUBuffer(PHP RGBA8 bytes) - Windowed —
CudaWindowHandler+ GLFW GL context;attachedTo+ CudaGL PBO → texture → swap - Factory keys
cudaviaextendDeferred+windows.extend - Publish tags
tubes-framebuffers-cuda,tubes-windows-cuda
Requirements
- PHP 8.4+
ext-cuda^0.7.0 (GPU path)ext-glfw^0.7.0 (window path)microscrap/cuda^0.7.0microscrap/glfw^0.7.0scrapyard-io/tubes^0.7.0fabricate/nuts-and-bolts^0.7.0- Linux / Jetson +
DISPLAYfor visible canvas
Usage
use Microscrap\GFX\CUDA\CudaFramebuffer; use ScrapyardIO\Tubes\Core\MagicAliases\Framebuffer; use ScrapyardIO\Tubes\Core\MagicAliases\Window; $gpu = Framebuffer::driver('cuda') ->size(320, 240) ->format(CudaFramebuffer::rgbaSpec()) ->create(); $gpu->setPixel(10, 10, 0xFF0000FF); $bytes = $gpu->flush(CudaFramebuffer::rgbaSpec()); $window = Window::driver('cuda')->title('CUDA')->size(800, 600)->open(); $fb = $window->framebuffer(); // CudaFramebuffer, not headless $fb->fill(0xFF203040)->setPixel(10, 10, 0xFFFFFFFF); $window->present()->pollEvents();
Jetson smoke:
DISPLAY=:1 ./runner metal-canvas cuda
License
MIT © Angel Gonzalez