-
Notifications
You must be signed in to change notification settings - Fork 666
Description
I have a problem with addressing an input array at 8388608 or higher.
the resultant value is incorrect - i think it is returning a value a few indexes left or right of the required element (as image is kinda recognisably corrupt after this point). I guess some integers with Float32 overflow issue.
Using cpu mode fixes the problem. so thought it was similar to #241 which I'm also seeing on certain hardware.
I tried breaking up the array into a 2d array, and this improved things, but have a similar issue when the combined index >= 2^24 - so gets twice as far before image corrupting.
so...i tried a 3d array...same result as 2d.
Finally, I have it working but had to send the 3d array as separate parameters in the kernel function.
e.g.
myKernelFunction(threeDArray[0], threeDArray[1], threeDArray[2], ...)
which makes my code more complex than it needs to be, esp as in the kernel i cant seem to assign a variable to the correct array part. I guess all variables created by the shader compiler are Float32?