Commit graph

732 commits

Author SHA1 Message Date
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
Release automation
49fc433b8f gpu-dawn: update to latest binary release 2022-02-28 09:55:14 +00:00
Stephen Gutekanst
bcbddfeec8 gpu-dawn: CI: build releases for glibc AND musl
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-02-28 02:27:49 -07:00
Stephen Gutekanst
5b594ce40e gpu-dawn: do not include OS and libc version in download URLs
I'm not sure including the OS and libc version in download URLs makes much sense. It may
be useful to include them as metadata in the future alongside the release, but it seems
better to exclude these from the URL (especially so that others can download them from a
script without fear of them changing for non-Zig consumption.)

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-02-28 02:20:37 -07:00
Stephen Gutekanst
a68c73bc68 gpu-dawn: CI: be more explicit about which libc we target
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-02-28 02:01:20 -07:00
Stephen Gutekanst
ae56a7127f gpu-dawn: improve error formatting
clearer now:

```
$ zig build run-dawn-example -Dtarget=x86_64-linux
error: gpu-dawn binaries for x86_64-linux.3.16...5.10.81-musl not available.
error: -> open an issue: https://github.com/hexops/mach/issues
error: -> build from source (takes 5-15 minutes):
error:        use -Ddawn-from-source=true or set `Options.from_source = true`
```

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-02-28 01:29:31 -07:00
Release automation
e9dbc5a92b gpu-dawn: update to latest binary release 2022-02-28 05:52:08 +00:00
Stephen Gutekanst
1b579559e0 gpu-dawn: when using binary release, also use headers from release
With this change, you do not even need to download the generated Dawn repository.
This reduces the download size substantially, as that repository is around 1.2G.

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-02-27 22:25:52 -07:00
Stephen Gutekanst
5134d4997d gpu-dawn: include headers for external consumers
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-02-27 20:55:49 -07:00
Release automation
9852320a0a gpu-dawn: update to latest binary release 2022-02-28 03:15:06 +00:00