<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
              "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd">

<refentry>
    <refentryinfo>
        <keywordset>
            <keyword>Deprecated OpenCL Functions</keyword>
        </keywordset>
    </refentryinfo>

    <refmeta>
        <refentrytitle>Deprecated OpenCL Functions</refentrytitle>
        <refmiscinfo>
            <copyright>
                <year>2007-2015</year>
                <holder>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.</holder>
            </copyright>
        </refmiscinfo>
        <manvolnum>3</manvolnum>
    </refmeta>

    <refnamediv>
        <refname>Deprecated OpenCL Functions</refname>
        <refpurpose></refpurpose>
    </refnamediv>

    <para>
        Deprecation (glossary definition): A feature that is 
        deprecated in a given version of the specification will be excluded
        from the text of that revision of the specification. 
        All listed features detailed in earlier versions of
        the specification that have been deprecated are 
        required to be supported by the current version of
        the specification as described in the version of 
        the specification in which the feature was last
        defined. These features may be removed entirely 
        in a future version.
    </para>

    <refsect1 id="DepIn21">
        <title>OpenCL Features Deprecated in OpenCL 2.1</title>
        <itemizedlist mark="disc">
            <listitem>OpenCL 2.0 KHR extension 
            <citerefentry><refentrytitle>cl_khr_spir</refentrytitle></citerefentry></listitem>
        </itemizedlist>
    </refsect1>

    <refsect1 id="DepIn20">
        <title>OpenCL Features Deprecated in OpenCL 2.0</title>
        <itemizedlist mark="disc">
            <listitem> clCreateCommandQueue </listitem>
            <listitem> clCreateSampler </listitem>
            <listitem> clEnqueueTask </listitem>

            <listitem>
                The <constant>CL_DEVICE_HOST_UNIFIED_MEMORY</constant> 
                <varname>param_name</varname> argument to
                <citerefentry><refentrytitle>clGetDeviceInfo</refentrytitle></citerefentry>.
            </listitem>

            <listitem>
                The <constant>CL_DEVICE_QUEUE_PROPERTIES</constant>
                <varname>param_name</varname> argument to
                <citerefentry><refentrytitle>clGetDeviceInfo</refentrytitle></citerefentry>
                (replaced by
                <constant>CL_DEVICE_QUEUE_ON_HOST_PROPERTIES</constant>).
            </listitem>

            <listitem>
                The <constant>CL_IMAGE_BUFFER</constant>
                <varname>param_name</varname> argument to
                <citerefentry><refentrytitle>clGetImageInfo</refentrytitle></citerefentry>.
            </listitem>

            <listitem>
                The explicit memory fence functions defined in section
                6.12.9 of the OpenCL 1.2 specification.
            </listitem>

            <listitem>
                The OpenCL 1.2 atomic built-in functions for 32-bit integer
                and floating-point data types defined in section 6.12.11 of
                the OpenCL 1.2 specification.
            </listitem>
        </itemizedlist>
    </refsect1>

    <refsect1 id="DepIn12">
        <title>OpenCL 1.1 Features Deprecated in OpenCL 1.2</title>
        <itemizedlist mark="disc">
        <listitem>
       clEnqueueMarker, clEnqueueBarrier, clEnqueueWaitForEvents
        </listitem>

        <listitem>
       clCreateImage2D, clCreateImage3D
        </listitem>

        <listitem>
       clUnloadCompiler, clGetExtensionFunctionAddress
        </listitem>

        <listitem>
       clCreateFromGLTexture2D, clCreateFromGLTexture3D
        </listitem>

        <listitem>
       <constant>CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE</constant> value for the <varname>param_name</varname> argument to
             <citerefentry><refentrytitle>clGetDeviceInfo</refentrytitle></citerefentry>
        </listitem>
   </itemizedlist>
</refsect1>

<refsect1 id="DepIn11">
    <title>OpenCL 1.0 Features Deprecated in OpenCL 1.1</title>
    <itemizedlist mark="disc">
        <listitem>
       clSetCommandQueueProperty
        </listitem>

        <listitem>
       <constant>__ROUNDING_MODE__</constant> macro
        </listitem>

        <listitem>
       <constant>-cl-strict-aliasing</constant> option for the <varname>options</varname> argument to
             <citerefentry><refentrytitle>clBuildProgram</refentrytitle></citerefentry>
        </listitem>
   </itemizedlist>
</refsect1>

<!--
    <refsect1 id="description">
      <title>Description</title>
    </refsect1>
-->

    <refsect1 id="specification"><title>Specification</title>
        <para>
            <imageobject>
                <imagedata fileref="pdficon_small1.gif" format="gif" />
            </imageobject> <olink uri="deprecated">OpenCL Specification</olink>
        </para>
    </refsect1>

<!-- ================================ ALSO SEE
    <refsect1 id="seealso"><title>Also see</title>
        <para>
        </para>
    </refsect1>-->

<!-- ============================== COPYRIGHT -->
<!-- Content included from copyright.inc.xsl -->

    <refsect3 id="Copyright"><title></title>
        <imageobject>
                <imagedata fileref="KhronosLogo.jpg" format="jpg" />
        </imageobject>
        <para />
    </refsect3>

<!-- 7-Jun-2013 -->
</refentry>

