Commit graph

16 commits

Author SHA1 Message Date
Jinny You
5b05f485e3 wasm: support font url by emscripten fetch (wip) 2025-02-21 02:17:21 +08:00
Hermet Park
ac08a9d6e7 wg_engine: introduced global vertexbuffer mempool & ++thread safety
Manage the global buffer memory for vertex and indexed vertex buffers,
increase the memory size incrementally twice by default and reduce
the default buffer size, which is not suitable for typical scenarios.

This could reduce the a bit stack memory usage and improve
the portability across systems where has the stack memory
limitation and potentially gaining performance enhancement
by avoiding brutal stack memory usage at the many function calls.

added the internal functions:

- WgVertexBuffer* mpoolReqVertexBuffer(float scale = 1.0f);
- WgIndexedVertexBuffer* mpoolReqIndexedVertexBuffer(float scale = 1.0f);
- void mpoolRetVertexBuffer(WgVertexBuffer* buffer);
- void mpoolRetIndexedVertexBuffer(WgIndexedVertexBuffer* buffer);

issue: https://github.com/thorvg/thorvg/issues/3159
2025-02-17 18:56:31 +09:00
Jinny You
bb2cefe9bc wasm: optimize binary size
- Changed optimization flags to -Oz, reducing the binary size by 120KB.
- Applied wasm-opt convergence as a post-process to ensure the minimum possible size with the given optimization flag.
2025-02-17 15:05:10 +09:00
Jinny You
5d617c0821 wasm: remove ASYNCIFY to reduce binary size
The binary size recently increased due to the ASYNCIFY option, which was required for WebGPU initialization.

To prevent unnecessary binary size growth, ThorVG will no longer depend on asynchronous processes such as `emscripten_sleep` (ASYNCIFY or JSPI).

As a result, the combined WASM binary size has been significantly reduced to less than 1MB.

Size comparison: 1559KB → 998KB (-36%)
2024-12-13 14:53:55 +09:00
Jinny You
f017bb84c1 wasm: reduce WebGPU stack size
Reduce stack size to 2MB for optimized memory usage
2024-12-10 21:11:06 +09:00
Jinny You
7b9c58fec3 wasm: add gl option to combined binary 2024-12-02 17:06:29 +09:00
RuiwenTang
af5e0e3ef9 gl_engine: support cross compile GL backend into WASM
Support cross compile the GL backend code into WASM.
The code needs WebGL 2.0 API so, the compile flags contains `MAX_WEBGL_VERSION` and `FULL_ES3`
Also add binding code to initialize the WebGL context and GLCanvas.
2024-11-26 17:12:49 +09:00
Jinny You
40b82c26f5 wasm: increase stack size
Patch #2826 increased the stack size to 4MB
2024-10-07 18:41:12 +09:00
Jinny You
e70596629f wasm: increase stack size for WebGPU
Current WG Engine requires a minimum stack size of 2MB to function properly.
2024-10-07 12:14:13 +09:00
Jinny You
d704a2503a bindings/wasm: Support WebGPU
Updated WASM binding to bring WebGPU on the web player.

binding will generate a WASM binary, which can render animation through both SW and WG raster engine.

A raster engine will be chosen by parameter `engine`, when initializing.
2024-08-20 17:26:23 +09:00
Jinny You
32954f962d wasm/infra: Add build scripts for WebGPU
New build script for WASM with WebGPU.

Run `wasm_webgpu_build.sh` to have WebGPU WASM binary
2024-08-20 17:26:23 +09:00
Hermet Park
bcc2f5008c infra: updated ios arm64 build 2024-07-13 15:30:20 +09:00
Youjin Lee
ab49e2ee2b Modify txt file for cross-platform build setup
Following the Android developer guide (https://developer.android.com/ndk/guides/other_build_systems), added HOST_TAG to the directory.
2024-04-04 14:09:35 +09:00
Jinny You
28ba5fe1b8 wasm: Update emscripten build config
enabled options:
- EXPORT_ES6 > to import glue code in es6 module system
- SINGLE_FILE > to build library as a single JS file, single file reduces loading latency
- MODULARIZE > proper option to build es6 module (optimized)
- EXPORTED_RUNTIME_METHODS > allow es6 module based glue code to import FS
2023-12-20 15:45:14 +09:00
Hermet Park
8a5418ed8b infra: add android CI build test with necessary cross build config. 2023-10-09 20:24:07 +09:00
Hermet Park
4c3cdb38b5 infra: migrate cross files into one folder. 2023-10-09 15:39:59 +09:00