| 
                    void
                    
                        write_imagef
                    
                ( | image1d_buffer_t image , | 
| int coord , | |
| float4
                     color ) | 
| 
                    void
                    
                        write_imagef
                    
                ( | image1d_array_t image , | 
| int2 coord , | |
| float4
                     color ) | 
| 
                    void
                    
                        write_imagei
                    
                ( | image1d_buffer_t image , | 
| int coord , | |
| int4
                     color ) | 
| 
                    void
                    
                        write_imagei
                    
                ( | image1d_array_t image , | 
| int2 coord , | |
| int4
                     color ) | 
| 
                    void
                    
                        write_imageui
                    
                ( | image1d_buffer_t image , | 
| int coord , | |
| uint4
                     color ) | 
| 
                    void
                    
                        write_imageui
                    
                ( | image1d_array_t image , | 
| int2 coord , | |
| uint4
                     color ) | 
cl_khr_fp16:| 
                    void
                    
                        write_imageh
                    
                ( | image1d_buffer_t image , | 
| int coord , | |
| half4
                     color ) | 
| 
                    void
                    
                        write_imageh
                    
                ( | image1d_array_t image , | 
| int2 coord , | |
| half4
                     color ) | 
cl_khr_mipmap_image:| 
                    void
                    
                        write_imagef
                    
                ( | image1d_array_t image , | 
| int2 coord , | |
| int lod , | |
| float4
                     color ) | 
| 
                    void
                    
                        write_imagei
                    
                ( | image1d_array_t image , | 
| int2 coord , | |
| int lod , | |
| int4
                     color ) | 
| 
                    void
                    
                        write_imageui
                    
                ( | image1d_array_t image , | 
| int2 coord , | |
| int lod , | |
| uint4
                     color ) | 
write_imagef, write_imagei,
and write_imageui forms that take image1d_t or image1d_buffer_t
            Write color value to location 
            specified by coord in 
            the 1D image or 1D image buffer object specified by 
            image. Appropriate data format conversion to the 
            specified image format is done before writing the 
            color value. coord is considered to be unnormalized 
            coordinates and must be in the range 0 ... image 
            width – 1.
       
         write_imagef can only be used with image objects created with
         image_channel_data_type set to one of the pre-defined packed formats
         or set to CL_SNORM_INT8, CL_UNORM_INT8,
         CL_SNORM_INT16, CL_UNORM_INT16,
         CL_HALF_FLOAT, or CL_FLOAT. Appropriate data
         format conversion will be done to convert channel data from a floating-point value to
         actual data format in which the channels are stored.
       
         write_imagei functions can only be used with image objects
         created with image_channel_data_type set to one of the following
         values: CL_SIGNED_INT8, CL_SIGNED_INT16,
         or CL_SIGNED_INT32.
       
         write_imageui functions can only be used with image objects
         created with image_channel_data_type set to one of the following
         values: CL_UNSIGNED_INT8, CL_UNSIGNED_INT16,
         or CL_UNSIGNED_INT32.
       
          The behavior of write_imagef,
          write_imagei and write_imageui for image
          objects created with image_channel_data_type values not specified
          in the description above or with coordinate values that is not in the range 
          (0 … image width - 1), is undefined.
       
