diff --git a/projects/clr/hipamd/include/hip/hcc_detail/texture_functions.h b/projects/clr/hipamd/include/hip/hcc_detail/texture_functions.h index d2ef5d66ef..88853f2828 100644 --- a/projects/clr/hipamd/include/hip/hcc_detail/texture_functions.h +++ b/projects/clr/hipamd/include/hip/hcc_detail/texture_functions.h @@ -157,8 +157,6 @@ union TData { #define TEXTURE_RETURN_UINT_XYZW return make_uint4(texel.u.x, texel.u.y, texel.u.z, texel.u.w); -#define HIP_AD_FORMAT_NOT_INITIALIZED 0 - #define TEXTURE_RETURN_FLOAT return (texFormatToSize[texRef.format] == 1)? texel.f.x : (float)texel.u.x/texFormatToSize[texRef.format]; #define TEXTURE_RETURN_FLOAT_X return (texFormatToSize[texRef.format] == 1)? make_float1(texel.f.x) : make_float1((float)texel.u.x/texFormatToSize[texRef.format]); @@ -169,16 +167,20 @@ union TData { extern "C" { - __device__ __constant__ static int texFormatToSize[] = { - [HIP_AD_FORMAT_NOT_INITIALIZED] = 1 , - [HIP_AD_FORMAT_UNSIGNED_INT8] = UCHAR_MAX , - [HIP_AD_FORMAT_UNSIGNED_INT16]= USHRT_MAX, - [HIP_AD_FORMAT_UNSIGNED_INT32]= 1 , - [HIP_AD_FORMAT_SIGNED_INT8] = SCHAR_MAX, - [HIP_AD_FORMAT_SIGNED_INT16] = SHRT_MAX, - [HIP_AD_FORMAT_SIGNED_INT32] = 1 , - [HIP_AD_FORMAT_HALF] = 1 , - [HIP_AD_FORMAT_FLOAT] = 1 +// this is really a sparse array with only valid values being the ones indexed by the enum hipArray_Format(e.g. texFormatToSize[HIP_AD_FORMAT_UNSIGNED_INT8] = UCHAR_MAX) +__device__ __constant__ static int texFormatToSize[] = { + 1, /* HIP_AD_FORMAT_NOT_INITIALIZED */ + UCHAR_MAX, /* HIP_AD_FORMAT_UNSIGNED_INT8 */ + USHRT_MAX, /* HIP_AD_FORMAT_UNSIGNED_INT16 */ + 1, /* HIP_AD_FORMAT_UNSIGNED_INT32 */ + 1,1,1,1, /* Invalid values */ + SCHAR_MAX, /* HIP_AD_FORMAT_SIGNED_INT8 */ + SHRT_MAX, /* HIP_AD_FORMAT_SIGNED_INT16 */ + 1, /* HIP_AD_FORMAT_SIGNED_INT32 */ + 1,1,1,1,1, /* Invalid values */ + 1, /* HIP_AD_FORMAT_HALF */ + 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, /* Invalid values */ + 1 /* HIP_AD_FORMAT_FLOAT */ }; __device__