Skip to content

Latest commit

 

History

History
92 lines (74 loc) · 7.03 KB

File metadata and controls

92 lines (74 loc) · 7.03 KB

brender-v132-portable-core-plan

Field Value
Target brender
Status win32-period-pipeline-release-evidence-passing
Type portable-build-plan
Build brender-v132-build-environment
Reproduction brender-critical-edition-source-build
Entrypoint docs/generated/harnesses/brender-v132-portable-core-plan.md
Materializer engine-revival materialize-brender-harness --source-root --output-root
Output Policy Write generated harness files outside the BRender source checkout and outside this metadata repo unless they are intentionally reviewed as public-safe scaffolding.

Source Policy

Use only the public BRender v1.3.2 checkout at the recorded snapshot commit. Do not vendor source, generated binaries, private assets, or restricted SDK material in this repository.

Public Notes

The current harness boundary is a Visual Studio Win32, out-of-tree CMake materialization from the public BRender v1.3.2 snapshot pinned at d88d0ed41122664b9781015b517db64353e16f19. It now verifies 21 native targets under CTest, including the period softrend plus pentprim pipeline, release-hardened JSON/path handling, material resolution, indexed palette lookup, host file semantics, and provenance-pinned eight-frame period-pipeline media. Native repeat executions on the Win32 Debug port can vary by a few edge pixels, so release media pins exact verified PPM source hashes. The experimental textured TIA path executes but still produces black output due to a measured vertex-layout/state mismatch, so textured rendering is not claimed.

Implementation Units

  • root dispatch: core, softrend FLOAT, and pentprim FLOAT active; tools, samples, display drivers, and deferred variants stay outside the verified boundary
  • core order: inc, fw, host, std, pixelmap, dosio, v1db FLOAT, math FLOAT, fmt FLOAT
  • core source selection: explicit period makefile OBJS_C lists
  • core smoke target: brender_core_smoke links against brender_core_float and exercises vector math
  • framework startup target: brender_core_startup_smoke exercises BrBegin and BrEnd
  • wireframe render target: brender_core_render_smoke projects a cube through BrMatrix4Perspective/Mul/ApplyP and verifies RGB_888 pixel output
  • scene graph target: brender_core_scene_smoke builds a v1db world/camera/model actor tree and projects it with BrActorToScreenMatrix4
  • solid fill target: brender_core_fill_smoke rasterizes projected faces with a portable C scanline fill
  • depth target: brender_core_depth_smoke verifies per-pixel occlusion in the portable rasterizer
  • texture target: brender_core_texture_smoke verifies perspective-correct texture mapping in the portable rasterizer
  • model target: brender_core_model_smoke loads real period .dat models with BrModelLoad
  • material target: brender_core_material_smoke textures a loaded model through br_vertex.map UV coordinates
  • multimodel target: brender_core_multimodel_smoke loads and depth-composites all model chunks of a datafile with BrModelLoadMany
  • Gouraud target: brender_core_gouraud_smoke computes per-vertex normals and interpolates shade
  • plotter target: brender_core_plotter_smoke emits hidden-line-removed SVG polylines and a raster preview
  • asset audit target: brender_core_asset_audit validates loaded model geometry and face-material attachment
  • material audit target: brender_core_material_audit reports BrMaterialLoad identifiers, flags, index_base, and colour-map attachment
  • material file audit target: brender_core_material_file_audit verifies material-file loading with JSON-safe receipts
  • pixelmap roundtrip target: brender_core_pixelmap_roundtrip saves and reloads a pixelmap while refusing preexisting caller-owned workfiles
  • material resolve target: brender_core_material_resolve attaches a BrMaterialLoad material to every face and initializes the third scanline edge from w2
  • file texture target: brender_core_texture_file_sample samples BrPixelmapLoad period .pix data and resolves INDEX_8 texels through the loaded palette
  • game shell target: brender_core_game_shell drives deterministic INIT/LOAD/RUN/TEARDOWN frames with palette-aware texture sampling
  • host semantic target: brender_core_host_semantic verifies host filesystem round trips without deleting preexisting caller-owned workfiles
  • period-pipeline target: brender_core_softrend_render builds softrend and pentprim from the pinned upstream tree, binds the primitive library, drives BrZbSceneRender, and emits an eight-frame nonblack sph32.dat orbit
  • generated C receipts: shared JSON string escaping is injected into all generated smoke programs that print caller-supplied paths or identifiers

Steps

  • start from the recorded BRender v1.3.2 public source snapshot
  • run the engine-revival materializer to create build files outside the source tree
  • verify the materialized scaffold references BRENDER_SOURCE_DIR instead of copying source
  • configure the harness with Visual Studio -A Win32
  • build the full Debug target set
  • run ctest --test-dir -C Debug --output-on-failure
  • capture period-pipeline PPM frames and generate public media only from verified nonblack output
  • stage the release package with harness, evidence logs, media, provenance, and SHA256 receipt

Expected Outputs

  • out-of-tree portable CMake harness files
  • core FLOAT static library build artifact
  • twenty-one CTest targets covering portable, audit, semantic, shell, and period-pipeline rungs
  • PPM outputs for wireframe, scene, fill, depth, texture, model, material, multimodel, Gouraud, plotter, file texture, material resolve, game shell, and period pipeline
  • provenance-pinned eight-frame period-pipeline sphere orbit
  • release media and provenance manifest under gallery/release-20260827
  • SHA256 release-package receipt from scripts/package_brender_release.py

Blockers

  • x64 pointer-width portability is not claimed; configure requires a 32-bit C target such as Visual Studio -A Win32.
  • Assembly-only pentprim kernels outside the tested RGB_888 ZB and experimental TIA surface remain linkage stubs.
  • Experimental textured TIA executes but currently produces black output because of a measured vertex-layout/state mismatch.
  • MSVC warning output remains to be audited before any zero-warning portability claim.

Next Actions

  • resolve the measured textured-TIA vertex-layout/state mismatch with a focused native test before documenting textured rendering as complete
  • audit remaining MSVC warnings at the compatibility boundary
  • continue measured C ports for reached assembly-only kernels instead of bulk-porting unreached stubs
  • preserve Win32 evidence before attempting any x64 pointer-width work

Evidence Sources

Source Type Confidence Scope URL
Argonaut Blazing Render (BRender) v1.3.2 source repository repository high BRender 1.3.2 source availability, provenance, and MIT license posture https://github.com/foone/BRender-v1.3.2
BRender preservation index curated-index high BRender source-release and binary-SDK index https://blazingrender.net/