write_imagef, write_imagei,
and write_imageui forms that take image1d_array_t
            Write color value to location 
            specified by coord.x in 
            the 1D image identified by coord.y 
            in the 1D image array specified by 
            image. Appropriate data format conversion to the 
            specified image format is done before writing the 
            color value. coord.x and 
            coord.y are considered to be unnormalized 
            coordinates and must be in the range 0 ... image 
            width – 1 and 0 … image number of layers – 1.
       
         write_imagef can only be used with image objects created with
         image_channel_data_type set to one of the pre-defined packed formats
         or set to CL_SNORM_INT8, CL_UNORM_INT8,
         CL_SNORM_INT16, CL_UNORM_INT16,
         CL_HALF_FLOAT, or CL_FLOAT. Appropriate data
         format conversion will be done to convert channel data from a floating-point value to
         actual data format in which the channels are stored.
       
         write_imagei functions can only be used with image objects
         created with image_channel_data_type set to one of the following
         values: CL_SIGNED_INT8, CL_SIGNED_INT16,
         or CL_SIGNED_INT32.
       
         write_imageui functions can only be used with image objects
         created with image_channel_data_type set to one of the following
         values: CL_UNSIGNED_INT8, CL_UNSIGNED_INT16,
         or CL_UNSIGNED_INT32.
       
          The behavior of write_imagef,
          write_imagei and write_imageui for image
          objects created with image_channel_data_type values not specified
          in the description above or with (x, y) coordinate values that are not in the range 
          (0 … image width - 1, 0 …image number of layers - 1), respectively, is undefined.
       
write_imageh
         The write_imageh functions are enabled when the half type is
          supported and can only be used with image objects created with
         image_channel_data_type set to one of the pre-defined packed formats
         or set to CL_SNORM_INT8, CL_UNORM_INT8,
         CL_SNORM_INT16, CL_UNORM_INT16 or
         CL_HALF_FLOAT.
         Appropriate data format conversion to the specified 
         image format is done before writing the color value. 
         x & y are 
         considered to be unnormalized coordinates 
         and must be in the range 0 ... width – 1, and 0 … 
         height – 1.
       
            For the image write 1D functions enabled by the mipmap extension 
            that take an image1d_t object,
            write color value to location specified by 
            coord in the mip-level specified by 
            lod in the 1D image
            object specified by image. Appropriate data format
            conversion to the specified image format is done
            before writing the color value. coord is considered to be 
            an unnormalized coordinate and
            must be in the range 0… image width of the mip-level
            specified by lod – 1.
        
            In these functions, the behavior of write_imagef, 
            write_imagei, and
            write_imageui if the coordinate value is not in
            the range (0… image width of the mip-level
            specified by lod – 1) or lod value exceeds the
            (number of mip-levels in the image – 1) is
            undefined.
        
            For the image write 1D functions enabled by the mipmap extension 
            that take an image1d_array_t object,
            write color value to location specified by 
            coord.x in the 1D image
             specified by coord.y and mip-level lod 
            in the 1D image array specified by image. Appropriate data format
            conversion to the specified image format is done
            before writing the color value. coord.x and  
            coord.y are considered to be unnormalized 
            coordinates and
            must be in the range 0… image width of mip-level
            specified by lod - 1 and 0… image number of layers - 1.
        
            In these functions, the behavior of write_imagef, 
            write_imagei, and
            write_imageui if (x, y) 
            coordinate values are not
            in the range (0… image width of the mip-level
            specified by lod – 1, 0… image number of
            layers – 1), respectively or lod value exceeds the
            (number of mip-levels in the image – 1), is
            undefined.
        
The built-in functions defined in this section can only be used with image memory objects. An image memory object can be accessed by specific function calls that read from and/or write to specific locations in the image.
Note that image writes to sRGB images are only supported if the cl_khr_srgb_image_writes extension is supported; otherwise the behavior of writing to a sRGB image is undefined.
    Image memory objects that are being read by a kernel should be declared with the read_only
    qualifier. write_image calls to image memory objects declared with the
    read_only
    qualifier will generate a compilation error. Image memory objects that
    are being written to by a kernel should be declared with the write_only qualifier.
    read_image calls to image memory objects declared with the write_only
    qualifier will generate a compilation error. read_image and
    write_image calls to the same image memory object in a kernel are
    not supported.
    Image memory objects that are being read and written by a kernel should be declared with the 
    read_write 
    qualifier.
  
    The read_image calls returns a four component floating-point, integer or
    unsigned integer color value. The color values returned by read_image
    are identified as x, y, z, w where x refers to the red component,
    y refers to the green component, z refers to the blue component
    and w refers to the alpha component.
  
    
    The built-in image read functions will perform
     sRGB to linear RGB conversions if the image is 
    an sRGB image. Writing to sRGB images from a 
    kernel is an optional extension. The 
    cl_khr_srgb_image_writes 
    extension will be reported in the 
    CL_DEVICE_EXTENSIONS string 
    if a device supports writing to sRGB images using 
    write_imagef. 
    clGetSupportedImageFormats 
    will return the supported sRGB images if 
    CL_MEM_READ_WRITE or 
    CL_MEM_WRITE_ONLY is specified in 
    flags argument and the 
    device supports writing to an sRGB image. If 
    cl_khr_srgb_image_writes 
    is supported, the 
    built-in image write functions will perform 
    the linear to sRGB conversion. 
  
