microscrap/cuda-gfx

Nvidia CUDA plugin for ScrapyardIO Tubes — DeferredFramebuffer, WindowHandler, Rendering Engine, and Input Handler.

Maintainers

Package info

github.com/microscrap/cuda-gfx

Homepage

Documentation

pkg:composer/microscrap/cuda-gfx

Transparency log

Statistics

Installs: 2

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

0.7.1 2026-08-09 19:08 UTC

This package is not auto-updated.

Last update: 2026-08-10 17:42:52 UTC


README

Docs PHP License: MIT

Docs: ScrapyardIO — microscrap/cuda-gfx 0.7.x

CUDA companion for ScrapyardIO tubes 0.7CudaFramebuffer extends tubes abstract DeferredFramebuffer (headless GPU by default; windowed CUDA–GL present on Linux/Jetson). Registers Deferred + Window keys cuda.

Highlights

  • CudaFramebuffer extends DeferredFramebuffer (not Managed / not PixelStore)
  • Headless default::sized() / ::gpu()CudaGPUBuffer (cudaMalloc RGBA8)
  • Explicit host lane — ::cpu()CudaCPUBuffer (PHP RGBA8 bytes)
  • WindowedCudaWindowHandler + GLFW GL context; attachedTo + CudaGL PBO → texture → swap
  • Factory keys cuda via extendDeferred + 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.0
  • microscrap/glfw ^0.7.0
  • scrapyard-io/tubes ^0.7.0
  • fabricate/nuts-and-bolts ^0.7.0
  • Linux / Jetson + DISPLAY for 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