You might be better off malloc'ing the buffer then using subarray [1] to 
avoid copying back and forth.

[1]: 
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/subarray

On Tuesday, October 24, 2017 at 6:25:27 AM UTC-7, Andrew Varga wrote:
>
> Thank you for the explanation! 
>
> So I will have to copy the data from js into the Wasm module's memory, 
> call the Wasm function to operate on the data, and then finally copy it 
> back to javascript.
> In this case I wonder if using Wasm over js will yield in any performance 
> improvements, so I will test it out.
>
> It seems it could be worth doing this since this is what they are doing 
> here in the WebAssembly Video Editor, but I'm getting much lower framerate 
> for Wasm compared to js in both Chrome and Firefox:
> https://github.com/shamadee/web-dsp
> https://d2jta7o2zej4pf.cloudfront.net/
>
>
>
> On Tue, Oct 24, 2017 at 2:01 PM, Jukka Jylänki <[email protected] 
> <javascript:>> wrote:
>
>> It is not possible to pass ArrayBuffers or ArrayBufferViews from
>> JavaScript to WebAssembly. WebAssembly operates only on a single
>> linear heap that is bound as its own memory space, so it's only
>> possible to pass pointers (indices) to that one memory buffer. So
>> currently you would have Wasm operate on its own memory, and then
>> going out to JS, copy the data from the singleton Wasm memory out to
>> other JavaScript ArrayBuffers.
>>
>> There have been talks about expanding Wasm to be able to operate on
>> multiple ArrayBuffers at a time, by expanding the opcode list to allow
>> specifying one of multiple ArrayBuffers which to manipulate, but
>> currently that kind of feature does not yet exist.
>>
>> 2017-10-23 15:11 GMT+03:00 Andrew Varga <[email protected] <javascript:>
>> >:
>> > This actually looks very helpful, but I wonder if there is a "cleaner
>> > looking" way to actually "pass" an arraybuffer from js to a wasm module:
>> > 
>> https://stackoverflow.com/questions/46861475/how-can-i-find-out-the-address-of-a-webassembly-buffer-and-return-it-to-javascri
>> >
>> > On Sun, Oct 22, 2017 at 4:35 PM, Andrew Varga <[email protected] 
>> <javascript:>> wrote:
>> >>
>> >> Hi,
>> >>
>> >> I'm having a hard time achieving something that sounds easy:
>> >> - create an ArrayBufferView instance in JavaScript eg.: new
>> >> Uint8Array([1,2,3]
>> >> - pass this to a function in a wasm module that will operate on it and
>> >> change some of the values (it will not create a new array)
>> >> - be able to access the modified array in JavaScript
>> >>
>> >> I'm trying to achieve this with as little glue-code as possible, my 
>> setup
>> >> is here:
>> >> https://github.com/andrewvarga/wasm_test
>> >>
>> >> When I run index.html, the console output is 29 which I believe comes 
>> from
>> >> 23 + 6 (see buffertest.c), so I must be doing something very wrong.
>> >>
>> >> What I'm looking for is the simplest, smallest, fastest way to allow 
>> wasm
>> >> module to change an array (like adding 6 to each element that I tried 
>> to do
>> >> here).
>> >>
>> >> Any help would be very much appreciated!
>> >>
>> >> Thank you,
>> >> Andrew
>> >>
>> >>
>> >> --
>> >> You received this message because you are subscribed to a topic in the
>> >> Google Groups "emscripten-discuss" group.
>> >> To unsubscribe from this topic, visit
>> >> 
>> https://groups.google.com/d/topic/emscripten-discuss/ecAgoEwK2ME/unsubscribe
>> .
>> >> To unsubscribe from this group and all its topics, send an email to
>> >> [email protected] <javascript:>.
>> >> For more options, visit https://groups.google.com/d/optout.
>> >
>> >
>> > --
>> > 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 [email protected] <javascript:>.
>> > For more options, visit https://groups.google.com/d/optout.
>>
>> --
>> You received this message because you are subscribed to a topic in the 
>> Google Groups "emscripten-discuss" group.
>> To unsubscribe from this topic, visit 
>> https://groups.google.com/d/topic/emscripten-discuss/ecAgoEwK2ME/unsubscribe
>> .
>> To unsubscribe from this group and all its topics, send an email to 
>> [email protected] <javascript:>.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
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 [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to