| <?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>clGetProgramBuildInfo</keyword> | |
| </keywordset> | |
| </refentryinfo> | |
| <refmeta> | |
| <refentrytitle> | |
| clGetProgramBuildInfo | |
| </refentrytitle> | |
| <refmiscinfo> | |
| <copyright> | |
| <year>2007-2013</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> | |
| <!-- ================================ SYNOPSIS --> | |
| <refnamediv id="clGetProgramBuildInfo"> | |
| <refname> | |
| clGetProgramBuildInfo | |
| </refname> | |
| <refpurpose> | |
| Returns build information for each device in the program object. | |
| </refpurpose> | |
| </refnamediv> | |
| <refsynopsisdiv xmlns:xlink="http://www.w3.org/1999/xlink"><title></title> | |
| <funcsynopsis> | |
| <funcprototype> | |
| <funcdef> | |
| <link xlink:href="scalarDataTypes.html">cl_int</link> | |
| <function>clGetProgramBuildInfo</function> | |
| </funcdef> | |
| <paramdef><link xlink:href="abstractDataTypes.html">cl_program</link> <parameter>program</parameter></paramdef>, | |
| <paramdef><link xlink:href="abstractDataTypes.html">cl_device_id</link> <parameter>device</parameter></paramdef>, | |
| <paramdef><link xlink:href="enums.html#cl_program_build_info">cl_program_build_info</link> <parameter>param_name</parameter></paramdef>, | |
| <paramdef><link xlink:href="scalarDataTypes.html">size_t</link> <parameter>param_value_size</parameter></paramdef>, | |
| <paramdef><link xlink:href="scalarDataTypes.html">void</link> <parameter>*param_value</parameter></paramdef>, | |
| <paramdef><link xlink:href="scalarDataTypes.html">size_t</link> <parameter>*param_value_size_ret</parameter></paramdef> | |
| </funcprototype> | |
| </funcsynopsis> | |
| </refsynopsisdiv> | |
| <!-- ================================ PARAMETERS --> | |
| <refsect1 id="parameters"> | |
| <title>Parameters</title> | |
| <variablelist> | |
| <varlistentry> | |
| <term><varname>program</varname></term> | |
| <listitem><para> Specifies the program object being queried.</para></listitem> | |
| </varlistentry> | |
| <varlistentry> | |
| <term><varname>device</varname></term> | |
| <listitem><para> | |
| Specifies the device for which build information is being queried. | |
| <varname>device</varname> must be a valid device associated with <varname>program</varname>. | |
| </para></listitem> | |
| </varlistentry> | |
| <varlistentry> | |
| <term><varname> | |
| param_name | |
| </varname></term> | |
| <listitem> | |
| <para> | |
| Specifies the information to query. The list of supported | |
| <varname>param_name</varname> types and the information returned in | |
| <varname>param_value</varname> by <function>clGetProgramBuildInfo</function> | |
| is described in the table below. | |
| </para> | |
| <!-- table 5.17 --> | |
| <informaltable frame="all"> | |
| <tgroup cols="2" align="left" colsep="1" rowsep="1"> | |
| <colspec colname="col1" colnum="1" /> | |
| <colspec colname="col2" colnum="2" /> | |
| <thead> | |
| <row> | |
| <entry>cl_program_build_info</entry> | |
| <entry>Return Type and Info. returned in <varname>param_value</varname></entry> | |
| </row> | |
| </thead> | |
| <tbody> | |
| <row> | |
| <entry><constant>CL_PROGRAM_BUILD_STATUS</constant></entry> | |
| <entry> | |
| Return type: cl_build_status | |
| <para> | |
| Returns the build, compile or link status, whichever was | |
| performed last on <varname>program</varname> for <varname>device</varname>. | |
| </para> | |
| <para> | |
| This can be one of the following: | |
| </para> | |
| <para> | |
| <errorname><constant>CL_BUILD_NONE</constant></errorname>. | |
| The build status returned if no | |
| <citerefentry><refentrytitle>clBuildProgram</refentrytitle></citerefentry>, | |
| <citerefentry><refentrytitle>clCompileProgram</refentrytitle></citerefentry> | |
| or | |
| <citerefentry><refentrytitle>clLinkProgram</refentrytitle></citerefentry> | |
| has been performed on the specified program object | |
| for <varname>device</varname>. | |
| </para> | |
| <para> | |
| <errorname><constant>CL_BUILD_ERROR</constant></errorname>. | |
| The build status returned if | |
| <citerefentry><refentrytitle>clBuildProgram</refentrytitle></citerefentry>, | |
| <citerefentry><refentrytitle>clCompileProgram</refentrytitle></citerefentry> | |
| or | |
| <citerefentry><refentrytitle>clLinkProgram</refentrytitle></citerefentry> | |
| whichever was performed last on the specified program | |
| object for <varname>device</varname> generated an error. | |
| </para> | |
| <para> | |
| <errorname><constant>CL_BUILD_SUCCESS</constant></errorname>. | |
| The build status returned if | |
| <citerefentry><refentrytitle>clBuildProgram</refentrytitle></citerefentry>, | |
| <citerefentry><refentrytitle>clCompileProgram</refentrytitle></citerefentry> | |
| or | |
| <citerefentry><refentrytitle>clLinkProgram</refentrytitle></citerefentry> | |
| whichever was performed last on the specified program | |
| object for <varname>device</varname> was successful. | |
| </para> | |
| <para> | |
| <errorname><constant>CL_BUILD_IN_PROGRESS</constant></errorname>. | |
| The build status returned if | |
| <citerefentry><refentrytitle>clBuildProgram</refentrytitle></citerefentry>, | |
| <citerefentry><refentrytitle>clCompileProgram</refentrytitle></citerefentry> | |
| or | |
| <citerefentry><refentrytitle>clLinkProgram</refentrytitle></citerefentry> | |
| whichever was performed last on the specified program | |
| object for <varname>device</varname> has not finished. | |
| </para> | |
| </entry> | |
| </row> | |
| <row> | |
| <entry><errorname><constant>CL_PROGRAM_BUILD_OPTIONS</constant></errorname></entry> | |
| <entry> | |
| Return type: char[] | |
| <para> | |
| Return the build, compile or link | |
| options specified by the <varname>options</varname> argument in | |
| <citerefentry><refentrytitle>clBuildProgram</refentrytitle></citerefentry>, | |
| <citerefentry><refentrytitle>clCompileProgram</refentrytitle></citerefentry> | |
| or | |
| <citerefentry><refentrytitle>clLinkProgram</refentrytitle></citerefentry>, | |
| whichever was performed last on <varname>program</varname> for | |
| <varname>device</varname>. | |
| </para> | |
| <para> | |
| If build status of <varname>program</varname> | |
| for <varname>device</varname> is | |
| <constant>CL_BUILD_NONE</constant>, an empty string | |
| is returned. | |
| </para> | |
| </entry> | |
| </row> | |
| <row> | |
| <entry><errorname><constant>CL_PROGRAM_BUILD_LOG</constant></errorname></entry> | |
| <entry> | |
| Return type: char[] | |
| <para> | |
| Return the build, compile or link log for | |
| <citerefentry><refentrytitle>clBuildProgram</refentrytitle></citerefentry> or | |
| <citerefentry><refentrytitle>clCompileProgram</refentrytitle></citerefentry> | |
| whichever was performed last on <varname>program</varname> for | |
| <varname>device</varname>. | |
| </para> | |
| <para> | |
| If build status of <varname>program</varname> for <varname>device</varname> is | |
| <constant>CL_BUILD_NONE</constant>, an empty string | |
| is returned. | |
| </para> | |
| </entry> | |
| </row> | |
| <row> | |
| <entry><errorname><constant>CL_PROGRAM_BINARY_TYPE</constant></errorname></entry> | |
| <entry> | |
| Return type: cl_program_binary_type | |
| <para> | |
| Return the program binary type for | |
| <varname>device</varname>. This can be one of the | |
| following values: | |
| </para> | |
| <para> | |
| <constant>CL_PROGRAM_BINARY_TYPE_NONE</constant>. There | |
| is no binary associated with <varname>device</varname>. | |
| </para> | |
| <para> | |
| <constant>CL_PROGRAM_BINARY_TYPE_COMPILED_OBJECT</constant>. | |
| A compiled binary is associated | |
| with <varname>device</varname>. | |
| This is the case if <varname>program</varname> was created using | |
| <citerefentry><refentrytitle>clCreateProgramWithSource</refentrytitle></citerefentry> | |
| and compiled using | |
| <citerefentry><refentrytitle>clCompileProgram</refentrytitle></citerefentry> | |
| or a compiled binary is loaded using | |
| <citerefentry><refentrytitle>clCreateProgramWithBinary</refentrytitle></citerefentry>. | |
| </para> | |
| <para> | |
| <constant>CL_PROGRAM_BINARY_TYPE_LIBRARY</constant>. A | |
| library binary is associated | |
| with <varname>device</varname>. | |
| This is the case if <varname>program</varname> was created by | |
| <citerefentry><refentrytitle>clLinkProgram</refentrytitle></citerefentry> | |
| which is called with the <code>–create-library</code> link | |
| option or if a library binary is loaded using | |
| <citerefentry><refentrytitle>clCreateProgramWithBinary</refentrytitle></citerefentry>. | |
| </para> | |
| <para> | |
| <constant>CL_PROGRAM_BINARY_TYPE_EXECUTABLE</constant>. | |
| An executable binary is associated | |
| with <varname>device</varname>. | |
| This is the case if <varname>program</varname> was created by | |
| <citerefentry><refentrytitle>clLinkProgram</refentrytitle></citerefentry> | |
| without the <code>–create-library</code> | |
| link option or program was created by | |
| <citerefentry><refentrytitle>clBuildProgram</refentrytitle></citerefentry> | |
| or an executable binary is loaded using | |
| <citerefentry><refentrytitle>clCreateProgramWithBinary</refentrytitle></citerefentry>. | |
| </para> | |
| <para> | |
| <constant>CL_PROGRAM_BINARY_TYPE_INTERMEDIATE</constant>. | |
| (Applies if extension | |
| <citerefentry><refentrytitle>cl_khr_spir</refentrytitle></citerefentry> | |
| is enabled.) | |
| An intermediate (non-source) representation for | |
| the program is loaded as a binary. The program | |
| must be further processed with | |
| <citerefentry><refentrytitle>clCompileProgram</refentrytitle></citerefentry> | |
| or <citerefentry><refentrytitle>clBuildProgram</refentrytitle></citerefentry>. | |
| If processed with | |
| <citerefentry><refentrytitle>clCompileProgram</refentrytitle></citerefentry>, | |
| the result | |
| will be a binary of type | |
| <constant>CL_PROGRAM_BINARY_TYPE_COMPILED_OBJECT</constant> or | |
| <constant>CL_PROGRAM_BINARY_TYPE_LIBRARY</constant>. If | |
| processed with | |
| <citerefentry><refentrytitle>clBuildProgram</refentrytitle></citerefentry>, | |
| the result will be | |
| a binary of type <constant>CL_PROGRAM_BINARY_TYPE_EXECUTABLE</constant>. | |
| </para> | |
| </entry> | |
| </row> | |
| <row> | |
| <entry><errorname><constant>CL_PROGRAM_BUILD_GLOBAL_- | |
| VARIABLE_TOTAL_SIZE</constant></errorname></entry> | |
| <entry> | |
| Return type: size_t | |
| <para> | |
| The total amount of storage, in bytes, used by | |
| program variables in the global address space. | |
| </para> | |
| </entry> | |
| </row> | |
| </tbody> | |
| </tgroup> | |
| </informaltable> | |
| </listitem> | |
| </varlistentry> | |
| <varlistentry> | |
| <term><varname>param_value</varname></term> | |
| <listitem><para> | |
| A pointer to memory where the appropriate result being queried is returned. | |
| If <varname>param_value</varname> is NULL, it is ignored. | |
| </para></listitem> | |
| </varlistentry> | |
| <varlistentry> | |
| <term><varname>param_value_size</varname></term> | |
| <listitem><para> | |
| Specifies the size in bytes of memory pointed to by <varname>param_value</varname>. This size | |
| must be ≥ size of return type as described in the table above. | |
| </para></listitem> | |
| </varlistentry> | |
| <varlistentry> | |
| <term><varname>param_value_size_ret</varname></term> | |
| <listitem><para> | |
| Returns the actual size in bytes of data copied to <varname>param_value</varname>. | |
| If <varname>param_value_size_ret</varname> is NULL, it is ignored. | |
| </para></listitem> | |
| </varlistentry> | |
| </variablelist> | |
| </refsect1> | |
| <!-- ================================ NOTES --> | |
| <refsect1 id="notes"><title>Notes</title> | |
| <para> | |
| A program binary (compiled binary, library binary or executable binary) built for a | |
| parent device can be used by all its sub-devices. If a program binary has not been built | |
| for a sub-device, the program binary associated with the parent device will be used. | |
| </para> | |
| <para> | |
| A program binary for a device specified with | |
| <citerefentry><refentrytitle>clCreateProgramWithBinary</refentrytitle></citerefentry> | |
| or queried using | |
| <citerefentry><refentrytitle>clGetProgramInfo</refentrytitle></citerefentry> can be | |
| used as the binary for the associated root device, and all sub-devices created from | |
| the root-level device or sub-devices thereof. | |
| </para> | |
| </refsect1> | |
| <!-- ================================ ERRORS --> | |
| <refsect1 id="errors"><title>Errors</title> | |
| <para> | |
| Returns <errorname>CL_SUCCESS</errorname> if the function is executed successfully. | |
| Otherwise it returns the following: | |
| </para> | |
| <itemizedlist mark="disc"> | |
| <listitem> | |
| Returns <errorname>CL_INVALID_DEVICE</errorname> if <varname>device</varname> | |
| is not in the list of devices associated with <varname>program</varname>. | |
| </listitem> | |
| <listitem> | |
| Returns <errorname>CL_INVALID_VALUE</errorname> if <varname>param_name</varname> is | |
| not valid, or if size in bytes specified by <varname>param_value_size</varname> | |
| is < size of return type as described in the table above and | |
| <varname>param_value</varname> is not NULL. | |
| </listitem> | |
| <listitem> | |
| Returns <errorname>CL_INVALID_PROGRAM</errorname> if <varname>program</varname> | |
| is a not a valid program object. | |
| </listitem> | |
| <listitem> | |
| <errorname>CL_OUT_OF_RESOURCES</errorname> if there is a failure to allocate | |
| resources required by the OpenCL implementation on the device. | |
| </listitem> | |
| <listitem> | |
| <errorname>CL_OUT_OF_HOST_MEMORY</errorname> if there is a failure to allocate | |
| resources required by the OpenCL implementation on the host. | |
| </listitem> | |
| </itemizedlist> | |
| </refsect1> | |
| <!-- ================================ EXAMPLE --> | |
| <!-- DO NOT DELETE IN CASE AN EXAMPLE IS ADDED IN THE FUTURE --> | |
| <!-- | |
| <refsect2 id="example1"> | |
| <title> | |
| Example | |
| </title> | |
| <informaltable frame="none"> | |
| <tgroup cols="1" align="left" colsep="0" rowsep="0"> | |
| <colspec colname="col1" colnum="1" /> | |
| <tbody> | |
| <row> | |
| <entry> | |
| Example goes here - it will be set in "code" type with white space preserved. | |
| </entry> | |
| </row> | |
| </tbody> | |
| </tgroup> | |
| </informaltable> | |
| </refsect2> | |
| --> | |
| <!-- ================================ SPECIFICATION --> | |
| <!-- Set the "uri" attribute in the <olink /> element to the "named destination" for the PDF page | |
| --> | |
| <refsect1 id="specification"><title>Specification</title> | |
| <para> | |
| <imageobject> | |
| <imagedata fileref="pdficon_small1.gif" format="gif" /> | |
| </imageobject> | |
| <olink uri="clGetProgramBuildInfo">OpenCL Specification</olink> | |
| </para> | |
| </refsect1> | |
| <!-- ================================ ALSO SEE --> | |
| <refsect1 id="seealso"><title>Also see</title> | |
| <para> | |
| <citerefentry><refentrytitle>clGetProgramInfo</refentrytitle></citerefentry> | |
| </para> | |
| </refsect1> | |
| <!-- ================================ COPYRIGHT --> | |
| <!-- Content included from copyright.inc.xsl --> | |
| <refsect3 id="Copyright"><title></title> | |
| <imageobject> | |
| <imagedata fileref="KhronosLogo.jpg" format="jpg" /> | |
| </imageobject> | |
| <para /> | |
| </refsect3> | |
| <!-- 26-Oct-2015, API rev. 19 --> | |
| </refentry> | |