From d6698fa0bb882f80a5d4e26e0f3f409a52a07ca7 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Mon, 18 Oct 2021 09:08:09 -0500 Subject: [PATCH] updated js loader to support multiple threads --- bin/onyx | Bin 452912 -> 452912 bytes bin/onyx-js | 2 +- bin/onyx-loader.js | 83 ++++++++++++++++++++++++++++++--- bin/onyx-thread.js | 38 +++++++++++++++ core/builtin.onyx | 2 + core/runtime/js.onyx | 7 ++- core/runtime/wasi.onyx | 1 + modules/js_events/js_events.js | 7 +-- modules/webgl2/webgl2.js | 16 ++----- src/wasm_intrinsics.c | 2 +- 10 files changed, 133 insertions(+), 25 deletions(-) create mode 100644 bin/onyx-thread.js diff --git a/bin/onyx b/bin/onyx index 4e59708766129272c5fb780f1c061a316a4eef0e..9e067728a473052842973a1678efc863f8730d74 100755 GIT binary patch delta 64307 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 void; + + thread_id : i32; } #if runtime.Runtime != runtime.Runtime_Custom { diff --git a/core/runtime/js.onyx b/core/runtime/js.onyx index d3bce96d..c70a4f85 100644 --- a/core/runtime/js.onyx +++ b/core/runtime/js.onyx @@ -4,13 +4,14 @@ package runtime use package core -__output_string :: (s: str) -> u32 #foreign "host" "print_str" --- +__output_string :: (s: str) -> u32 #foreign "host" "print_str" --- __exit :: (status: i32) -> void #foreign "host" "exit" --- // The builtin _start proc. // Sets up everything needed for execution. #export "_start" () { __runtime_initialize(); + context.thread_id = 0; args: [] cstr = .{ null, 0 }; (package main).main(args); @@ -21,10 +22,12 @@ __exit :: (status: i32) -> void #foreign "host" "exit" --- #if Multi_Threading_Enabled { __spawn_thread :: (id: i32, func: (data: rawptr) -> void, data: rawptr) -> bool #foreign "host" "spawn_thread" --- - #export "_thread_start" (func: (data: rawptr) -> void, data: rawptr) { + #export "_thread_start" (id: i32, func: (data: rawptr) -> void, data: rawptr) { __stack_top = raw_alloc(alloc.heap_allocator, 1 << 20); __thread_initialize(); + context.thread_id = id; + func(data); __flush_stdio(); diff --git a/core/runtime/wasi.onyx b/core/runtime/wasi.onyx index be8f7fad..18fa2b5e 100644 --- a/core/runtime/wasi.onyx +++ b/core/runtime/wasi.onyx @@ -22,6 +22,7 @@ __exit :: (status: i32) do proc_exit(status); // Sets up everything needed for execution. #export "_start" () { __runtime_initialize(); + context.thread_id = 0; args : [] cstr; argv_buf_size : Size; diff --git a/modules/js_events/js_events.js b/modules/js_events/js_events.js index 2679c3e2..9a406037 100644 --- a/modules/js_events/js_events.js +++ b/modules/js_events/js_events.js @@ -66,7 +66,7 @@ window.ONYX_MODULES.push({ if (ev.altKey) modifiers |= 0x02; if (ev.metaKey) modifiers |= 0x04; if (ev.shiftKey) modifiers |= 0x08; - + push_event_to_buffer(esp, event_size, 0x05, [ ev.keyCode, modifiers ]); var keyname = ev.code; @@ -141,8 +141,9 @@ window.ONYX_MODULES.push({ request_file(esp, event_size, filename_ptr, filename_len, fileid) { esp /= 4; - var path_memory = new Uint8Array(ONYX_MEMORY.buffer, filename_ptr, filename_len); - var path = new TextDecoder("utf-8").decode(path_memory); + var data_view = new DataView(ONYX_MEMORY.buffer); + var path = ""; + for (var i = 0; i < filename_len; i++) path += String.fromCharCode(data_view.getUint8(filename_ptr + i)); console.log(`Requesting file '${path}'`); fetch(path) diff --git a/modules/webgl2/webgl2.js b/modules/webgl2/webgl2.js index df8936d2..6964651b 100644 --- a/modules/webgl2/webgl2.js +++ b/modules/webgl2/webgl2.js @@ -15,9 +15,7 @@ window.ONYX_MODULES.push({ module_name: "gl", init(name, namelen) { - const decoder = new TextDecoder(); - const str = new Uint8Array(window.ONYX_MEMORY.buffer, name, namelen); - const canvasname = decoder.decode(str); + const canvasname = onyx_decode_text(name, namelen); canvas = document.getElementById(canvasname); if (canvas == null) return 0; @@ -207,9 +205,7 @@ window.ONYX_MODULES.push({ }, // getAttachedShaders() { console.log("NOT IMPLEMENTED!"); }, getAttribLocation(program, name, namelen) { - const decoder = new TextDecoder(); - const str = new Uint8Array(window.ONYX_MEMORY.buffer, name, namelen); - const attribname = decoder.decode(str); + const attribname = onyx_decode_text(name, namelen); return gl.getAttribLocation(programs[program], attribname); }, @@ -224,9 +220,7 @@ window.ONYX_MODULES.push({ getShaderParameter(shader, param) { return gl.getShaderParameter(shaders[shader], param); }, getProgramParameter(program, param) { return gl.getProgramParameter(programs[program], param); }, getUniformLocation(program, name, namelen) { - const decoder = new TextDecoder(); - const str = new Int8Array(window.ONYX_MEMORY.buffer, name, namelen); - const uniname = decoder.decode(str); + const uniname = onyx_decode_text(name, namelen); uniformlocs.push(gl.getUniformLocation(programs[program], uniname)); return uniformlocs.length - 1; @@ -261,9 +255,7 @@ window.ONYX_MODULES.push({ scissor(x, y, width, height) { gl.scissor(x, y, width, height); }, setSize(width, height) { canvas.width = width; canvas.height = height; }, shaderSource(shader, source, sourcelen) { - const decoder = new TextDecoder(); - const str = new Int8Array(window.ONYX_MEMORY.buffer, source, sourcelen); - const sourcedata = decoder.decode(str); + const sourcedata = onyx_decode_text(source, sourcelen); gl.shaderSource(shaders[shader], sourcedata); }, diff --git a/src/wasm_intrinsics.c b/src/wasm_intrinsics.c index 2c0ad877..c563d51e 100644 --- a/src/wasm_intrinsics.c +++ b/src/wasm_intrinsics.c @@ -176,7 +176,7 @@ bad_type: EMIT_FUNC_NO_ARGS(intrinsic_atomic_notify) { bh_arr(WasmInstruction) code = *pcode; - WI(WI_ATOMIC_NOTIFY); + WID(WI_ATOMIC_NOTIFY, ((WasmInstructionData) { 2, 0 })); *pcode = code; } -- 2.25.1