DEC PRISM (1988) Tribute
Direct3D 11/12 & DXGI
Khronos Vulkan 1.3 ICD
Software Barycentric Rasterizer

PrismX & Prism3D Graphics

Named in honor of Dave Cutlerโ€™s 1988 DEC PRISM project. A clean-room DirectX presentation and execution pipeline running bare-metal on the UEFI GOP linear framebuffer.

Interactive Prism3D Reference Rasterizer

Real-time simulation of MicaNT's interpolated Gouraud 3D rasterization algorithm. Click and drag to inspect barycentric shading.

[PRISM3D BARYCENTRIC RASTERIZER]
Swapchain: 650x420 • 32-bpp BGRA
FPS: 60 • Triangles: 8

Clean-Room Graphics Pipeline Specifications

Built from scratch without proprietary Microsoft SDKs or header leaks.

๐Ÿ–ฅ๏ธ

DXGI Presentation Pipeline (dxgi/)

Implements IDXGIFactory1, IDXGIAdapter1, and IDXGISwapChain. Supports DXGI_SWAP_EFFECT_FLIP_DISCARD presentation semantics, swap chain buffers with 32-bpp BGRA formats, and direct blitting to the UEFI GOP linear framebuffer (e.g. 1920x1080@60Hz).

๐Ÿ“

Prism3D Barycentric Software Rasterizer

High-precision software rasterizer computing edge equations: E(x,y) = (y - y0)(x1 - x0) - (x - x0)(y1 - y0). Calculates normalized barycentric coordinates (u, v, w) per pixel, interpolates RGB vertex colors with Gouraud shading, and checks 32-bit floating point Z-buffer values for sub-pixel depth resolution.

๐Ÿ”บ

PrismVK Khronos Vulkan 1.3 ICD Loader

Conforms to the standard Khronos Vulkan Installable Client Driver specification. Provides vulkan-1.dll with ICD manifest discovery, physical device enumeration, surface allocation via VK_KHR_win32_surface, and swapchain presentations via VK_KHR_swapchain.

โš™๏ธ

WDDM Kernel Mode Thunking (dxgkrnl.sys)

Clean-room kernel mode video memory manager. Implements D3DKMTOpenAdapterFromHdc, D3DKMTCreateAllocation, D3DKMTRender, and D3DKMTPresent, bridging userland Direct3D runtimes with kernel video miniports.

Native ISO C++23 Direct3D Initialization

How graphics device context and swapchains are created in MicaNT.

source/graphics/d3d_init_example.cpp
// Initialize clean-room DXGI Factory and Direct3D 11 Device Context #include <micant/graphics/dxgi.hpp> #include <micant/graphics/d3d11.hpp> using namespace micant::graphics; auto InitializePrismGraphics(HWND hWnd, uint32_t width, uint32_t height) -> NtStatus { DXGI_SWAP_CHAIN_DESC desc{}; desc.BufferDesc.Width = width; desc.BufferDesc.Height = height; desc.BufferDesc.Format = DXGI_FORMAT_B8G8R8A8_UNORM; desc.SampleDesc.Count = 1; desc.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; desc.BufferCount = 2; // Double buffering desc.OutputWindow = hWnd; desc.SwapEffect = DXGI_SWAP_EFFECT_FLIP_DISCARD; ComPtr<IDXGISwapChain> swapChain; ComPtr<ID3D11Device> device; ComPtr<ID3D11DeviceContext> context; auto status = D3D11CreateDeviceAndSwapChain( nullptr, D3D_DRIVER_TYPE_HARDWARE, nullptr, 0, nullptr, 0, D3D11_SDK_VERSION, &desc, &swapChain, &device, nullptr, &context ); return status; }