Skip to content
Merged
Show file tree
Hide file tree
Changes from 12 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,13 @@
<PackageVersion Include="OpenFontSharp" Version="1.0.0" />
<PackageVersion Include="ProDiagnostics" Version="12.0.0" />
<PackageVersion Include="Silk.NET.Input" Version="2.23.0" />
<PackageVersion Include="Silk.NET.Input.Common" Version="2.23.0" />
<PackageVersion Include="Silk.NET.GLFW" Version="2.23.0" />
<PackageVersion Include="Silk.NET.WebGPU" Version="2.23.0" />
<PackageVersion Include="Silk.NET.WebGPU.Native.WGPU" Version="2.23.0" />
<PackageVersion Include="Silk.NET.Windowing" Version="2.23.0" />
<PackageVersion Include="Silk.NET.Windowing.Common" Version="2.23.0" />
<PackageVersion Include="Silk.NET.Windowing.Glfw" Version="2.23.0" />
<PackageVersion Include="StbImageSharp" Version="2.30.15" />
<PackageVersion Include="StbImageWriteSharp" Version="1.16.7" />
<PackageVersion Include="System.Drawing.Common" Version="10.0.9" />
Expand Down
33 changes: 32 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ ProGPU release packages are built from `eng/progpu-package-list.sh` by the `Rele
| --- | --- | --- |
| `ProGPU.Backend` | WebGPU device, swapchain, Silk.NET windowing, and platform backend services. | [![NuGet](https://img.shields.io/nuget/vpre/ProGPU.Backend.svg)](https://www.nuget.org/packages/ProGPU.Backend/) |
| `ProGPU.Browser` | Batched .NET WebAssembly dispatcher and `navigator.gpu` browser host services. | [![NuGet](https://img.shields.io/nuget/vpre/ProGPU.Browser.svg)](https://www.nuget.org/packages/ProGPU.Browser/) |
| `ProGPU.iOS` | Native UIKit/`CAMetalLayer` host using statically linked WebGPU over Metal. | Experimental source project |
| `ProGPU.Android` | Native `SurfaceView` host using WebGPU and wgpu-native directly over Vulkan. | Experimental source project |
| `ProGPU.DirectX` | DirectX-compatible facade and shader-oriented API surface implemented on ProGPU/WebGPU. | [![NuGet](https://img.shields.io/nuget/vpre/ProGPU.DirectX.svg)](https://www.nuget.org/packages/ProGPU.DirectX/) |
| `ProGPU.Transpiler` | Shader/source transformation helpers used by generated GPU pipelines. | [![NuGet](https://img.shields.io/nuget/vpre/ProGPU.Transpiler.svg)](https://www.nuget.org/packages/ProGPU.Transpiler/) |
| `ProGPU.Compute` | Compute pipeline helpers for GPU-side effects, acceleration, and future hit-test indexes. | [![NuGet](https://img.shields.io/nuget/vpre/ProGPU.Compute.svg)](https://www.nuget.org/packages/ProGPU.Compute/) |
Expand All @@ -34,9 +36,38 @@ Local package build:
PROGPU_PACKAGE_VERSION=0.1.0-preview.22 ./eng/progpu-pack.sh
```

## Native iPhone WebGPU sample

`ProGPU.Samples.iOS` is a thin native host for the same `ProGPU.Samples` gallery used by desktop and browser. It renders directly into a physical-pixel `CAMetalLayer` through a Metal-only `wgpu-native` XCFramework and the existing Silk.NET WebGPU API. It has no MAUI, Uno, `WKWebView`, or JavaScript rendering dependency.

```bash
./eng/build-wgpu-native-ios.sh
dotnet build src/ProGPU.Samples.iOS/ProGPU.Samples.iOS.csproj \
-c Debug -r iossimulator-arm64
```

The iOS-specific solution, native build details, ABI pin, architecture research, simulator commands, physical-device guidance, and current limitations are in [`docs/ios.md`](docs/ios.md).

## Native Android WebGPU sample

`ProGPU.Samples.Android` is the corresponding thin .NET Android host for the
shared gallery. It renders directly to an `ANativeWindow`-backed WebGPU surface
through Vulkan, with no browser, Android `Canvas`, MAUI, Uno, or readback path.

```bash
export ANDROID_NDK_ROOT=/absolute/path/to/android-sdk/ndk/your-version
./eng/build-wgpu-native-android.sh arm64
dotnet build src/ProGPU.Samples.Android/ProGPU.Samples.Android.csproj \
-c Debug -f net10.0-android
```

The Android architecture, exact native ABI pin, ARM64/x64 build lane, AOT
publishing guidance, input/IME/inset/storage contracts, clean-room research,
and device validation gates are in [`docs/android.md`](docs/android.md).

## Browser WebGPU sample

The gallery is split into a shared `ProGPU.Samples` library and thin `ProGPU.Samples.Desktop` and `ProGPU.Samples.Browser` hosts. The browser host publishes with the .NET WebAssembly SDK, negotiates WebGPU capabilities, sends aligned binary command packets directly from WASM memory, and passes embedded WGSL unchanged to `GPUDevice.createShaderModule`.
The gallery is split into a shared `ProGPU.Samples` library and thin `ProGPU.Samples.Desktop`, `ProGPU.Samples.Browser`, `ProGPU.Samples.iOS`, and `ProGPU.Samples.Android` hosts. The browser host publishes with the .NET WebAssembly SDK, negotiates WebGPU capabilities, sends aligned binary command packets directly from WASM memory, and passes embedded WGSL unchanged to `GPUDevice.createShaderModule`.

### Prerequisites

Expand Down
406 changes: 406 additions & 0 deletions docs/android.md

Large diffs are not rendered by default.

Loading
Loading