View Full Version : Possible Specification Ambiguity - Host Side Vector Types

02-12-2010, 05:14 PM
Device-side vector types can be accessed like struct types. e.g. float2 T.x, T.y.

However, the spec is silent (or I don't see where it is mentioned) on how this maps to the host-side types e.g. cl_float2 (is it a struct? array?). The nvidia implementation I have has defined this as an array type... but I don't see in the spec how I should know which values have been stored where... does T.x correspond to host T[0]? T[1]?

If this is in the spec and I didn't see it, please point out where.


02-13-2010, 06:01 AM
The spec does not describe the host-side types. There are only described in the cl_platform.h header file.

02-13-2010, 06:43 AM
Thank you for your response.

This is a rather dangerous omission on the part of the spec, and hopefully it can be corrected within the specification itself. The spec should say something about how the host-side types are accessed... I don't care about how they are implemented, but I should know what the actual mapping is. For instance, the spec should say something like "the host accesses vector types with indexing..." with a nice table that shows "x is mapped to index 0, y is mapped to index 1", etc.

It's rather unfortunate that a cl_float2 for instance can't be represented as a struct on the host side, I find it easier to work with .xy addressing than [0,1].