Commit graph

941 commits

Author SHA1 Message Date
Stephen Gutekanst
2e0a7019b2 gpu: name the interface gpu.Interface
`gpu.Device` should be reserved for WGPUDevice

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
414887db2a gpu: add foundation for interface
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
bf8076918b gpu: update TODO / remove procs, etc
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
51faaf883c gpu: add webgpu.h TODO
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
4d12f229d6 gpu: document coordinate system, WebGPU spec location
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
718a66497c gpu: add gpu-hello-triangle (dawn) example
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
29b83b3118 gpu: README: note community, where to file issues, contributing
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
1ea459a7df gpu: README: record WebGPU version
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
e99aecb944 gpu: add README
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Stephen Gutekanst
376311cf16 gpu: initialize project
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-19 00:51:48 -07:00
Release automation
1a2596ecf0 gpu-dawn: update to latest binary release 2022-03-09 03:44:25 +00:00
Stephen Gutekanst
48db9c8d3c gpu-dawn: rely on version for binary release caching, not current commit
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-08 19:42:32 -07:00
Release automation
b35927d054 gpu-dawn: update to latest binary release 2022-03-06 10:03:04 +00:00
Stephen Gutekanst
4d7ace26a7 gpu-dawn: CI: uninstall libx11 on x86_64-macos to avoid conflicts
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-06 02:10:21 -07:00
Stephen Gutekanst
38b896ed83 glfw: CI: uninstall libx11 on x86_64-macos to avoid conflicts
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-06 02:10:07 -07:00
Stephen Gutekanst
09579e649d Revert "glfw: system_sdk: use addIncludeDir over addSystemIncludeDir"
This reverts commit 5f382f9365.

I forgot that system include dirs also silence some warnings that are
present in system headers, so we can't really do this.
2022-03-06 02:05:45 -07:00
Stephen Gutekanst
9b3d6500e8 CI: force uninstall of libx11 on x86_64-macos
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-06 02:04:47 -07:00
Stephen Gutekanst
12d7365282 CI: uninstall libx11 on x86_64-macos to avoid conflict
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-06 02:01:28 -07:00
Stephen Gutekanst
5f382f9365 glfw: system_sdk: use addIncludeDir over addSystemIncludeDir
Since we're not specifying a sysroot by default (as that prevents
making use of other libraries/headers on your system, if you wish to)
we can have conflicts with either the headers on your system or the
headers Zig itself ships (although that shouldn't happen, except for
cases like Windows where we ship more up-to-date DirectX headers.)

System include dirs are treated with the same relative priority as other
system include dirs, those actually on your system and the ones Zig
provides. But regular include dirs are given higher priority, and so
should give our headers a better chance of being included in the event
that there should be any conflict.

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-06 01:56:45 -07:00
Release automation
98e9fe0e0c gpu-dawn: update to latest binary release 2022-03-06 07:46:03 +00:00
Stephen Gutekanst
297f7bf2e5 gpu-dawn: utilize binary releases for x86_64-windows-gnu
Closes hexops/mach#86

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-05 23:16:08 -07:00
Stephen Gutekanst
a3cb937966 gpu-dawn: improve ABI build checks
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-05 22:48:08 -07:00
Release automation
cfa3674db2 gpu-dawn: update to latest binary release 2022-03-06 03:21:12 +00:00
Stephen Gutekanst
28ac8bd844 gpu-dawn: CI: correct Windows PATH for zig.exe
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-05 19:19:57 -07:00
Stephen Gutekanst
7e93d4f021 gpu-dawn: CI: correct Windows path to zig.exe
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-05 18:30:54 -07:00
Stephen Gutekanst
813ae21e8f gpu-dawn: CI: Make sure we download files 122x faster on Windows
https://twitter.com/slimsag/status/1500277717291323392

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-05 18:19:15 -07:00
Stephen Gutekanst
83f1104a0a gpu-dawn: CI: temporarily use patched Windows version of Zig
So that we can produce binary releases for Windows until upstream PR is
merged: https://github.com/hexops/mach/issues/167

