summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZhigang Gong <zhigang.gong@linux.intel.com>2013-09-04 15:04:03 +0800
committerZhigang Gong <zhigang.gong@linux.intel.com>2013-09-04 16:21:20 +0800
commit9a2fd56bc0982499449f2ea84d7e0d5a3d49ad82 (patch)
tree4fa448daf9660cc979194deaa4153c97b6a72757
parent194d04368bb9dadc489c350524a10c98d48730ee (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.c6
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;