I'm getting some seemingly odd results when I try to update a float3
variable in an OpenCL kernel. Boiling it down:
float3 vel = float3( 0 ); // a
vel = float3( 0, 1, 0 ); // b
vel = (float3)( 0, 2, 0 ); // c
If I print vel
after each call with:
if( get_global_id( 0 ) == 0 )
printf( "[%d]: vel: ( %f, %f, %f )\n", index, vel.x, vel.y, vel.z );
Then I see that a) correctly initializes vel
, however b) doesn't do anything. c) works. Does anyone know why I can't update the variable with a new float3
object as I'm doing in b? This is how I'm used to doing it in C++ and glsl. Or possibly a driver bug?
Using OpenCL 1.2 on macbook pro running OS X 10.11.5.