More bugs on NV compiler

Hello,

We are reaching a hit. In two weeks we’ve found 3 bugs in the OpenCL NV compiler. I’m starting to thinking if it would be better switch back to GLSL again…

First one is described here:
viewtopic.php?f=28&t=4856

Second one:
I have an array of structs of this kind:

struct DispMapPixel
{                  
	float corrFactor;
	float dispX;
	float dispY;
};

If I change in the kernel code dispX and dispY by a float2 disp; and refactorize the code to use disp.x and disp.y, the kernel is compiled correctly, but the kernel execution crashes with CL_OUT_OF_RESOURCES (a timeout)

Third one: because I do not want to write “struct” every time before any variable declaration, I changed the above DispMapPixel declaration by this one:

typedef struct 
{                  
	float corrFactor;
	float dispX;
	float dispY;
} DispMapPixel;

I even tried with no luck:
typedef struct _dispMapPixelTag
{                  
	float corrFactor;
	float dispX;
	float dispY;
} DispMapPixel;

and then I removed the “struct” word for all declarations in my code. Surprise: the kernel compiles but the application crashes with an exception inside nvcuda.dll

Well, its surprising to see how NV drivers could had pass the conformance tests. They really sucks.

Well, still playing with structs and it seems that NV din’t implemented very well the structs. The driver crashes with standard C99 initializators like:

struct DispMapPixel maxDispPixel = {-1.0f, 0.0f, 0.0f};

or

struct DispMapPixel maxDispPixel = {.corrFactor = -1.0f, .dispX = 0.0f, .dispY = 0.0f};

Ok, for all those bugs, NV was able to reproduce them. They told me that the bugs are routed for investigation.

Hope they will fix that soon.