Skip to content

Phase 4 integration vulkan rendering - #13

Draft
itsafuu wants to merge 34 commits into
developfrom
dev_phase04
Draft

itsafuu wants to merge 34 commits into
developfrom
dev_phase04

Conversation

@itsafuu

@itsafuu itsafuu commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Requires updates to thirdparty, supergenius, sgprocessingmanager.

Super-Genius and others added 30 commits August 10, 2026 19:04
- 01-RESEARCH.md: mark Open Questions RESOLVED (Q1 -> Plan 01-05 spike;
  Q2 -> Plan 01-01 accessors; Q3 -> cmaketemplate auto-download, no
  explicit zkLLVM CI step per D-09 interpretation)
- 01-VALIDATION.md: fill per-task verification map from plan automated
  blocks; set status: ready; nyquist_compliant: true
- Wave/depends_on rebucket: 01-02 wave 2 depends_on [01-01]; 01-03 wave 3
  depends_on [01-01, 01-02]; 01-04 wave 3; 01-05 wave 4; 01-06 wave 5
- 01-01 Task 3: pin branch stacking — feature/gcs-globaldb-passthrough
  created FROM feature/app-restructure HEAD (locked at planning time)
- 01-04 Task 3: commit to option C — gcs_init returns nullptr gracefully
  without GeniusSDK node; remove all gcs_on_message tests (moved to 01-05);
  drop init-success EXPECT_NE assertions
- 01-05: owns all on_message tests; rephrase success criteria — no partial
  pass, Dart smoke suite passing is the pass condition with skip: only for
  live-node round-trip
- 01-06: pin iOS toolchain — no -DCMAKE_TOOLCHAIN_FILE flag; build/iOS
  CMakeLists auto-sets to build/apple.toolchain.cmake
- ROADMAP: annotate plan list with wave numbers and dependency notes
…doring

Vendors SGProcessing test fixtures instead of depending on a sibling
GeniusNetwork checkout, removes stale Vulkan-deadlock test skips now
that the upstream fix is verified, and fixes SGProcessingBridge to
return real output bytes (was returning a manifest hash) with support
for windowed/overlapping input schemas.
- Synthesizes RESEARCH.md into a decision-oriented verdict
- MNN sgfp4-pivot: HIGH quality, complete for v2-only scope
- GNUS-NEO-SWARM: NOT compatible; fp4_codec is orphaned NF4 dead code
- Conditional workstream recommendation with neo config.json siting pattern
…ntegration with GNUS-NEO-SWARM neo workspace FP4 codec and SGProcessingManager verification layer; assess MNN-side implementation quality; scope potential new GNUS-NEO-SWARM workstream for required updates
… (converter integration)

MNN's sgfp4-pivot grew from 4 to 12 phases since the original evaluation and
now ships mnnconvert --sgfp4, closing the core "nothing produces a real
SGFP4 .mnn" gap this report identified. Appends an addendum: the converter
path is real and verified against the classic Interpreter/Session API, but
corrects the original phases 1-4 verdict (CPU decoder was broken for real
multi-tile weights, now fixed), and flags two new open risks (externalized-
weight loading, unproven accuracy).
Conflict resolutions:
- App workstream planning + dart/flutter files + gcs_core.cpp: take develop
  (live PR#11 line with D-29 ABI replan; our side was the stale pre-PR#11
  app-workstream attempt).
- src/app/scaffold submodule: take develop (6016e3f4).
- GNUS-NEO-SWARM submodule: unified tip bc2d52d (app-restructure + phase-04
  merged in submodule develop).
- cmake/CommonBuildParameters.cmake: union — keep our vk-bootstrap,
  MoltenVK block, and vendored Vulkan-Headers set_target_properties; take
  develop's ENV{VULKAN_SDK} syntax fix, top-level enable_testing(), and
  gcs_test binary-dir rename.
…++17

Port the corrected implementation from the GNUS-NEO-SWARM twin
(src/storage/gcs_global_db.cpp):
- GeniusSDK.hpp/GeniusSDKGetNode() no longer exist in GeniusSDK
  dev_cognitive; use the installed C header and the opaque
  GeniusSDKGetPubSub() handle with a non-owning shared_ptr alias.
- Add the missing <libp2p/basic/scheduler/asio_scheduler_backend.hpp>
  include for the AsioSchedulerBackend construction.
