Open pborsutzki opened 2 years ago
You are using Win32 and this has known issues with 16-bytes alignment. We currently only test and this support SSE2 with Win32 and are anyway planning to remove 32-bit support completely. Please build a 64 bit binary by using the "Visual Studio 16 2019 Win64" generator.
Sorry, but I am not using Win32 here. It is Win64 as I am on an x64 host and the Visual Studio 16 2019
cmake generator uses Win64 on x64 hosts by default. There is no actual Visual Studio 16 2019 Win64
generator, the cmake docs state, you'd have to use the Visual Studio 16 2019
generator and set -A x64
to be explicit.
You can easily see that this build is using x64 from the 64-bit addresses printed in the error messages, the used registers with the r
prefix or the 64-bit jump address in the assembly.
So please have another look. Thanks!
I also see problems with Debug build and AVX512 in our CI. We will look into this.
Hi,
I built a windows debug version of embree 3.13.1 using these commands:
Please forgive me for the old tbb version (I doubt it is relevant, but it is complicated to upgrade it in other dependencies of our project).
Now trying to execute one of the examples on an AVX512 machine (Skylake, Intel(R) Xeon(R) Gold 5120) leads consequently to crashes with callstacks ending in
vboolf<4>
constructors:The relevant assembly is this (constructor of `vboolf<4>):
The Visual Studio debugger speaks of a read access violation, not sure why it is "read", I think it is a "write":
Exception thrown at 0x00007FFB1A7D8390 (embree3.dll) in triangle_geometry.exe: 0xC0000005: Access violation reading location 0xFFFFFFFFFFFFFFFF.
In this example the debugger also shows
RAX = 0000007D335F1268
, meaning the target formovaps
is not 16 bytes aligned, which is the source of the crash, I think. The target here should bev
, which is the only data member ofvboolf
:union { __m128 v; int i[4]; }; // data
Machines without AVX512 support do not show this problem. Setting
max_isa
to AVX2 on a AVX512 machine is also sufficient to work around this issue.I am not sure why this happens, but it would be nice to have a working debug build. Can you fix this?