On Fri, Mar 4, 2022 at 10:06 PM Александр Гурьянов <caiiiy...@gmail.com> wrote:
> I tried set SHARED_MEMORY=1 both for compile and linking, but now I have > this error from linker: > wasm-ld: error: --shared-memory is disallowed by lto.tmp because it was > not compiled with 'atomics' or 'bulk-memory' features > > Seems that I need to set PTHREADS anyway. I don't want use PTHREADS > because I don't know how it affects performance of wasm, can it slowdown > the overall performance? > No it shouldn't slow down anything.. there could be come JS code size bloat.. but performance should not suffer significantly. > > > сб, 5 мар. 2022 г. в 03:27, 'Thomas Lively' via emscripten-discuss < > emscripten-discuss@googlegroups.com>: > >> Also note that you probably do want to use atomic operations to read and >> write to the shared memory, even if you're using JS on one thread and Wasm >> on another. If you don't use atomics, there's no guarantee that the values >> written on one thread will actually become visible on the other thread when >> you expect them to. >> >> On Fri, Mar 4, 2022 at 11:49 AM 'Sam Clegg' via emscripten-discuss < >> emscripten-discuss@googlegroups.com> wrote: >> >>> Historically the `-pthead` flag (or `-s USE_PTHREADS`) is the way to get >>> shared memory. Is there some reason you have not wanted to use that >>> flag? (is it code size >>> of the resulting JS.. if so we are working on reducing that). >>> >>> As it happens we just today landed a new `-s SHARED_MEMORY` flag I think >>> gives you exactly what you want without the overhead of the pthread JS >>> library code: https://github.com/emscripten-core/emscripten/pull/16419. >>> >>> cheers, >>> sam >>> >>> On Fri, Mar 4, 2022 at 10:29 AM Александр Гурьянов <caiiiy...@gmail.com> >>> wrote: >>> >>>> https://github.com/WebAssembly/binaryen/pull/4525 >>>> >>>> >>>> пт, 4 мар. 2022 г. в 15:43, Александр Гурьянов <caiiiy...@gmail.com>: >>>> >>>>> Hi, I want to use shared memory for my WebAssembly module. It's needed >>>>> for js-dos. Currently emulation works in worker and frame updates are send >>>>> using postMessage. I want to use SharedArrayBuffer to avoid >>>>> copying/sending >>>>> big rgba data. >>>>> >>>>> I dont' need to use pthread or threading, I just want to share memory >>>>> between worker and main process. How I can say emscripten to generate >>>>> "shared" memory imort. >>>>> >>>>> I found similar question here: >>>>> https://github.com/emscripten-core/emscripten/issues/12098 >>>>> As suggested I tried wasm2wat and then wat2wasm, but it not working >>>>> for me. Looks like it affects -s INVOKE_RUN=0, because after wasm2wat my >>>>> module immediately starts and I can't provide own memory. >>>>> >>>>> Without wasm2wat I have this error: >>>>> >>>>> LinkError: WebAssembly.instantiate(): mismatch in shared state of >>>>> memory, declared = *0*, imported = *1* >>>>> >>>>> After wasm2wat this: >>>>> >>>>> LinkError: WebAssembly.instantiate(): mismatch in shared state of >>>>> memory, declared = *1*, imported = *0* >>>>> >>>>> Can we add some pass to binaryen for turning non-shared memory into >>>>> shared? >>>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "emscripten-discuss" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to emscripten-discuss+unsubscr...@googlegroups.com. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/emscripten-discuss/CAKOm%3DVE24Q4%2Bewi5QBSdmuuRf7F-FCk_1TM7tZxexwrMOzXdqw%40mail.gmail.com >>>> <https://groups.google.com/d/msgid/emscripten-discuss/CAKOm%3DVE24Q4%2Bewi5QBSdmuuRf7F-FCk_1TM7tZxexwrMOzXdqw%40mail.gmail.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "emscripten-discuss" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to emscripten-discuss+unsubscr...@googlegroups.com. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/emscripten-discuss/CAL_va2_UWBhM-2yOG_6aUDPa_%3DX%3DmDJOxaC00Bo8CbQa6cDbYw%40mail.gmail.com >>> <https://groups.google.com/d/msgid/emscripten-discuss/CAL_va2_UWBhM-2yOG_6aUDPa_%3DX%3DmDJOxaC00Bo8CbQa6cDbYw%40mail.gmail.com?utm_medium=email&utm_source=footer> >>> . >>> >> -- >> You received this message because you are subscribed to the Google Groups >> "emscripten-discuss" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to emscripten-discuss+unsubscr...@googlegroups.com. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/emscripten-discuss/CAJZD_EWNu%3Di0%3DACiKbuPyTOUAckT1SDceosApBvJj6VCo8-WYQ%40mail.gmail.com >> <https://groups.google.com/d/msgid/emscripten-discuss/CAJZD_EWNu%3Di0%3DACiKbuPyTOUAckT1SDceosApBvJj6VCo8-WYQ%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> > -- > You received this message because you are subscribed to the Google Groups > "emscripten-discuss" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to emscripten-discuss+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/emscripten-discuss/CAKOm%3DVFgLTrfXrMBjSyUy_eczWoaAF2L4zWQKPPAr3uizNWt1g%40mail.gmail.com > <https://groups.google.com/d/msgid/emscripten-discuss/CAKOm%3DVFgLTrfXrMBjSyUy_eczWoaAF2L4zWQKPPAr3uizNWt1g%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "emscripten-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to emscripten-discuss+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/emscripten-discuss/CAL_va2-ZZeRzBjnjjHfE5QTukxPSOZ5coY6YCV1Voiv9Ft6pJA%40mail.gmail.com.