- Replace the designated initializer in gcs_core.cpp (C7555 under
  /std:c++17) with ordered aggregate init (single-member Config).

Bump GNUS-NEO-SWARM submodule to d3f941c (Vulkan header include fix).
The previous commit recorded the phase-13 branch tip (6af5fd1) because
the submodule working tree was checked out there. For the dev_phase04 ->
develop PR the pointer must be the submodule develop tip so phase-13
content lands via its own submodule PR, not here.
# Conflicts:
#	GNUS-NEO-SWARM
#	cmake/CommonBuildParameters.cmake
#	src/lib/gcs_core.cpp
…op's 3d9ebab pinned 7760ee2 which was never pushed to the scaffold remote
…alize

The develop merge (b63b61e) textually combined our GeniusSDKGetPubSub()
C-API acquisition with develop's node->GetGraphsyncNetwork() body,
leaving 'node' undeclared and calling a nonexistent 1-arg Initialize
overload. Restore develop's 0c68fb2 implementation verbatim:
GeniusSDKGetNode() -> node->GetPubSub() / node->GetGraphsyncNetwork(),
and the GeniusSDK.hpp include it requires (verified present in the
installed local GeniusSDK package the build resolves).
… fix

- workflow_dispatch: add per-platform build toggles (build_<target>-<abi>
  <build-type> inputs + exit 78 skip step) and thirdparty/supergenius/
  geniussdk dep-tag overrides that default to the release tag, matching
  the GeniusSDK/SuperGenius workflows
- Migrate Linux container jobs off EOL Debian Bullseye to
  ghcr.io/geniusventures/almalinux-8:latest; split Configure Linux host
  into dnf/apt branches and pin clang via
  -DCMAKE_{C,CXX}_COMPILER=clang{,++} (AlmaLinux /usr/bin/c++ is a real
  gcc-owned file, so the update-alternatives takeover fails silently)
- Create release tag now also runs on manual tag dispatches and treats
  an existing release as reusable for the shared tag, with a
  create-race retry for sibling matrix jobs
…iscovery

Run 35652579381 (Linux x86_64 Release) died at configure:
supergeniusTargets.cmake:363 set_target_properties on sgns::secure_storage
references PkgConfig::LIBSECRET, which the prebuilt SuperGenius package
does not define — every consumer must run its own pkg_check_modules
before find_package(SuperGenius), exactly as GeniusSDK's
cmake/CommonBuildParameters.cmake does. Add that discovery (Linux only)
to GCS's cmake/CommonBuildParameters.cmake, guarded the same way.

Also replace D-09 (cmaketemplate's configure-time zkLLVM auto-download,
which always fetches develop) with an explicit Download zkLLVM release
step modeled on GeniusSDK/SuperGenius: zkllvm_tag dispatch input
(falls back to the tag input), Release-type artifacts for non-Windows
(cmakemplate's own fallback mapping), assigner binaries excluded, and
-DZKLLVM_BUILD_DIR passed to the Linux configure. Non-Linux configures
keep the auto-download path for now (Linux is the current focus).
…egistration

Run 35654341772 (Linux builds now green, tests red):

1. test_gcs_ffi (Release+Debug): gnome-keyring-daemon dies with
   'Operation not permitted' in the AlmaLinux container, so
   org.freedesktop.secrets never comes up and node boot fails with
   'Account creation failed'. Add options: --cap-add=IPC_LOCK to the
   job container (SuperGenius precedent) so the daemon can mlock.

2. test_gcs_ffi_sdk / test_gcs_ffi_coldboot (Debug only): MNN aborts at
   Backend.cpp:135 MNNInsertExtraRuntimeCreator 'duplicate type'. These
   binaries link libgcs_ffi.so (which statically embeds MNN via
   gcs_core -> neoswarm_core) AND gcs_storage, whose SuperGenius chain
   (SGProcessors) whole-archives MNN into the executable - two MNN
   registries in one process. MNN's registry map is a function-local
   static (one per copy) but its registration functions are global, so
   on ELF the exe's symbols interpose into the .so and the second
   registration lands in the exe's already-populated map. Debug-only
   because MNN_ASSERT is plain assert (NDEBUG compiles it out); OSX
   historically passed because dyld's two-level namespace binds each
   image to its own symbols. Fix: -Wl,-Bsymbolic-functions on gcs_ffi so
   the dylib binds its internal MNN calls locally (functions only -
   vtables/typeinfo keep default binding).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants