After upgrading my radeon software from 16.10.1 to 17.7.1 (Crimson ReLive) I started detecting an FE_INVALID floating point exception in my application. This seems to be triggered by calling vkCreateInstance. I was also able to reproduce it by modifying the cube sample provided by the LunarG Vulkan API SDK in the following manner:
Add to top of cube.c:
#pragma STDC FENV_ACCESS_ON // MinGW-w64 only
Insert these lines around vkCreateInstance (somewhere around lines 2800 to 2820 ish):
// existing call to vkCreateInstance here
assert(!fetestexcept(FE_INVALID)); // <- assert triggered
The issue does no appear to be toolchain dependent as I am able to reproduce it via both Visual Studio 2015 and CodeBlocks+MinGW-w64. No other modifications were made to the system so this must be triggered (directly or indirectly) by the new drivers.
System: Intel i5-4590S 16GB, Radeon RX 480 8GB, Windows 10 (64bit), Radeon Software Version 17.7.1 (Crimson ReLive), LunarG Vulkan SDK 184.108.40.206.
Is it possible for someone from AMD to check this out?
Let me know If you need more info.
Thank you for the report. We can confirm this is a driver-side issue that we have on our radar. Thanks.