mirror of
https://github.com/jamesstringer90/appsandbox.git
synced 2026-10-22 19:12:42 -05:00
Provision the Microsoft D3D mapping layers (OpenGLOn12, OpenCLOn12, Dozen) into Windows GPU-PV guests so apps get hardware-accelerated GL/CL/Vulkan on top of the projected host D3D12 driver. - d3dlayers.c/.h: fetch the D3DMappingLayers package from Microsoft on demand over WinHTTP (displaycatalog -> FE3 -> CDN), extract with in-box tar, cache beside the exe. Sets the Dozen ICD manifest library_path to the absolute guest path (the Vulkan loader's LoadLibraryEx fallback uses LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR, which requires a fully-qualified path). - fe3_templates.h: SOAP envelopes for the FE3 client. - gpu_enum.c/.h: add the AppSandbox.GlLayers Plan 9 share (guest path C:\Windows\AppSandbox\d3dlayers). - asb_core.c: stage the layers + OpenGL shim and append the share before VM start. - disk_util.c: skip the GlLayers share during build-time image staging. - agent.c: gl_provision() copies dxil.dll to System32 and registers the ICDs (OpenGL via AppInit_DLLs shim, OpenCL + Vulkan via Khronos registry keys) after the GPU driver copy, before the device disable/enable cycle. - tools/gl-shim: appsandbox_gl_shim.dll, an AppInit_DLLs shim that IAT-hooks gdi32!D3DKMTQueryAdapterInfo to route opengl32 to OpenGLOn12.dll. - AppSandbox.sln / AppSandboxCore.vcxproj: build wiring.