Helps hexops/mach#86

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-05 18:12:45 -07:00
Stephen Gutekanst
057937a066 glfw: clone with -c core.longpaths=true for Windows
Yes, even in 2022 we're still dealing with Windows filepaths being too long.
The repository can't clone on GitHub actions Windows CI runner, currently,
because of this issue. https://stackoverflow.com/a/22575737

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-05 03:30:33 -07:00
Stephen Gutekanst
b5a9acc879 CI: update to latest Zig master
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-05 03:06:04 -07:00
Stephen Gutekanst
8dfcc8807a gpu-dawn: CI: update to latest Zig master
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-05 03:05:22 -07:00
Stephen Gutekanst
07dbd1a18f glfw: CI: update to latest Zig master
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-05 03:04:41 -07:00
Stephen Gutekanst
877779848d gpu-dawn: CI: correctly clone libs/mach-glfw on Windows
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-05 02:51:07 -07:00
Stephen Gutekanst
ab58515b4b gpu-dawn: CI: use actions/checkout@v3 on Windows
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-04 22:25:37 -07:00
Stephen Gutekanst
50b2c9d705 gpu-dawn: CI: begin producing binaries for x86_64-windows
Helps hexops/mach#86

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-04 21:43:15 -07:00
Stephen Gutekanst
ba0c0c9354 gpu-dawn: dev: add Windows support for release bundling/upload
Helps hexops/mach#86

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-04 21:43:15 -07:00
Release automation
d7eebaa645 gpu-dawn: update to latest binary release 2022-03-05 03:24:46 +00:00
Stephen Gutekanst
9db68d421f gpu-dawn: update to latest Dawn + windows patches
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-04 19:54:06 -07:00
Release automation
796841fd71 gpu-dawn: update to latest binary release 2022-03-05 02:02:56 +00:00
Stephen Gutekanst
1e2c49d14e gpu-dawn: build Dawn & DirectXShaderCompiler for windows
Helps hexops/mach#86

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-04 18:33:44 -07:00
Stephen Gutekanst
bc4f6f36c5 dev: dont complain about unbound GITHUB_ACTIONS env var when pushing subrepos
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-04 17:45:32 -07:00
Release automation
c22909eb88 gpu-dawn: update to latest binary release 2022-03-04 23:46:46 +00:00
Stephen Gutekanst
020ee37686 glfw: update system_sdk notes
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-04 16:35:43 -07:00
Stephen Gutekanst
6cbf0508b1 glfw: system_sdk: add Windows system SDK with updated DirectX headers
This effectively provides all you need to develop & cross compile DirectX 11/12
applications with `mach/glfw` (or just Zig in general, by copying `system_sdk.zig`
into your own project.)

Helps hexops/mach#86
Helps hexops/mach#59

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-04 16:26:58 -07:00
Stephen Gutekanst
dc8ffa9e87 gpu-dawn: correct submodule path
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-04 16:17:25 -07:00
Stephen Gutekanst
d35957766b glfw: use lowercase shell32 for Linux
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-04 16:10:51 -07:00
Stephen Gutekanst
9ac5b603a2 gpu-dawn: add libs/DirectXShaderCompiler submodule / minor fork
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-04 16:05:47 -07:00
Stephen Gutekanst
16c581b2ab glfw: fix x86_64-windows-msvc compilation support
This fixes compilation for msvc ABI. This currently only works under Windows,
I believe because Zig requires the Windows SDK to be present for msvc compilation
/ does not allow cross compilation with MSVC. Still, this is nice to have.

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-04 15:59:36 -07:00
Stephen Gutekanst
646560c834 glfw: remove alignment from packed structs / fix compilation with latest Zig
Not sure why we had these here, but alignment on a packed struct seems somewhat
nonsensical (after all, it's fields are packed as closely together as possible
so what would alignment refer to?) removing seems fine and fixes compilation with
latest Zig:

```
/Users/slimsag/Desktop/hexops/mach/gpu-dawn/libs/mach-glfw/src/hat.zig:8:20: error: unable to override alignment of packed struct fields
    up: bool align(@alignOf(u8)) = false,
                   ^
/Users/slimsag/Desktop/hexops/mach/gpu-dawn/libs/mach-glfw/src/mod.zig:10:23: error: unable to override alignment of packed struct fields
    shift: bool align(@alignOf(c_int)) = false,
```                      ^

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-03-04 15:48:40 -07:00
Release automation
cd0262fb9e gpu-dawn: update to latest binary release 2022-03-01 02:09:49 +00:00
Stephen Gutekanst
95d33f2eb8 gpu-dawn: use binary releases for musl libc
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-02-28 18:42:32 -07:00