<?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>

    <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>
                The explicit memory fence functions defined in section
                6.12.9 of the OpenCL 1.2 specification.
            <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>

