Commit graph

435 commits

Author SHA1 Message Date
apple
cf8922cc33
gpu: fix example build (#663) 2023-01-05 01:58:13 -07:00
Stephen Gutekanst
2271c78fd6 gamemode: fix compilation after build change
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2023-01-02 12:49:58 -07:00
Lue
a1fe671db8
all: build: fix sdkPath for relative @src.file / fix autocompletion with ZLS / IDEs (#661)
* all: build: fix sdkPath for relative @src.file

Prior to this commit, the build system heavily assumed that the result
`@src.file` would always be absolute, but this is no longer
guaranteed, likely due to there being no such thing as an "absolute
path" in WASI.

It appears that for normal invocations of `zig build`, it is safe to
assume that `@src.file` is absolute. However, when ZLS uses a custom
`build_runner.zig` to collect build configuration, `@src.file` is
actually relative to the current working directory, at least on my
system. For a while, this led to ZLS completions breaking entirely,
but presently it actually causes ZLS to crash!

The solution is not as simple as using relative `sdkPath` results
as-is, because the build system may attempt to resolve these paths
relative to build root, when the paths are actually relative to the
current working directory.

This leads to a sticky situation: the current working directory is a
runtime concept, but `@src.file` is resolved at compile time. However,
it appears that the build runner does not change current working
directory in between compilation and execution, so it is probably safe
to calculate `sdkPath` using runtime current working directory.

Still, this requires major changes with how `sdkPath` works, since
runtime computation and allocations are required. So pretty much
anything that relied on `sdkPath` being comptime-known has been
refactored in this commit.

The most severe result of this is that, for example, `gpu.pkg` can no
longer be a comptime-known constant: it has to be a runtime function
that takes a `*Builder` and returns a `Pkg`.

This commit deals with usages of `*.pkg` and `sdkPath` within Mach
itself, but projects that depend on Mach such as `mach-examples` will
almost certainly require changes as well.

* all: update README to reflect change in pkg usage

For details on updating your code to use this version, see: 88b1106953

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
Co-authored-by: Stephen Gutekanst <stephen@hexops.com>
2023-01-02 01:23:46 -07:00
Aaron Winter
f5d9b1ee57
ecs: store column values as independent arrays (#642)
* get column values from separate functions
* split ArchetypeStorage.block into blocks per component type
* ecs: remove allocator field from ArchetypeStorage
* ecs: remove whitespace
* ecs: correct suspicious index operation in setRow
* add back zero-size ColumnType check; bring back reliance on component names
* ecs: validate setRaw length matches
* ecs: fix failing test & move values slice into Column type

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
Co-authored-by: Stephen Gutekanst <stephen@hexops.com>
2023-01-02 00:54:10 -07:00
Release automation
3e353f0eaf gpu-dawn: update to latest binary release 2023-01-01 10:22:21 +00:00
Wrench[bot]
d5f37257c5 all: update Zig to version 0.11.0-dev.1023+1c711b0a6
Signed-off-by: Wrench[bot] <wrench@hexops.com>
2023-01-01 02:40:57 -07:00
Release automation
77184877d4 gpu-dawn: update to latest binary release 2022-12-30 20:35:10 +00:00
Wrench[bot]
a3a0417c21 all: update Zig to version 0.11.0-dev.1000+94780f7cd
Signed-off-by: Wrench[bot] <wrench@hexops.com>
2022-12-30 12:52:31 -07:00
Release automation
fe590407d2 gpu-dawn: update to latest binary release 2022-12-29 11:20:42 +00:00
Stephen Gutekanst
f8d5db71c2 CI: do not install Zig on self-hosted runners (now managed by Wrench)
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-12-29 03:19:15 -07:00
Ali Chraghi
69cbe954ac glfw: undo setSizeLimits workaround 2022-12-28 11:47:51 -07:00
Ali Chraghi
03431acf4a glfw: accept null cursor in Window.setCursor 2022-12-28 11:47:51 -07:00
Stephen Gutekanst
653f4eb573 Revert "gpu-dawn: update to latest binary release"
This reverts commit 502bfd62e5.
2022-12-27 15:20:12 -07:00
Release automation
502bfd62e5 gpu-dawn: update to latest binary release 2022-12-27 21:49:11 +00:00
Stephen Gutekanst
078094f186 gpu-dawn: CI: fix Zig version for aarch64-linux cross compilation
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-12-27 13:47:54 -07:00
Ali Chraghi
f14536f5f0 gpu-dawn: utilize linux-aarch64 binary releases 2022-12-27 12:53:00 -07:00
Ali Chraghi
c0a5bc655c gpu-dawn: produce builds for aarch64 2022-12-27 12:53:00 -07:00
Stephen Gutekanst
b94bc1fd47 Revert "gpu-dawn: update to latest binary release"
This reverts commit db9a929940.
2022-12-26 00:28:15 -07:00
Release automation
db9a929940 gpu-dawn: update to latest binary release 2022-12-25 21:18:50 +00:00
Ali Chraghi
5849304fba all: update zig version 2022-12-25 13:36:03 -07:00
Ali Chraghi
7df12a0cae sysjs: automatically cast numbers to f64 & remove dead code 2022-12-25 13:36:03 -07:00
Ali Chraghi
f9b3ac2106 sysaudio: add webaudio backend 2022-12-25 13:36:03 -07:00
Benjaaaa
052d3a7da8
mach: fix compiler error regarding zig changes (#645) 2022-12-25 13:19:48 -07:00
Stephen Gutekanst
997f38bd0c Revert "gpu-dawn: update to latest binary release"
This reverts commit c3e05651bd.

Our M1 runner is not active right now due to the work going on with
Wrench, so this gpu-dawn version is missing macos-aarch64 builds at
the moment.
2022-12-22 11:01:46 -07:00
Release automation
c3e05651bd gpu-dawn: update to latest binary release 2022-12-19 02:03:53 +00:00
Ali Chraghi
dc3f4b4c00 sysaudio:wasapi: wait for audio client to be ready 2022-12-18 18:02:31 -07:00
Ali Chraghi
a3d23b199d system_sdk: update to latest commits 2022-12-18 18:02:31 -07:00
Ali Chraghi
3b162fdd7c all: update zig version 2022-12-18 18:02:31 -07:00
Ali Chraghi
0f3e28bc2a sysaudio: rewrite in zig
removes libsoundio dependency
2022-12-18 18:02:31 -07:00
Aaron Winter
8aa2c97079
ecs: improve formatting (#643) 2022-12-18 03:21:11 -07:00
Keith Chambers
c9793a4666
glfw: update to zig 0.11.0-dev.811 (#640) 2022-12-15 16:47:19 -07:00
BratishkaErik
b1191cbeb5
{mach,gpu}: more undef/nul -> undefined/null renames (#638)
Signed-off-by: Eric Joldasov <bratishkaerik@getgoogleoff.me>
2022-12-14 18:20:11 -07:00
Keith Chambers
81fce62133
freetype: fix incorrect font path in embedFile (#636) 2022-12-14 02:19:34 -07:00
Eric Joldasov
37b7d32485 sysjs: use null and undefined in enums
Signed-off-by: Eric Joldasov <bratishkaerik@getgoogleoff.me>
2022-12-14 02:18:21 -07:00
Eric Joldasov
3397497cc9 sysaudio: use undefined in enums
Signed-off-by: Eric Joldasov <bratishkaerik@getgoogleoff.me>
2022-12-14 02:18:21 -07:00
Eric Joldasov
441b7641b5 glfw: use null in enums
Signed-off-by: Eric Joldasov <bratishkaerik@getgoogleoff.me>
2022-12-14 02:18:21 -07:00
Eric Joldasov
94ba8338f5 gpu: use null and undefined in enums
Closes #626
Signed-off-by: Eric Joldasov <bratishkaerik@getgoogleoff.me>
2022-12-14 02:18:21 -07:00
Aaron Winter
72ef60c8c2
ecs: fix segfault in Entities.deinit (#629)
Co-authored-by: Aaron Winter <wintera@Aarons-MacBook-Pro.local>
2022-11-26 20:53:44 -07:00
Aaron Winter
a06ac6356d
ecs: rename sort function to be camelCase (#628)
Co-authored-by: Aaron Winter <wintera@Aarons-MacBook-Pro.local>
2022-11-26 20:42:15 -07:00
Stephen Gutekanst
568d0155fd system-sdk: use macOS 12 SDK for macOS 13 for now
Fixes hexops/mach#606

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-11-25 10:31:04 -07:00
Stephen Gutekanst
3f51ef6fde gpu: make it easier to query Device/Adapter limits correctly
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-11-24 09:55:18 -07:00
Stephen Gutekanst
661ac75a31 glfw: zig fmt (true and false no longer reserved names)
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-11-24 09:55:07 -07:00
David Vanderson
305fa7fa35
freetype: add option to build using separate zlib (#621) 2022-11-22 10:22:10 -07:00
Slava Mostovoy
9b9852b56e
sysaudio: add ability to provide system_sdk options (#619) 2022-11-20 11:45:07 -07:00
Stephen Gutekanst
c96ff64958 model3d: disable alignment sanitizer for all of model3d
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-11-14 18:14:35 -07:00
Keith Chambers
d21cce37a4
model3d: set cross-target when compiling statically (#616)
This is required for building with a non-native target, otherwise library is build for the native platform and attempts to link fail
2022-11-14 17:53:48 -07:00
Stephen Gutekanst
917b0eb8be model3d: disable UBSan alignment sanitization on m3d_load
Works around: https://gitlab.com/bztsrc/model3d/-/issues/19

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-11-14 16:52:36 -07:00
Keith Chambers
731e2b1287
{mach,model3d}: link model3d as static lib instead of adding C files to build step (#613)
This allows the library to link better with projects. Otherwise you can end up with a mix of conflicts over that compiler + version to use.

Also adds .use_model3d option to mach build system. If set to true, model3d will be linked in statically to target project.
2022-11-14 15:43:53 -07:00
Stephen Gutekanst
d694b8031a glfw: ensure Window.from handle is untyped
Since users of the library do not have access to the `@cImport` struct (and we
do not want to expose that), the user may pass only an untyped `*anyopaque` pointer
which we'll internally cast to `*c.GLFWwindow`.

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-11-06 15:02:57 -07:00
Stephen Gutekanst
2d705a8c3e earcut: fix inverted conditional in z-order index curve hashing
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2022-11-06 13:42:59 -07:00