diff options
author | Zhigang Gong <zhigang.gong@linux.intel.com> | 2013-09-04 15:04:03 +0800 |
---|---|---|
committer | Zhigang Gong <zhigang.gong@linux.intel.com> | 2013-09-04 16:21:20 +0800 |
commit | 9a2fd56bc0982499449f2ea84d7e0d5a3d49ad82 (patch) | |
tree | 4fa448daf9660cc979194deaa4153c97b6a72757 | |
parent | 194d04368bb9dadc489c350524a10c98d48730ee (diff) |
Runtime: Only return the format allowed in the spec.
For the CL_INTENSITY and CL_LUMINANCE, it only supports
CL_UNORM_INT8,CL_UNORM_INT16, CL_SNORM_INT8, CL_SNORM_INT16,
CL_HALF_FLOAT or CL_FLOAT.
Signed-off-by: Zhigang Gong <zhigang.gong@linux.intel.com>
Reviewed-by: "Song, Ruiling" <ruiling.song@intel.com>
-rw-r--r-- | src/cl_image.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/cl_image.c b/src/cl_image.c index 6ea104ba..1fe8d089 100644 --- a/src/cl_image.c +++ b/src/cl_image.c @@ -104,6 +104,12 @@ cl_image_get_intel_format(const cl_image_format *fmt) case CL_A: case CL_INTENSITY: case CL_LUMINANCE: + if ((order == CL_INTENSITY || order == CL_LUMINANCE) + && (type != CL_UNORM_INT8 && type != CL_UNORM_INT16 + && type != CL_SNORM_INT8 && type != CL_SNORM_INT16 + && type != CL_HALF_FLOAT && type != CL_FLOAT)) + return INTEL_UNSUPPORTED_FORMAT; + switch (type) { case CL_HALF_FLOAT: return I965_SURFACEFORMAT_R16_FLOAT; case CL_FLOAT: return I965_SURFACEFORMAT_R32_FLOAT; |