Add renderer texture upload contract

This commit is contained in:
2026-06-02 15:25:31 +02:00
parent 818014127a
commit 1c40602744
8 changed files with 164 additions and 30 deletions

View File

@@ -285,12 +285,13 @@ 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, readback bounds, frame-capture sources, and destination buffer
sizes, records render/readback/frame-capture commands, and records trace
markers without a window or GL context.
command order, texture-upload byte counts, readback bounds, frame-capture
sources, and destination buffer sizes, records render/upload/readback/
frame-capture commands, and records trace markers without a window or GL
context.
- `pano_cli record-render` exposes the recording renderer through JSON
automation, including readback and frame-capture command/byte totals, and is
covered by `pano_cli_record_render_smoke` plus
automation, including upload/readback/frame-capture 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`
apply/undo/redo state through JSON automation and is covered by

View File

@@ -416,10 +416,10 @@ adding new backends.
Status: started. `pp_renderer_api` exists as a headless renderer-neutral target
with texture descriptor, byte-size, viewport, mesh, readback bounds, command
context, render device, shader program descriptor, mesh, render target,
readback byte-size helpers, readback command validation, frame-capture
byte-size helpers, frame-capture command validation, trace interface
validation, and the canonical PanoPainter shader catalog now consumed by the
legacy OpenGL app initialization path.
readback byte-size helpers, texture-upload/readback command validation,
frame-capture byte-size helpers, frame-capture command 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
@@ -719,8 +719,9 @@ Results:
plus malformed payload rejection at the export boundary.
- `pp_renderer_api_tests` passed, including shader descriptor validation,
PanoPainter shader catalog validation, readback byte-size and command-order
validation, frame-capture byte-size and command-order validation, recording
readback/frame-capture command capture, and invalid catalog rejection.
validation, texture-upload byte-count validation, frame-capture byte-size and
command-order validation, recording upload/readback/frame-capture command
capture, and invalid catalog rejection.
- `pp_paint_renderer_compositor_tests` passed.
- `pp_ui_core_color_tests` passed.
- `pp_ui_core_layout_value_tests` passed.
@@ -814,13 +815,15 @@ 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/readback/frame-capture validation; it records commands, trace
markers, texture readbacks, and frame captures, giving automation a
backend-neutral render path that does not require a window or GL context.
command-order/texture-upload/readback/frame-capture validation; it records
commands, trace markers, texture uploads/readbacks, and frame captures, 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
readback/frame-capture command/byte totals for agent automation, with an
expected-failure smoke for oversized render/readback targets.
texture-upload/readback/frame-capture 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.