Commit graph

70 commits

Author SHA1 Message Date
Andrei Alexeyev
def8a80b9e
build: update cglm to 0.9.2 2024-01-24 04:12:47 +01:00
Andrei Alexeyev
ce7fc49050
build: update zlib to 1.3.1 2024-01-24 04:12:44 +01:00
Andrei Alexeyev
ddd27ab9b1
build: update SPIRV-Cross to 1.3.261.1 2023-12-17 01:09:48 +01:00
Andrei Alexeyev
3a7407b1c6
build: update zlib to 1.3 2023-12-17 01:03:48 +01:00
Andrei Alexeyev
b501171bd4
build: update zstd to 1.5.5 2023-12-17 01:03:48 +01:00
Andrei Alexeyev
772ed0c88e
build: update libzip to 1.10.1 2023-12-17 01:03:48 +01:00
Andrei Alexeyev
fa7b8bda0d
build: update libwebp to 1.3.2 2023-12-17 01:03:48 +01:00
Andrei Alexeyev
1f339d1d98
build: update freetype2 to 2.13.2 2023-12-17 01:03:48 +01:00
Andrei Alexeyev
a260cfbdf7
build: update cglm to 0.9.1 2023-12-17 01:03:48 +01:00
Andrei Alexeyev
d2296b9877
build: update sdl2 to 2.28.5 2023-12-17 01:03:48 +01:00
Andrei Alexeyev
cab432f843
gles: create angle context in webgl mode on windows
Cubemaps are broken in ANGLE's D3D11 backend, except in WebGL mode for
some reason. This is a terrible workaround, but it beats fucked up
rendering in stage backgrounds.
2023-08-28 19:15:40 +02:00
Andrei Alexeyev
97e99df9fc
glad: add egl and regenerate 2023-08-28 15:36:20 +02:00
Andrei Alexeyev
c8301a8428
build: update shaderc wrap to 2023.5 2023-08-05 02:17:16 +02:00
Andrei Alexeyev
0bc32ccafa
build: update glslang wrap to 12.3.1 2023-08-05 02:17:16 +02:00
Andrei Alexeyev
4f4c9ecb7e
build: update SPIRV-Tools wrap to 2023.2 2023-08-05 02:17:16 +02:00
Andrei Alexeyev
df26634249
build: update SPIRV-Headers wrap to sdk-1.3.250.1 2023-08-05 02:17:16 +02:00
Andrei Alexeyev
898a10566f
build: update SPIRV-Cross wrap to 1.3.250.1 2023-08-05 02:17:16 +02:00
Andrei Alexeyev
66a146e3e7
build: update libzip wrap to 1.10.0 2023-08-05 02:17:16 +02:00
Andrei Alexeyev
ac6eb852e3
build: update libwebp wrap to 1.3.1 2023-07-31 03:59:55 +02:00
Andrei Alexeyev
338b4f002d
build: update libzstd wrap to 1.5.4 2023-07-31 03:51:43 +02:00
Andrei Alexeyev
e8a361f23a
build: update zlib wrap to 1.2.13 2023-07-31 03:39:29 +02:00
Andrei Alexeyev
8ac88e0ee3
build: update opus wrap to 1.4 2023-07-31 03:32:48 +02:00
Andrei Alexeyev
7259d3fb6c
build: update ogg wrap to 1.3.5 2023-07-31 03:26:59 +02:00
Andrei Alexeyev
3130fb7161
build: update libpng wrap to 1.6.40 2023-07-31 03:11:44 +02:00
Andrei Alexeyev
cbadf904fd
build: update freetype wrap to 2.13.1 2023-07-31 03:07:01 +02:00
Andrei Alexeyev
9c968ba088
build: update cglm wrap to 0.9.0 2023-07-31 02:52:43 +02:00
Andrei Alexeyev
651a113009
build: update sdl2 to 2.28.1 2023-07-29 03:25:38 +02:00
Andrei Alexeyev
267f47fc0e
build,ci: Build system maintenance (#350)
Squashed commit of the following:

commit 9ab0197ee1
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Wed Dec 28 23:05:58 2022 +0100

    build: add dummy descriptions for deprecated options

commit b0c41d4719
Author: Alice D <alice@starwitch.productions>
Date:   Mon Dec 26 15:18:09 2022 -0500

    update docker containers with ones containing meson 0.63.3

commit a2dd4173fc
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Sun Dec 25 19:20:44 2022 +0100

    build: featurize audio options

commit 7c59e2a569
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Sun Dec 25 19:20:35 2022 +0100

    build: remove dead code

commit cf500af137
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Sun Dec 25 19:07:37 2022 +0100

    doc: update BUILD.rst

commit 9764ac706f
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Sun Dec 25 17:12:37 2022 +0100

    ci: disable WGI joystick backend for SDL

    Fails to build with latest llvm-mingw

commit 2d4f310b90
Author: p-sam <p-sam@d3vs.net>
Date:   Sun Dec 25 17:03:47 2022 +0100

    switch: fix missing include

commit 9264f1649d
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Sat Dec 24 14:36:41 2022 +0100

    ci: update meson to 0.63.3 due to a bug

commit 3e37be3d8f
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Sat Dec 24 13:42:34 2022 +0100

    ci: update build options

commit 281a39a4f5
Author: Alice D <alice@starwitch.productions>
Date:   Sun Dec 18 00:17:07 2022 -0500

    ci: change when apt is cleaned up for switch image

commit 2f2100a84c
Author: Alice D <alice@starwitch.productions>
Date:   Sun Dec 18 00:11:08 2022 -0500

    ci: bump switch homebrew container version

commit ebaff59260
Author: Alice D <alice@starwitch.productions>
Date:   Sat Dec 17 22:55:39 2022 -0500

    ci: bump windows container version

commit 7ce6f23419
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Sat Dec 17 07:36:28 2022 +0100

    build: featurize renderer options

commit a345f21b35
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Sat Dec 17 07:33:30 2022 +0100

    build: revert to explicit fallback for libzstd

    Implicit fallback causes conflicts in the basis_universal subproject

    https://github.com/mesonbuild/meson/issues/11189

commit b2de61f5c5
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Sat Dec 17 05:29:29 2022 +0100

    build: remove debug_opengl

    This option was always misdocumented, as it only controlled whether GL
    debugging is on by default. You can still control it with the
    TAISEI_GL_DEBUG environment variable, which is set to 1 in meson devenv.

commit 4c659ba195
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Fri Dec 16 08:03:37 2022 +0100

    build: set up useful env vars for meson devenv

    Makes Taisei load resources from the source tree, making live reload
    work; enables OpenGL debugging by default; works around ASan stack use
    after return false positives.

commit 1ddc58b84a
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Wed Dec 14 08:06:32 2022 +0100

    build: featurize docs; always install licenses

commit c3a94d7f5b
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Wed Dec 14 07:46:28 2022 +0100

    build: featurize shader_transpiler

commit 619d82ae36
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Wed Dec 14 07:38:30 2022 +0100

    build: allow libzip fallback by default

commit 79ab72292a
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Wed Dec 14 07:35:51 2022 +0100

    build: featurize use_libcrypto

commit b393077f71
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Wed Dec 14 05:03:20 2022 +0100

    build: featurize validate_glsl

commit 7d76484079
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Wed Dec 14 04:34:31 2022 +0100

    build: featurize some more installation options

commit 17c0bda205
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Wed Dec 14 03:24:46 2022 +0100

    build: deprecate enable_zip for vfs_zip; convert package_data into feature

commit 9a4ef8c091
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Wed Dec 14 02:37:55 2022 +0100

    build: deprecate developer=auto; default to false

commit 807240e508
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Wed Dec 14 02:24:04 2022 +0100

    build: move subproject fallback info into wraps

commit 08c953f487
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Wed Dec 14 01:57:33 2022 +0100

    build: deprecate 'static' option

    Meson has a built-in `prefer_static` now

commit c575601537
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Wed Dec 14 01:49:31 2022 +0100

    build: remove complicated shaderc detection logic

    Meson does all of this internally since 0.51.0

commit cd2d460d4b
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Wed Dec 14 01:45:17 2022 +0100

    build: Require meson >=0.63.0

commit 10abd790f7
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Mon Dec 12 05:16:47 2022 +0100

    ci: remove meson dist version workaround from release workflow

    Meson should know the correct version now

commit 31a07d8c3c
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Mon Dec 12 03:46:28 2022 +0100

    build: use built-in summary() function

commit 0c47f6d14b
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Mon Dec 12 04:33:01 2022 +0100

    build: remove -Dversion_fallback and introduce .VERSION file

    The version script will now first try to read the version from a
    .VERSION file in the source root. If that file does not exist, it will
    query git. The .VERSION file is not included in the git repository, it
    is generated for inclusion in source tarballs.

    Package maintainers who had any use for -Dversion_fallback may want to
    create the .VERSION file themselves.

    Additionally, some git-specific files have been removed from source
    tarballs.

commit d32332a5e3
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Mon Dec 12 03:00:07 2022 +0100

    build: set the "real" version in project()

commit f9a3fbc729
Author: Andrei Alexeyev <akari@taisei-project.org>
Date:   Mon Dec 12 01:50:08 2022 +0100

    build: raise meson_version and remove some legacy workarounds

    Effectively 0.56.0 was already required since we started using some of
    its features at some point.

    This also fixes all current meson warnings.
2022-12-28 23:15:55 +01:00
Andrei Alexeyev
9299ec6f56
build: remove unused sdl2_mixer wrap 2022-01-17 23:11:30 +02:00
Andrei Alexeyev
eb091e106c
build: update sdl2.wrap to 2.0.20 2022-01-17 19:42:11 +02:00
Andrei Alexeyev
e80c322e55
build: update sdl2.wrap to 2.0.18 2022-01-14 20:24:04 +02:00
Andrei Alexeyev
6bc4695796
build: update SPIRV-Cross, SPIRV-Headers, SPIRV-Tools, glslang, shaderc 2021-04-25 14:46:55 +03:00
Andrei Alexeyev
aaac87603a
build: update opusfile wrap 2021-04-19 20:37:33 +03:00
Andrei Alexeyev
622fd1e48b
build: stop vendoring cglm
* Remove cglm from submodules
* Add cglm to list of dependencies
* Prefer system version of cglm, with a wrap fallback (as with other
  dependencies)
2021-04-19 00:50:20 +03:00
Andrei Alexeyev
96459b19a7
build: update libwebp wrap to 1.2.0 2021-04-09 12:41:55 +03:00
Andrei Alexeyev
177577239d
build: update libzip wrap 2021-04-06 03:57:29 +03:00
Andrei Alexeyev
f5b4477f0d
build: add libzstd subproject 2021-03-27 18:29:56 +02:00
Andrei Alexeyev
50efbede34
glcommon: more robust texture format feature detection
Make less assumptions about support beyond the spec guarantees, and use
GL_ARB_internalformat_query2 to get the actual set of supported features
from the driver, if available.

Follow-up to #274
2021-01-19 05:42:24 +02:00
Andrei Alexeyev
a5fd6fe5d9
Texturing overhaul: GPU compression, sRGB sampling, swizzles, etc. (#240)
* WIP compressed textures, swizzles, sRGB sampling, ...

* refactor texture type info & fix random bugs

* fix preprocessing of sRGB textures

* handle y-flipped basis textures

* glcommon: better WebGL compat for compressed format detection

* missed WEBGL_compressed_texture_pvrtc

* implement compressed texture xcoding and uploading

* Add basis_universal submodule

* Reorganize texture loader code

Clean up some code
Isolate Basis Universal loader into a separate module

* Add wrapper script for encoding .basis textures

* basisu: honor custom metadata written by the mkbasis.py script

* mkbasis.py: add --incredibly-slow and --dry-run

* Move pixmap code from util/ to pixmap/

* Add an on-disk transcode cache for basis textures to speed up loads

* Compress texture cache with zlib

* Use readable format names for basisu cache filenames

* basisu: mip bias test code

* basisu: small caching cleanup

* add TAISEI_BASISU_MIP_BIAS env variable

* Improve OpenGL format matching heuristics

* Document considerations for compressed format priority

* Remove dead code

* Enable two forgotten formats, BC3_RGBA and ATC_RGBA

Also prefer BC7 over BC1/BC3

* Recognize GL_ANGLE_compressed_texture_etc for ETC2 textures

* Default depth buffers to 24-bit; remove ANGLE hack

* Fix glcommon_check_extension for GLES2/legacy gl

* Add renderer feature bit for texture swizzle masks

* glcommon: Fixup internal formats for GLES2

Sized internal formats are not allowed in GLES2

* Fix emscripten compile errors

* Update basis_universal

* remove more dead code

* revert irrelevant stage4 change

* shut up UBSan

* basisu: shut up some debug spam

* Add normalmap sampling helper to util.glslh

* basisu: add a gray-alpha mode

* mkbasis.py: Abort if image dimansions aren't multiples of 4

* Add basic Basis Universal encoding documentation (WIP)

* doc/basisu: Add paragraph about modes; minor tweaks

* basisu: workarounds for GL texture size requirements

* gles20: fix uncompressed sRGB formats

* Partial workaround for missing swizzles in gles2 and webgl

* remove invalid assertion

* New renderer API to expose glDrawBuffers-like functionality

* stagedraw: disable all color outputs for copy_depth pass

required for WebGL compatibility

* support GL_ANGLE_request_extension

* emscripten: include *.basis in gfx package

Also fix a potential problem when more than one .pkgdir is used to
construct emscripten packages

* Don't rely on emscripten runtime to enable webgl extensions
2020-08-15 14:51:12 +03:00
Andrei Alexeyev
46bd7244a9
Remove glDrawElementsInstancedBaseInstance support
This extension is unimportant, and actually severely degrades ANGLE
performance over Direct3D to unacceptable levels. This also removes the
alternative sprite batching codepath making use of this functionality.
The renderer API hasn't changed yet; attempting to use the extension
will trigger an assertion failure.

This commit also regenerates glad with a new version. Apparently the old
one had a bug and ended up pulling a lot of unrequested functionality,
which is now removed.
2020-07-31 17:19:39 +03:00
Andrei Alexeyev
7d7f1b157f
Migrate OpenGL loader to glad2 (#217)
* Migrate to glad2

* basic OpenGL 2.1+ fallback support
2020-04-26 04:10:00 +03:00
Andrei Alexeyev
55eaa3556a
Update wraps: SPIRV-Cross, SPIRV-Headers, SPIRV-Tools, glslang 2020-03-30 09:25:57 +03:00
Andrei Alexeyev
051f061b93
Update SDL2 wrap to 2.0.12 2020-03-19 08:58:33 +02:00
Andrei Alexeyev
186257cee6
Update libzip wrap to 1.6.1 2020-03-19 06:30:21 +02:00
Andrei Alexeyev
197cd93ef6
Update libwebp wrap to 1.1.0 2020-03-19 06:29:41 +02:00
Andrei Alexeyev
bdef62d7f4
Initial coroutine/task system implementation 2020-03-04 21:50:22 +02:00
Andrei Alexeyev
3476903273
Update wraps for SPIRV-Cross, SPIRV-Headers, SPIRV-Tools, glslang 2019-11-26 14:23:30 +02:00
Andrei Alexeyev
48a00daa4b
bump wrap dependencies 2019-09-14 19:08:44 +03:00
Andrei Alexeyev
c0d0ca9710
hackish static linking mode for GLES3 (webgl; not really good for anything else) 2019-09-09 04:39:33 +03:00
Andrei Alexeyev
b0856ce07d
Switch audio assets to Opus (#167)
* Switch BGMs to Opus

* Switch SFX to Opus; use floating-point mixing

* opus sfx: support resampling via SDL_AudioStream

* bump SDL2 version requirement to 2.0.6

2.0.5 doesn't have the SDL_AudioStream API, and is ancient anyway.
2019-05-11 09:46:26 +03:00