Only the R, G and B components are converted from linear to sRGB and vice-versa. The alpha component is returned as is.
      The samplerless read image functions behave exactly as the corresponding read
      image functions that take integer coordinates and a sampler with filter mode
      set to CLK_FILTER_NEAREST, normalized coordinates set
      to CLK_NORMALIZED_COORDS_FALSE and addressing mode to
      CLK_ADDRESS_NONE.
    
     The following table describes the mapping
    of the number of channels of an image element to the appropriate components in the
    float4, int4 or uint4 vector data type for
    the color values returned by read_image{f|i|ui} or supplied
    to write_image{f|i|ui}. The unmapped components will be set
    to 0.0 for red, green and blue channels and will be set to
    1.0 for the alpha channel.
  
| Channel Order | float4, int4 or uint4 components of channel data | 
|---|---|
| CL_R,CL_Rx | (r, 0.0, 0.0, 1.0) | 
| CL_A | (0.0, 0.0, 0.0, a) | 
| CL_RG,CL_RGx | (r, g, 0.0, 1.0) | 
| CL_RA | (r, 0.0, 0.0, a) | 
| CL_RGB,CL_RGBx,CL_sRGB,CL_sRGBx | (r, g, b, 1.0) | 
| CL_RGBA, CL_BGRA, CL_ARGB, CL_ABGR, CL_sRGBA, CL_sBGRA | (r, g, b, a) | 
| CL_INTENSITY | (I, I, I, I) | 
| CL_LUMINANCE | (L, L, L, 1.0) | 
      For CL_DEPTH images, a scalar value is 
      returned by read_imagef or supplied to
      write_imagef.
  
    A kernel that uses a sampler with the CL_ADDRESS_CLAMP addressing
    mode with multiple images may result in additional samplers being used internally
    by an implementation. If the same sampler is used with multiple images called via
    read_image{f|i|ui}, then it is possible that an implementation may
    need to allocate an additional sampler to handle the different border color values that
    may be needed depending on the image formats being used. These implementation allocated
    samplers will count against the maximum sampler values supported by the device and given by
    CL_DEVICE_MAX_SAMPLERS. Enqueuing a kernel that requires more samplers
    than the implementation can support will result in a CL_OUT_OF_RESOURCES
    error being returned.
  
        CL_SAMPLER_NORMALIZED_COORDS must be 
        CL_TRUE for built-in functions
        described in the table above that read from a mip-mapped 
        image; otherwise the behavior is
        undefined. The value specified in the lod 
        argument is clamped to the minimum of (actual
        number of mip-levels – 1) in the image or value specified for 
        CL_SAMPLER_LOD_MAX.
    
 Copyright © 2007-2013 The Khronos Group Inc. 
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and/or associated documentation files (the
"Materials"), to deal in the Materials without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Materials, and to
permit persons to whom the Materials are furnished to do so, subject to
the condition that this copyright notice and permission notice shall be included
in all copies or substantial portions of the Materials.
Copyright © 2007-2013 The Khronos Group Inc. 
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and/or associated documentation files (the
"Materials"), to deal in the Materials without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Materials, and to
permit persons to whom the Materials are furnished to do so, subject to
the condition that this copyright notice and permission notice shall be included
in all copies or substantial portions of the Materials.