| |
| <bridgehead>OpenGL and Corresponding OpenCL Image Formats</bridgehead> |
| |
| <para> |
| <!-- Table 9.4 --> The table below (Table 9.4) describes |
| the list of GL texture internal formats and the corresponding CL image formats. If a GL |
| texture object with an internal format from the table below is successfully created by |
| OpenGL, then there is guaranteed to be a mapping to one of the corresponding CL image |
| format(s) in that table. Texture objects created with other OpenGL internal formats may |
| (but are not guaranteed to) have a mapping to a CL image format; if such mappings exist, |
| they are guaranteed to preserve all color components, data types, and at least the number |
| of bits/component actually allocated by OpenGL for that format. |
| </para> |
| |
| <informaltable frame="all"> |
| <tgroup cols="2" align="center" colsep="1" rowsep="1"> |
| <colspec colname="col1" colnum="1" /> |
| <colspec colname="col2" colnum="2" /> |
| <thead> |
| <row> |
| <entry>GL internal format</entry> |
| <entry>CL image format (channel order, channel data type)</entry> |
| </row> |
| </thead> |
| |
| <tbody> |
| <row> |
| <entry><constant>GL_RGBA8</constant></entry> |
| <entry><constant>CL_RGBA, CL_UNORM_INT8 or CL_BGRA, CL_UNORM_INT8</constant></entry> |
| </row> |
| |
| <row> |
| <entry><constant>GL_SRGBA8_ALPHA8</constant></entry> |
| <entry><constant>CL_sRGBA, CL_UNORM_INT8</constant></entry> |
| </row> |
| |
| <row> |
| <entry><constant>GL_RGBA</constant>, <constant>GL_UNSIGNED_INT_8_8_8_8_REV</constant></entry> |
| <entry><constant>CL_RGBA, CL_UNORM_INT8</constant></entry> |
| </row> |
| |
| <row> |
| <entry><constant>GL_BGRA</constant>, <constant>GL_UNSIGNED_INT_8_8_8_8_REV</constant></entry> |
| <entry><constant>CL_BGRA, CL_UNORM_INT8</constant></entry> |
| </row> |
| |
| <row> |
| <entry><constant>GL_RGBA8I, GL_RGBA8I_EXT</constant></entry> |
| <entry><constant>CL_RGBA, CL_SIGNED_INT8</constant></entry> |
| </row> |
| |
| <row> |
| <entry><constant>GL_RGBA16I, GL_RGBA16I_EXT</constant></entry> |
| <entry><constant>CL_RGBA, CL_SIGNED_INT16</constant></entry> |
| </row> |
| |
| <row> |
| <entry><constant>GL_RGBA32I, GL_RGBA32I_EXT</constant></entry> |
| <entry><constant>CL_RGBA, CL_SIGNED_INT32</constant></entry> |
| </row> |
| |
| <row> |
| <entry><constant>GL_RGBA8UI, GL_RGBA8UI_EXT</constant></entry> |
| <entry><constant>CL_RGBA, CL_UNSIGNED_INT8</constant></entry> |
| </row> |
| |
| <row> |
| <entry><constant>GL_RGBA16UI, GL_RGBA16UI_EXT</constant></entry> |
| <entry><constant>CL_RGBA, CL_UNSIGNED_INT16</constant></entry> |
| </row> |
| |
| <row> |
| <entry><constant>GL_RGBA32UI, GL_RGBA32UI_EXT</constant></entry> |
| <entry><constant>CL_RGBA, CL_UNSIGNED_INT32</constant></entry> |
| </row> |
| |
| <row> |
| <entry><constant>GL_RGBA8_SNORM</constant></entry> |
| <entry><constant>CL_RGBA, CL_SNORM_INT8</constant></entry> |
| </row> |
| |
| <row> |
| <entry><constant>GL_RGBA16</constant></entry> |
| <entry><constant>CL_RGBA, CL_UNORM_INT16</constant></entry> |
| </row> |
| |
| <row> |
| <entry><constant>GL_RGBA16_SNORM</constant></entry> |
| <entry><constant>CL_RGBA, CL_SNORM_INT166</constant></entry> |
| </row> |
| |
| <row> |
| <entry><constant>GL_RGBA16F, GL_RGBA16F_ARB</constant></entry> |
| <entry><constant>CL_RGBA, CL_HALF_FLOAT</constant></entry> |
| </row> |
| |
| <row> |
| <entry><constant>GL_RGBA32F, GL_RGBA32F_ARB</constant></entry> |
| <entry><constant>CL_RGBA, CL_FLOAT</constant></entry> |
| </row> |
| |
| <row> |
| <entry><constant>GL_R8</constant></entry> |
| <entry><constant>CL_R, CL_UNORM_INT8 </constant></entry> |
| </row> |
| <row> |
| <entry><constant>GL_R8_SNORM</constant></entry> |
| <entry><constant>CL_R, CL_SNORM_INT8 </constant></entry> |
| </row> |
| <row> |
| <entry><constant>GL_R16</constant></entry> |
| <entry><constant>CL_R, CL_UNORM_INT16 </constant></entry> |
| </row> |
| <row> |
| <entry><constant>GL_R16_SNORM</constant></entry> |
| <entry><constant>CL_R, CL_SNORM_INT16 </constant></entry> |
| </row> |
| <row> |
| <entry><constant>GL_R16F</constant></entry> |
| <entry><constant>CL_R, CL_HALF_FLOAT </constant></entry> |
| </row> |
| <row> |
| <entry><constant>GL_R32F</constant></entry> |
| <entry><constant>CL_R, CL_FLOAT </constant></entry> |
| </row> |
| <row> |
| <entry><constant>GL_R8I</constant></entry> |
| <entry><constant>CL_R, CL_SIGNED_INT8</constant></entry> |
| </row> |
| <row> |
| <entry><constant>GL_R16I</constant></entry> |
| <entry><constant>CL_R, CL_SIGNED_INT16</constant></entry> |
| </row> |
| <row> |
| <entry><constant>GL_R32I</constant></entry> |
| <entry><constant>CL_R, CL_SIGNED_INT32</constant></entry> |
| </row> |
| <row> |
| <entry><constant>GL_R8UI</constant></entry> |
| <entry><constant>CL_R, CL_UNSIGNED_INT8</constant></entry> |
| </row> |
| <row> |
| <entry><constant>GL_R16UI</constant></entry> |
| <entry><constant>CL_R, CL_UNSIGNED_INT16</constant></entry> |
| </row> |
| <row> |
| <entry><constant>GL_R32UI</constant></entry> |
| <entry><constant>CL_R, CL_UNSIGNED_INT32</constant></entry> |
| </row> |
| <row> |
| <entry><constant>GL_RG8</constant></entry> |
| <entry><constant>CL_RG, CL_UNORM_INT8 </constant></entry> |
| </row> |
| <row> |
| <entry><constant>GL_RG8_SNORM</constant></entry> |
| <entry><constant>CL_RG, CL_SNORM_INT8</constant></entry> |
| </row> |
| <row> |
| <entry><constant>GL_RG16</constant></entry> |
| <entry><constant>CL_RG, CL_UNORM_INT16</constant></entry> |
| </row> |
| <row> |
| <entry><constant>GL_RG16_SNORM</constant></entry> |
| <entry><constant>CL_RG, CL_SNORM_INT16 </constant></entry> |
| </row> |
| <row> |
| <entry><constant>GL_RG16F</constant></entry> |
| <entry><constant>CL_RG, CL_HALF_FLOAT </constant></entry> |
| </row> |
| <row> |
| <entry><constant>GL_RG32F</constant></entry> |
| <entry><constant>CL_RG, CL_FLOAT</constant></entry> |
| </row> |
| <row> |
| <entry><constant>GL_RG8I</constant></entry> |
| <entry><constant>CL_RG, CL_SIGNED_INT8</constant></entry> |
| </row> |
| <row> |
| <entry><constant>GL_RG16I</constant></entry> |
| <entry><constant>CL_RG, CL_SIGNED_INT16</constant></entry> |
| </row> |
| <row> |
| <entry><constant>GL_RG32I</constant></entry> |
| <entry><constant>CL_RG, CL_SIGNED_INT32</constant></entry> |
| </row> |
| <row> |
| <entry><constant>GL_RG8UI</constant></entry> |
| <entry><constant>CL_RG, CL_UNSIGNED_INT8</constant></entry> |
| </row> |
| <row> |
| <entry><constant>GL_RG16UI</constant></entry> |
| <entry><constant>CL_RG, CL_UNSIGNED_INT16</constant></entry> |
| </row> |
| <row> |
| <entry><constant>GL_RG32UI</constant></entry> |
| <entry><constant>CL_RG, CL_UNSIGNED_INT32</constant></entry> |
| </row> |
| </tbody> |
| </tgroup> |
| </informaltable> |
| |
| <para> |
| If the <citerefentry><refentrytitle>cl_khr_gl_depth_images</refentrytitle></citerefentry> |
| extension is enabled, the |
| following new image formats are added to table 9.4 in section 9.6.3.1 of the OpenCL 2.0 |
| extension specification. If a GL texture object with an internal format from table 9.4 is |
| successfully created by OpenGL, then there is guaranteed to be a mapping to one of the |
| corresponding CL image format(s) in that table. |
| </para> |
| |
| <informaltable frame="all"> |
| <tgroup cols="2" align="center" colsep="1" rowsep="1"> |
| <colspec colname="col1" colnum="1" /> |
| <colspec colname="col2" colnum="2" /> |
| <thead> |
| <row> |
| <entry>GL internal format</entry> |
| <entry>CL image format (channel order, channel data type)</entry> |
| </row> |
| </thead> |
| |
| <tbody> |
| <row> |
| <entry><constant>GL_DEPTH_COMPONENT32F</constant></entry> |
| <entry><constant>CL_DEPTH, CL_FLOAT</constant></entry> |
| </row> |
| |
| <row> |
| <entry><constant>GL_DEPTH_COMPONENT16</constant></entry> |
| <entry><constant>CL_DEPTH, CL_UNORM_INT16</constant></entry> |
| </row> |
| |
| <row> |
| <entry><constant>GL_DEPTH24_STENCIL8</constant></entry> |
| <entry><constant>CL_DEPTH_STENCIL, CL_UNORM_INT24</constant></entry> |
| </row> |
| |
| <row> |
| <entry><constant>GL_DEPTH32F_STENCIL8</constant></entry> |
| <entry><constant>CL_DEPTH_STENCIL, CL_FLOAT</constant></entry> |
| </row> |
| |
| </tbody> |
| </tgroup> |
| </informaltable> |
| |
| <!-- 22-Dec-2013, rev. 19 --> |
| |