Add renderer depth state contract

This commit is contained in:
2026-06-02 15:50:59 +02:00
parent 9a7e1c4def
commit b68ddc42c6
9 changed files with 243 additions and 58 deletions

View File

@@ -285,14 +285,14 @@ Known local toolchain state:
source code reintroduces raw `GL_*`/`WGL_*` constants outside the allowed
legacy OpenGL implementation files.
- `pp_renderer_api` exposes a headless `RecordingRenderDevice` that validates
command order, scissor state, blend state, texture-slot binding,
command order, scissor state, depth state, blend state, texture-slot binding,
texture-upload byte counts, readback bounds, frame-capture sources,
destination buffer sizes, and render-target blit regions, records
render/scissor/blend/texture-bind/upload/readback/frame-capture/blit
render/scissor/depth/blend/texture-bind/upload/readback/frame-capture/blit
commands, and records trace markers without a window or GL context.
- `pano_cli record-render` exposes the recording renderer through JSON
automation, including scissor/blend/texture-bind/upload/readback/frame-
capture/blit command and byte totals, and is covered by
automation, including scissor/depth/blend/texture-bind/upload/readback/
frame-capture/blit command and byte totals, and is covered by
`pano_cli_record_render_smoke` plus
`pano_cli_record_render_rejects_oversized_target`.
- `pano_cli simulate-document-history` exposes `pp_document::DocumentHistory`

View File

@@ -419,9 +419,9 @@ context, render device, shader program descriptor, mesh, render target,
readback byte-size helpers, texture-upload/readback command validation,
frame-capture byte-size helpers, frame-capture command validation,
render-target blit validation, texture-slot binding validation, blend-state
validation, scissor-state validation, trace interface validation, and the
canonical PanoPainter shader catalog now consumed by the legacy OpenGL app
initialization path.
validation, scissor-state validation, depth-state validation, trace interface
validation, and the canonical PanoPainter shader catalog now consumed by the
legacy OpenGL app initialization path.
`pp_renderer_gl` now exists as the first OpenGL backend library and owns pure
OpenGL capability detection for framebuffer fetch, map-buffer alignment, and
float texture support. It also owns the OpenGL texture upload-type mapping used
@@ -724,7 +724,7 @@ Results:
validation, texture-upload byte-count validation, frame-capture byte-size and
command-order validation, render-target blit validation, texture-slot binding
validation, blend-state validation, scissor-state validation, recording
scissor/blend/texture-bind/upload/readback/frame-capture/blit command
scissor/depth/blend/texture-bind/upload/readback/frame-capture/blit command
capture, and invalid catalog rejection.
- `pp_paint_renderer_compositor_tests` passed.
- `pp_ui_core_color_tests` passed.
@@ -819,16 +819,16 @@ Results:
reintroduces raw `GL_*`/`WGL_*` constants outside the allowed legacy OpenGL
implementation files.
- `pp_renderer_api` now includes a headless `RecordingRenderDevice` with strict
command-order/scissor-state/blend-state/texture-bind/texture-upload/readback/
frame-capture/blit validation; it records commands, trace markers, scissor
state, blend state, texture binds, uploads/readbacks, frame captures, and
render-target blits, giving automation a backend-neutral render path that
does not require a window or GL context.
command-order/scissor-state/depth-state/blend-state/texture-bind/
texture-upload/readback/frame-capture/blit validation; it records commands,
trace markers, scissor state, depth state, blend state, texture binds,
uploads/readbacks, frame captures, and render-target blits, giving automation
a backend-neutral render path that does not require a window or GL context.
- `pano_cli record-render` exercises that headless recording renderer and emits
JSON command counts, target dimensions, backend name, trace/draw summary, and
scissor/blend-state plus texture-bind/upload/readback/frame-capture/blit
command/byte totals for agent automation, with an expected-failure smoke for
oversized render/readback targets.
scissor/depth/blend-state plus texture-bind/upload/readback/frame-capture/
blit command/byte totals for agent automation, with an expected-failure smoke
for oversized render/readback targets.
- `pano_cli simulate-document-history` exercises pure document history
apply/undo/redo behavior and emits JSON layer/frame/history state for agent
automation.