Commit graph

482 commits

Author SHA1 Message Date
InKryption
4a27bf25ac glfw: update CI to latest Zig master 2021-12-19 16:15:32 -07:00
InKryption
3bea968cb4 CI: update to latest Zig master 2021-12-19 16:15:32 -07:00
InKryption
f8e14dabc6 Run zig fmt
>> Zig master changed `c_void` to `anyopaque`, and zig fmt helps to change code as appropriate
2021-12-19 16:15:32 -07:00
Stephen Gutekanst
c279e0c794 gpu: update to latest Dawn revision as of Dec 15, 2021
See hexops/dawn#4

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2021-12-15 20:53:20 -07:00
iddev5
97ebee0e00 gpu: Fix invalid parameter type of glfw framebuffer callback function 2021-12-14 23:41:19 -08:00
Stephen Gutekanst
2e26559cc3 CI: remove sponsors generation (moved to website)
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2021-12-14 18:16:45 -08:00
Stephen Gutekanst
398b289941 glfw: mention Matrix chat room
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2021-12-14 18:16:45 -08:00
Stephen Gutekanst
8b717318d9 README: add new website, Matrix chat room
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2021-12-14 18:16:45 -08:00
Ali Chraghi
595cf48450
glfw: replace isize, usize with i32, u32 where appropriate (#126)
Fixes hexops/mach#114
2021-12-14 09:20:14 -07:00
slimsag
8b5fdbc333 README: regenerate sponsors section 2021-12-12 22:51:57 +00:00
Stephen Gutekanst
3535c8023f gpu: prevent compiler flags from being repeated for each source file
This previously lead to a very long list of arguments to the compiler, so
long in fact that Windows cannot handle it.

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2021-12-12 14:51:36 -08:00
Stephen Gutekanst
d07b61787e gpu: reduce compilation units to improve iteration time by ~387ms
See hexops/mach#124

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2021-12-12 14:51:36 -08:00
Stephen Gutekanst
fe17507689 gpu: reduce compilation units to improve iteration time by ~763ms
See hexops/mach#124

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2021-12-12 14:51:36 -08:00
Stephen Gutekanst
4a9fda49e0 gpu: reduce compilation units to improve iteration time by ~566ms
See hexops/mach#124

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2021-12-12 14:51:36 -08:00
Stephen Gutekanst
43ffa1c408 gpu: reduce compilation units to improve iteration time by ~288ms
See hexops/mach#124

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2021-12-12 14:51:36 -08:00
Stephen Gutekanst
51aae5e474 gpu: reduce compilation units to improve iteration time by ~121ms
See hexops/mach#124

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2021-12-12 14:51:36 -08:00
Stephen Gutekanst
3ec74222e6 glfw: reduce compilation units to bring iteration time down to ~90ms
This consistently shaves off about 40ms (~130ms -> ~90ms, 30% reduction) from build times when iterating.

On Windows, I suspect the result will be much greater due to slow filesystem perf there and the fact
that this reduces the # of files read.

This was originally brought to my attention as a possibility by @meshula in hexops/dawn#2, the way this
works is by reducing compilation units so that C headers only need to be read/parsed/interpreted once
rather than once per individual C source file we are compiling.

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2021-12-10 03:52:41 -08:00
slimsag
c552148d0b README: regenerate sponsors section 2021-12-10 11:40:19 +00:00
Stephen Gutekanst
77d2e8a9a3 glfw: improve consecutive build times by 4-12x
This substantially reduces consecutive build times when using mach/glfw.

`system_sdk.getSdkPath` is frequently invoked as part of the build process, and previously it was
doing some fairly involved work (ensuring the native SDK is at the right revision, needless
`git fetch` in native SDKs to check for updates, etc.)

We now do far less work in `getSdkPath`, and additionally cache the result in-memory. This improves
build times substantially, but especially so with consecutive (non-cold-cache) build times:

* For `mach/glfw`: ~2s before, ~160ms after
* For `mach/gpu`: , ~16s before, ~3.6s after

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2021-12-10 03:40:00 -08:00
InKryption
a9d378583d glfw: rename capture appropriately 2021-12-09 19:42:28 -08:00
InKryption
f8be8582af glfw: replace `glfw.dont_care as sentinel value
Apply same pattern to other hints which can take on the value of `glfw.dont_care`.
2021-12-09 19:42:28 -08:00
InKryption
4252ee0b1f glfw: replace glfw.dont_care as sentinel value
Also change logic inside `Hints.set` to account for this special case
2021-12-09 19:42:28 -08:00
InKryption
f906bd6c79 glfw: remove accidental re-addition of TODO 2021-12-09 19:42:28 -08:00
InKryption
f953621a40 glfw: add doc-comment
Add comment for new `glfw.Window.SizeOptional` struct

Co-authored-by: Stephen Gutekanst <stephen.gutekanst@gmail.com>
2021-12-09 19:42:28 -08:00
InKryption
b50b56760e glfw: replace usage of glfw.dont_care as sentinel value for parameters in some glfw.Window functions 2021-12-09 19:42:28 -08:00
InKryption
b8c913cd6c glfw: remove TODOs 2021-12-08 19:30:01 -08:00
Stephen Gutekanst
9ea4d2aa6f glfw: correctly @errorSetCast when returning errors from createWindowSurface
Fixes an issue where `createWindowSurface` would not compile (found when
updating https://github.com/hexops/mach-glfw-vulkan-example to latest.)

Introduced in hexops/mach#115

cc @InKryption

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2021-12-06 22:16:06 -07:00
InKryption
3648d6b9c4
glfw: Denormalize errors (#115)
Closes hexops/mach#96

Co-authored-by: Stephen Gutekanst <stephen@hexops.com>
2021-12-06 21:52:15 -07:00
Stephen Gutekanst
233fc53a17 CI: update to latest Zig master
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2021-12-06 20:03:38 -08:00
Stephen Gutekanst
32a5addcbb glfw: update CI to latest Zig master
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2021-12-06 20:03:38 -08:00
Stephen Gutekanst
7ecef80ec7 gpu: update to latest Zig master version (allocgate)
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2021-12-06 20:03:38 -08:00
BratishkaErik
784aa40093 glfw: update system_sdk.zig to latest Zig master 2021-12-06 20:03:38 -08:00
Stephen Gutekanst
5b2cb46700 gpu: reduce debug Dawn static library size from ~947M -> ~53M
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2021-12-04 23:01:16 -07:00
Stephen Gutekanst
1c6792a492 gpu: add OpenGL fallback support for Linux
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2021-12-05 04:25:19 +00:00
Stephen Gutekanst
6b0129f590 gpu: implement OpenGL / OpenGL ES adapter discovery in example
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2021-12-05 04:23:06 +00:00
Stephen Gutekanst
d8d0c85572 glfw: make getProcAddress ABI compatible with C implementation
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2021-12-05 04:22:21 +00:00
Stephen Gutekanst
507f4fa6aa gpu: allow choosing WGPU_BACKEND in example program
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2021-12-05 04:21:29 +00:00
Stephen Gutekanst
1fc499922f gpu: update Dawn to include generated OpenGL desktop sources
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2021-12-05 04:19:44 +00:00
Stephen Gutekanst
d9ec84b327 gpu: implement C wrapper for Dawn Instance.discoverAdapters
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2021-12-04 21:49:45 +00:00
Stephen Gutekanst
4ebb4571ac gpu: correctly target ~60hz, not 62,500hz, in Dawn example
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2021-12-02 18:05:46 +00:00
Stephen Gutekanst
fd0eeb2662 gpu: handle resize events in example (fixes Vulkan crash on resize)
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2021-12-01 10:18:03 +00:00
Stephen Gutekanst
8f3726dfa2 gpu: improve Dawn example backend type detection
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2021-12-01 08:46:09 +00:00
Stephen Gutekanst
91728ebde9 gpu: update to latest Dawn version
See https://github.com/hexops/dawn/pull/1

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2021-12-01 00:01:18 -07:00
Stephen Gutekanst
0fc2876e41 glfw: update Linux SDK (enforce static linkage of libvulkan and libX11-xcb)
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2021-12-01 04:04:19 +00:00
Stephen Gutekanst
77a4b5239b glfw: update Linux system SDK
Helps hexops/mach#87

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2021-11-30 16:56:15 -07:00
Stephen Gutekanst
561f9408b8 gpu: add support for building on Linux
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2021-11-30 15:16:09 -07:00
Stephen Gutekanst
e9b481a709 gpu: include Vulkan headers
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2021-11-30 15:02:10 -07:00
Stephen Gutekanst
e1d17f461e gpu: implement source inclusion for most Vulkan/D3D12/OpenGL backends
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2021-11-30 14:29:53 -07:00
Stephen Gutekanst
3f56f3f964 gpu: make Dawn source inclusion feature-oriented, not target-oriented
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2021-11-30 14:11:28 -07:00
Stephen Gutekanst
30c60162ae gpu: remove invalid TODOs
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
2021-11-30 13:59:34 -07:00