Route retained draw state through GL dispatch

This commit is contained in:
2026-06-04 23:50:50 +02:00
parent 111cc8c892
commit 3cd1d46025
6 changed files with 92 additions and 29 deletions

View File

@@ -355,10 +355,13 @@ Known local toolchain state:
atlas texture formats, text mesh buffer targets, attribute component and
normalization tokens, draw primitive/index type, upload usage, and active
texture unit selection also consume the backend mapping. Text mesh
buffer/VAO creation, deferred index/vertex uploads, and indexed draw calls
now consume tested `pp_renderer_gl` mesh dispatch contracts too. Canvas undo/redo
dirty-region texture updates and readbacks also consume the backend-owned 2D
texture target, RGBA pixel format, and unsigned-byte component mapping.
buffer/VAO creation, deferred index/vertex uploads, indexed draw calls, and
draw-time texture-unit activation now consume tested `pp_renderer_gl`
dispatch contracts too. Canvas undo/redo dirty-region texture updates and
readbacks also consume the backend-owned 2D texture target, RGBA pixel
format, and unsigned-byte component mapping; canvas stroke commit, thumbnail,
and object-draw history paths now consume tested capability-state query
dispatch for saved blend state.
`NodeViewport` preview rendering also consumes backend-owned viewport query,
clear-color query, color-buffer clear mask, and blend-state tokens.
`NodeImageTexture` preview drawing also consumes backend-owned fallback 2D
@@ -373,8 +376,8 @@ Known local toolchain state:
paths also consume backend-owned blend-state tokens.
Canvas layer cube/equirect generation, clear, restore, and snapshot paths
also consume backend-owned cube/2D texture targets, active texture units,
blend/clear state, viewport execution, target-aware framebuffer-to-texture
copies, and RGBA8 read/write pixel mapping.
cube texture binding, blend/clear state, viewport execution, target-aware
framebuffer-to-texture copies, and RGBA8 read/write pixel mapping.
`NodePanelGrid` heightmap preview and lightmap baking also consume
backend-owned texture readback formats, sampler filters, depth/blend state,
depth clears, viewport queries, color-mask booleans, active texture units,
@@ -666,12 +669,12 @@ Known local toolchain state:
color/depth attachment, status-check, and binding-restore dispatch consumed
by retained `RTT::create`/`RTT::destroy`, tested RTT render-target clear,
masked color clear with color-write-mask restore, and texture-bind dispatch,
tested active-texture dispatch consumed by retained Canvas, NodeCanvas, and
NodeStrokePreview texture-unit switches,
tested active-texture dispatch consumed by retained Canvas, Font, NodeCanvas,
and NodeStrokePreview texture-unit switches,
tested viewport/scissor/capability dispatch consumed by retained Canvas,
NodeCanvas, NodeStrokePreview, and HMD render-state paths,
tested capability-state query dispatch consumed by retained `NodeCanvas`,
`CanvasMode`, and `NodePanelGrid` draw-state restore paths,
tested capability-state query dispatch consumed by retained `Canvas`,
`NodeCanvas`, `CanvasMode`, and `NodePanelGrid` draw-state restore paths,
tested viewport query, clear-color query, and clear-color restore dispatch
consumed by retained `Canvas`, `CanvasLayer`, `NodeCanvas`, and
`NodeStrokePreview` draw-state paths,
@@ -681,7 +684,8 @@ Known local toolchain state:
tested pixel-buffer allocation/readback/map/unmap/delete dispatch
consumed by retained `PBO` recording readbacks, tested framebuffer-to-texture
copy dispatch consumed by retained canvas/UI paint paths and CanvasLayer
cube-face generation, tested framebuffer bind/restore dispatch consumed by
cube-face generation, tested cube texture bind dispatch consumed by
CanvasLayer equirect export, tested framebuffer bind/restore dispatch consumed by
retained `RTT` render-target pass entry
and exit paths, tested depth renderbuffer allocation/delete and framebuffer
depth attach/detach dispatch consumed by retained RTT and canvas object-drawing helpers,

View File

@@ -16,6 +16,18 @@ agent or engineer to remove them without reconstructing context from chat.
- Do not close an entry until the removal condition is met and validated.
- Prefer deleting shortcuts over expanding this log.
## Recent Reductions
- 2026-06-04: DEBT-0036 was narrowed again. Canvas stroke commit,
thumbnail, and object-draw history paths now query saved blend state through
tested `pp_renderer_gl` capability-state dispatch; CanvasLayer equirect
export now binds cube textures through tested `pp_renderer_gl` dispatch; and
`Font` text drawing now activates texture units through tested
`pp_renderer_gl` dispatch. The debt remains open for live stroke
rasterization, dual-brush compositing, pattern feedback math, thumbnail layer
compositing, brush-preview compositing, and retained `ShaderManager::ext_*`
compatibility fields.
## Open Debt
| ID | Status | Owner | Item | Reason | Validation | Removal Condition |

View File

@@ -1078,13 +1078,15 @@ capability detection also live in `pp_renderer_gl`. Legacy font atlas texture
formats, text mesh buffer targets, attribute component/normalization, draw
primitive/index type, upload usage, and active texture unit selection also
delegate to `pp_renderer_gl`; text mesh buffer/VAO creation, deferred index
and vertex uploads, and indexed draw calls now execute through the same tested
mesh dispatch contracts used by `Shape`, leaving the retained `Font` utility
with thin GL adapter functions for mesh operations.
and vertex uploads, indexed draw calls, and text draw texture-unit activation
now execute through the same tested dispatch contracts used by `Shape`, leaving
the retained `Font` utility with thin GL adapter functions for mesh operations.
Canvas undo/redo dirty-region texture updates and readbacks now also execute
through retained `RTT` helpers backed by `pp_renderer_gl`, including 2D texture
target, dirty-region offsets, RGBA pixel format, and unsigned-byte component
type mapping.
type mapping. Canvas stroke commit, thumbnail generation, and object-draw
history paths now query saved blend state through the same tested capability
state dispatch before restoring it.
`NodeViewport` preview rendering now also delegates viewport query,
clear-color query, color-buffer clear mask, viewport execution, color clear,
clear-color restore, and blend-state execution through the shared
@@ -1101,8 +1103,8 @@ Simple UI text, text-input, border, scroll, and animation timeline draw paths
now also execute blend-state changes through the shared UI GL adapter.
Canvas layer cube/equirect generation, clear, restore, and snapshot paths now
also delegate cube/2D texture targets, active texture units, blend/clear state,
viewport execution, target-aware framebuffer-to-texture copies, and RGBA8
read/write pixel mapping to `pp_renderer_gl`.
viewport execution, target-aware framebuffer-to-texture copies, cube texture
binding, and RGBA8 read/write pixel mapping to `pp_renderer_gl`.
`NodePanelGrid` heightmap preview and lightmap baking now delegate texture
readback formats, sampler filters, depth/blend state, depth clears, viewport
queries, color-mask booleans, active texture units, and float render-target