Files
appsandbox/Directory.Build.props
T
James Stringer 5674a4c66d Bump version to 0.1.2
### Added
- **Windows on ARM (ARM64).** App Sandbox now runs on ARM64 Windows PCs and can
  create **ARM Windows 11 VMs with GPU-PV** — paravirtualized GPU acceleration in
  the guest.

### Fixed
- **Hardware OpenGL in Windows VMs.** OpenGL apps in the guest were stuck on
  Windows' GDI Generic software renderer (OpenGL 1.1) — apps needing OpenGL 4.3+
  (e.g. Blender) refused to start. The old approach selected Microsoft's OpenGLOn12
  driver via an AppInit DLL, but Windows disables AppInit DLLs when Secure Boot is
  on — and App Sandbox runs guests with Secure Boot on by default — so it never
  engaged (and even when it did, Windows' opengl32 dropped the GPU driver across the
  virtual GPU's render/display split). App Sandbox now installs the Mesa OpenGL
  driver directly into the guest, taking Windows' broken opengl32 out of the path,
  so apps get real GPU-accelerated OpenGL 4.6 (or software 4.6 with no GPU) — with
  Secure Boot left on.
- **New VMs could fail to start with an odd memory size.** HCS (Windows' Host
  Compute Service) requires VM memory to be a multiple of 2 MB; the suggested
  default (half the host RAM) or a manually entered value could be odd (e.g. 7991 MB)
  and fail to start. RAM is now rounded to an even value in the suggested default,
  the create form, and inline edits.
- **New Sandbox dialog no longer closes by accident.** Selecting text in a field
  and releasing the mouse outside the dialog no longer dismisses it.
- Various stability and bug fixes across the Windows, macOS, and Linux components.

### Known issues
- **x64 (emulated) apps in ARM Windows VMs don't get the OpenGL fix.** The Mesa
  driver shipped on ARM is ARM64-only, so emulated x64 apps fall back to the old
  renderer; native ARM64 apps get full GPU OpenGL.
- **ARM Linux (Ubuntu 26.04 LTS) guests do not work in this release — on ARM,
  Windows is the only guest that works.** Ubuntu 26.04's arm64 kernel constantly
  churns BPF JIT memory, which makes the kernel boot extremely slowly and never
  reach the Ubuntu desktop. On a Qualcomm Snapdragon X1-Plus (ASUS A14) using 25H2,
  the guest never came up and the App Sandbox agent never came online.
2026-06-07 15:25:42 -04:00

52 lines
2.7 KiB
XML

<Project>
<!--
SINGLE SOURCE OF TRUTH for the App Sandbox version.
Edit the four numbers below and nothing else. Everything derives from them at build time:
* every app binary's FileVersion / ProductVersion (via build\version.rc, wired in
Directory.Build.targets)
* both drivers' DriverVer (<TimeStamp> in the driver .vcxproj)
* the release zip name (make-release.ps1)
* the Microsoft submission + product name (sign-drivers.ps1)
MSBuild auto-imports this file into every project in the tree, so no <Import> is needed.
-->
<PropertyGroup>
<AsbVersionMajor>0</AsbVersionMajor>
<AsbVersionMinor>1</AsbVersionMinor>
<AsbVersionPatch>2</AsbVersionPatch>
<AsbVersionRevision>0</AsbVersionRevision>
<!-- Derived forms - do not edit. -->
<AsbVersion>$(AsbVersionMajor).$(AsbVersionMinor).$(AsbVersionPatch).$(AsbVersionRevision)</AsbVersion>
<AsbVersionComma>$(AsbVersionMajor),$(AsbVersionMinor),$(AsbVersionPatch),$(AsbVersionRevision)</AsbVersionComma>
<AsbVersionShort>$(AsbVersionMajor).$(AsbVersionMinor).$(AsbVersionPatch)</AsbVersionShort>
</PropertyGroup>
<!--
The WDK's build-time INF verifier (DPVerifierTask) can't load x86\InfVerif.dll outside the
Visual Studio build environment, so command-line / CI builds error on it (HRESULT 0x8007007E).
Skip it there ONLY - VS GUI builds still run it, and the INF is re-verified by Microsoft on
every submission. $(BuildingInsideVisualStudio) is set to 'true' by the IDE and is empty for
command-line msbuild.
-->
<PropertyGroup Condition="'$(BuildingInsideVisualStudio)' != 'true'">
<SkipPackageVerification>true</SkipPackageVerification>
</PropertyGroup>
<!--
Same class of problem as the InfVerif skip above, for ARM64 driver builds.
ARM64 drivers must be Universal, so the WDK runs ApiValidator on them — but it
defaults to the x86 ApiExtractor (aitstatic.exe), which cannot read an ARM64 PE
and fails with exit code 193 (ERROR_BAD_EXE_FORMAT) when cross-building ARM64 on
a non-ARM64 host (e.g. the x64 dev/CI box). Disable it ONLY for that cross-build
case: native ARM64 hosts and every x64 build still run it, and Microsoft re-runs
full API validation on every attestation submission, so nothing ships unchecked.
(Checks both PROCESSOR_ARCHITECTURE and ...ITEW6432 so an emulated x64 MSBuild on
an ARM64 host is correctly treated as "host can validate".)
-->
<PropertyGroup Condition="'$(Platform)' == 'ARM64' And '$(PROCESSOR_ARCHITECTURE)' != 'ARM64' And '$(PROCESSOR_ARCHITEW6432)' != 'ARM64'">
<ApiValidator_Enable>false</ApiValidator_Enable>
</PropertyGroup>
</Project>