Does PhysX support targeting SSE1 instruction set level only? With that, Emscripten should currently build ok~ish modulo a few NaN canonicalization issues.
2015-09-03 17:05 GMT+03:00 Robert Goulet <[email protected]>: > Awesome! Thanks for the fix. > > I was hoping to use SSE2 for my PhysX build but that can wait a bit, for > now I'll allow it to run without vector intrinsics. > > > On Thursday, September 3, 2015 at 9:34:58 AM UTC-4, jj wrote: >> >> Thanks! Fixed this in >> https://github.com/kripken/emscripten/commit/b569e7e1dfa9f4ef5fbfaf44b16daccc57aa632b >> . Note that SSE2 compiled code will currently most likely not work except >> in debug builds, since our optimizer does not yet understand all SSE2 >> vector types, and because LLVM performs some optimizations that aren't >> compatible with SIMD.js. SSE1 should work in both debug and optimized >> release builds. To target SSE1, one uses -msse, and to target SSE2, use >> -msse2. To enable LLVM autovectorization without explicit use of >> intrinsics, one can use -s SIMD=1. >> >> 2015-09-01 17:54 GMT+03:00 Robert Goulet <[email protected]>: >> >>> @jj where you able to get past this error when building PhysX 3.3.3 with >>> SSE2 support using latest incoming? >>> >>> D:/dev/project/source/physx/webgl/Source/foundation/include/unix/sse2/PsUnixSse2InlineAoS.h:2880:9: >>> error: first two arguments to __builtin_shuffleve >>> ctor must be vectors >>> return _mm_shuffle_ps(a, a, _MM_SHUFFLE(3,3,3,3)); >>> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >>> D:\dev\project\lib\emscripten-incoming-r0\emscripten\incoming\system\include\emscripten\xmmintrin.h:141:12: >>> note: expanded from macro '_mm_shuffle_ps >>> ' >>> ((__m128)__builtin_shufflevector((a), (b), \ >>> ^ ~~~~~~~~ >>> >>> Am I missing an Emscripten compile flag? So far the only SSE2 related >>> flag I used is -msse2 at compile time. >>> >>> On Friday, August 28, 2015 at 1:43:44 PM UTC-4, Robert Goulet wrote: >>>> >>>> Yes that's exactly what I just did. Now just missing SSE2. :) I've seen >>>> the commits in incoming branch, but I'll wait until 1.34.7 is out before I >>>> try it. Thanks guys! >>>> >>>> On Friday, August 28, 2015 at 12:23:12 PM UTC-4, jj wrote: >>>>> >>>>> I just recently ported PhysX to build on Emscripten after the removal >>>>> of syscalls. You see there that there's posix-specific paths that can be >>>>> used instead, which Emscripten likes better. Instead of >>>>> syscall(SYS_gettid) >>>>> , you can call pthread_self(), and Emscripten does not have a concept of >>>>> thread affinity, so that can be commented out (behave like the Apple/Qnx >>>>> path). >>>>> >>>>> >>>>> 2015-08-28 2:10 GMT+03:00 Alon Zakai <[email protected]>: >>>>> >>>>>> There might be more standard ways to do that, I believe pthreads lets >>>>>> you access the current thread's id, etc. Using those should work (to the >>>>>> extent that we support those features - we don't have a way to support >>>>>> affinity AFAIK). >>>>>> >>>>>> On Thu, Aug 27, 2015 at 2:34 PM, Robert Goulet <[email protected] >>>>>> > wrote: >>>>>> >>>>>>> I'm not sure this is really important, it's used by PhysX 3.3.3 to >>>>>>> retrieve thread id and manage affinity. I don't think this will prevent >>>>>>> the >>>>>>> library from running properly (perhaps slightly less optimal), so for >>>>>>> now I >>>>>>> would guess it's not really needed. But it's good to hear that the >>>>>>> change >>>>>>> was intended on Emscripten side. :) >>>>>>> >>>>>>> The calls refer to these ids: >>>>>>> >>>>>>> syscall(__NR_gettid); >>>>>>> syscall(__NR_sched_getaffinity, ...); >>>>>>> >>>>>>> Thanks for the quick reply! >>>>>>> >>>>>>> >>>>>>> On Thursday, August 27, 2015 at 4:43:36 PM UTC-4, Alon Zakai wrote: >>>>>>>> >>>>>>>> Yes, we don't support direct syscalls by the user any more. Those >>>>>>>> are dynamic, and would require us to link in all the possible syscall >>>>>>>> targets. We avoid that code size increase by linking in syscalls >>>>>>>> statically. >>>>>>>> >>>>>>>> Do you actually need syscall() to work? We might be able to add an >>>>>>>> option for that. >>>>>>>> >>>>>>>> On Thu, Aug 27, 2015 at 1:35 PM, Robert Goulet < >>>>>>>> [email protected]> wrote: >>>>>>>> >>>>>>>>> Looks like the function syscall is no longer available when using >>>>>>>>> Emscripten 1.34.6? >>>>>>>>> >>>>>>>>> It used to be found in Emscripten 1.34.1, is this intended? >>>>>>>>> >>>>>>>>> Thanks! >>>>>>>>> >>>>>>>>> -- >>>>>>>>> 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. >>>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>> 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. >>>>>>> >>>>>> >>>>>> -- >>>>>> 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. >>>>>> >>>>> >>>>> -- >>> 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. >>> >> >> -- > 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. > -- 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.
