Harbor

Changelog 61c62485f56f

pin capability docs

@sky · 1 month ago · parent 3536a6851b77
0 added 1 modified 0 deleted
gpu/docs/gpu_intent_api.md +8 -0 modified
198 unchanged lines hidden
199 199 - stencil clips
200 200 - sampled depth/color targets
201 201
202 + Capabilities describe **implemented gpu support**, not raw device support. A backend must only report a flag or limit when the public `gpu` API, IR lowering, and backend implementation can execute that behavior end-to-end. Raw driver limits may be higher; those remain internal until the `gpu` executor can use them safely.
203 +
204 + Current conservative limits:
205 +
206 + - `max_color_targets` reports the implemented color attachment count. It remains `1` until MRT lowering, render pass/framebuffer arrays, per-attachment blend state, and all backends support multiple color outputs.
207 + - `max_push_constant_size` reports the implemented push-constant byte limit for the selected backend. Pipeline and compute-shader creation must reject sizes above this limit.
208 + - `Multiple_Render_Targets`, `Indirect_Draws`, and `Stencil_Clips` remain false until those IR paths are fully implemented across all backends.
209 +
202 210 Public API must not expose Vulkan/D3D-specific terms except through backend-only layers.
203 211
204 212 OpenGL is a backend target, not a separate public API. It requires OpenGL 4.5 core, uses the OpenGL GLSL 450 Luma target, keeps one thread-affine current context for backend calls, flattens `(group, binding)` resource coordinates into documented GL binding points, and reserves one UBO binding for push-constant emulation.
21 unchanged lines hidden