feat(F-NSWINDOW-E5 r10): headless Metal offscreen render + readback smoke (E5 substrate proof) - #33
Merged
Merged
Conversation
…moke (E5 substrate proof) native/metal_offscreen_smoke.m: standalone ObjC+Metal program — creates 64x64 MTLPixelFormatBGRA8Unorm offscreen texture, compiles inline MSL via newLibraryWithSource:, clears to blue + draws one red triangle, reads back pixels via getBytes, asserts px_clear=0x0000FFFF/px_triangle=0xFF0000FF/ nonuniform=1. SKIP path (exit 0) when MTLCreateSystemDefaultDevice() returns nil — honest ground-truth, not a failure. Local M4 result: __METAL_SMOKE__ PASS device=Apple M4 px_clear=0x0000FFFF px_triangle=0xFF0000FF nonuniform=1. Wire into CI (ci.yml) as warn-only step after E3 native interpreter, before CLI smoke — surfaces PASS/SKIP/FAIL in Blacksmith runner log without redding the build. Register in native/build.sh (ObjC ARC + Metal/Foundation flags). CHANGELOG + ARCHITECTURE.json blocking-frontiers updated (r10 substrate node added, E5 ladder updated to reflect Metal headless render empirically verified locally, CI pending). own1: plain Apple Metal — no Wine, no DRM, no game asset. Substrate proof only; validated_manjeom stays 0. r11 = D3D11 device/swapchain shim routing CreateDevice draws into this proven Metal offscreen path + minimal D3D11 test PE. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
dancinlife
pushed a commit
that referenced
this pull request
Jun 26, 2026
…더+readback smoke = ③게이트 dev M4 PASS + Blacksmith CI PASS(Paravirtual device) 양쪽 실측증명. E4✅ E5🛠️(substrate proven). 🔑 진짜 벽=DX→Metal 배선. r11 표적=D3D11 device/swapchain shim(dx_d3d11.hexa CreateDevice/CreateSwapChain→실 MTLDevice+오프스크린 경로) + 최소 D3D11 테스트 PE(own1 자작)→인터프리터 실행→D3D11 IAT→Metal = validated_manjeom>0 게이트. SSOT=ARCHITECTURE.json blocking-frontiers + memory.
dancinlife
pushed a commit
that referenced
this pull request
Jun 26, 2026
…M vtable shim→실 MTLDevice 오프스크린)·native test PASS(px_clear/triangle nonuniform)·구현됨·미배선(dead until wired). r10 #33 Metal substrate proven.⚠️ CI=github-hosted macos-15(Blacksmith 해제·#34/#35 비용·PUBLIC repo 무료). r12 표적=최소 D3D11 테스트 PE(own1 자작)+인터프리터 end-to-end 배선(IAT autobind D3D11 imports→bridge shim)→PE 실행→Metal readback=validated_manjeom>0 첫 시도. SSOT=ARCHITECTURE.json blocking-frontiers+memory.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
F-NSWINDOW-E5 r10 — ③ 게이트 "주장"→"실행 증명"
이전 턴에 'Metal 헤드리스 렌더 가능'이라 말만 했던 걸, 이제 실 Metal 렌더로 실행 증명합니다(verify-done·honesty·break-walls substrate 검증).
native/metal_offscreen_smoke.m(신규·235줄·ObjC+Metal)MTLCreateSystemDefaultDevice()→ nil이면__METAL_SMOKE__ SKIP reason=no_device(정직한 ground-truth·warn-only, 가짜 PASS 안 함).MTLTexture→ MSL 인라인 셰이더 파이프라인 → 파란 clear + 빨간 삼각형 1개 그리기 →getBytesreadback → clear색·삼각형색 둘 다 존재(non-uniform) assert.로컬 측정 (M4·exact stdout)
디스플레이 없이 실 GPU 프레임 렌더+읽기 확인 → ③ 게이트 경험적 검증 완료.
CI 배선 (warn-only)
ci.yml에 E3 step 다음 substrate step 추가. PASS/SKIP/FAIL 전부::warning::또는 로그(빌드 red 안 됨). 이 PR의 CI run이 Blacksmith GPU 세션 ground-truth(PASS=GPU 있음 / SKIP=세션 없음)를 줍니다.own1 / manjeom
gamebox 자체 삼각형을 자체 Metal 경로에 렌더 = substrate 증명, 게임 프레임 아님. validated_manjeom 여전히 0.
다음 r11
D3D11 device/swapchain shim(
dx_d3d11.hexaCreateDevice/CreateSwapChain → 실 MTLDevice + 이 오프스크린 경로) + 최소 D3D11 테스트 PE(own1 자작) → 인터프리터가 PE를 실행해 D3D11 IAT 통해 Metal 호출 = validated_manjeom>0 게이트.🤖 Generated with Claude Code
Need help on this PR? Tag
/codesmithwith what you need. Autofix is disabled.