Skip to content

feat(F-NSWINDOW-E5 r11): D3D11→Metal bridge + native driver test (dead-until-wired) - #36

Merged
dancinlife merged 1 commit into
mainfrom
feat/e5-r11-d3d11-bridge
Jun 26, 2026
Merged

feat(F-NSWINDOW-E5 r11): D3D11→Metal bridge + native driver test (dead-until-wired)#36
dancinlife merged 1 commit into
mainfrom
feat/e5-r11-d3d11-bridge

Conversation

@dancinlife

@dancinlife dancinlife commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

F-NSWINDOW-E5 r11 — D3D11→Metal 브리지

r10에서 증명된 Metal 오프스크린 경로 위에 D3D11 호출을 실 Metal로 통역하는 브리지(=validated_manjeom>0의 핵심).

신규 (native·ObjC+Metal)

  • d3d11_metal_bridge.{h,m}: COM-shaped ID3D11Device/DeviceContext/IDXGISwapChain/RTV/Texture2D vtable + D3D11CreateDeviceAndSwapChain → MTLDevice + 오프스크린 MTLTexture 백버퍼. ClearRTV→Metal clear·Draw→삼각형·Present→오프스크린 finalize·readback.
  • d3d11_metal_bridge_test.c: vtable 통해 D3D11 앱처럼 호출 → readback assert.

측정 (M4·-Wall -Wextra clean)

__D3D11_BRIDGE__ PASS px_clear=0x0000FFFF px_triangle=0xFF0000FF nonuniform=1

CI

Smoke — D3D11→Metal bridge (E5 r11) step (github-hosted macos-15·warn-only).

own1 / wire-to-prod

gamebox 자체 D3D11-인터페이스-shape를 Apple Metal로 — Wine/DXVK/d3d11.dll 소스 0. 구현됨·미배선(dead until wired to PE) — r12에서 인터프리터 배선. validated_manjeom 여전히 0.

🤖 Generated with Claude Code


View with Codesmith Autofix with Codesmith
Need help on this PR? Tag /codesmith with what you need. Autofix is disabled.

…d-until-wired)

D3D11-interface-shaped COM vtable layer over Apple Metal headless offscreen:
- native/d3d11_metal_bridge.h: COM C structs (ID3D11Device, ID3D11DeviceContext,
  IDXGISwapChain, ID3D11RenderTargetView, ID3D11Texture2D) with compact vtables
  (IUnknown stubs [0-2] + implemented methods). Vtable indices documented vs real
  d3d11.dll for r12 self-authored PE wiring. gamebox_D3D11CreateDeviceAndSwapChain
  (simplified 5-param vs real 12-param, mapping documented).
- native/d3d11_metal_bridge.m: ObjC+Metal+ARC. GBMetalContext holds MTLDevice,
  queue, PSO, 64x64 BGRA8 offscreen MTLTexture, triColorBuf (red). CFBridgingRetain
  per COM object for shared ownership. ClearRenderTargetView=Clear-pass,
  Draw=Load-pass+triangle, Present=no-op (headless).
- native/d3d11_metal_bridge_test.c: pure C driver calling through vtable pointers
  as a D3D11 app would. Local M4 result (clean build -Wall -Wextra):
  __D3D11_BRIDGE__ PASS px_clear=0x0000FFFF px_triangle=0xFF0000FF nonuniform=1
- .github/workflows/ci.yml: warn-only Smoke step after r10 Metal substrate step.
- native/build.sh: d3d11_bridge_test target.
- CHANGELOG.md + ARCHITECTURE.json: E5 r11 measured node.

own1: Wine 0 / DXVK 0 / d3d11.dll source 0 / DRM 0 / Warden 0.
구현됨·미배선 dead-until-wired. validated_manjeom=0 (native test, not a game frame).
r12 = minimal own1 D3D11 test PE + interpreter IAT autobind wiring = manjeom>0 gate.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@dancinlife
dancinlife merged commit cdaf332 into main Jun 26, 2026
1 check passed
@dancinlife
dancinlife deleted the feat/e5-r11-d3d11-bridge branch June 26, 2026 11:23
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.
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.

1 participant