<h2>How to build</h2>
-<p>There are two ways to build Beignet.</p>
-
-<p>The first one uses a simple Makefile. Just type <code>make</code> and the project will
-build if everything is properly installed.</p>
-
-<p>The project also uses CMake with three profiles:</p>
+<p>The project uses CMake with three profiles:</p>
<ol>
<li>Debug (-g)</li>
<h2>Supported Hardware</h2>
-<p>As an important remark, the code was only tested on IVB GT2 with a rather
-minimal Linux distribution (ArchLinux) and a very small desktop (dwm). If you
-use something more sophisticated using compiz or similar stuffs, you may expect
-serious problems and GPU hangs.</p>
-
-<p>Only IVB is supported right now. Actually, the code was only run on IVB GT2. You
+<p>The code was tested on IVB GT2 with ubuntu and fedora core distribution.
+Currently Only IVB is supported right now. Actually, the code was only run on IVB GT2. You
may expect some issues with IVB GT1.</p>
<h2>TODO</h2>
do:</p>
<ul>
-<li><p>Support dynamic sampler assignment in kernel. We now only support user to use
-clCreateSampler at host side and then pass the sampler to kernel.</p></li>
<li><p>Complete cl_khr_gl_sharing support. We lack of some APIs implementation such
as clCreateFromGLBuffer,clCreateFromGLRenderbuffer,clGetGLObjectInfo... Currently,
the working APIs are clCreateFromGLTexture,clCreateFromGLTexture2D.</p></li>
expensive pipe controls are issued for each batch buffer</p></li>
<li><p>Valgrind reports some leaks in libdrm. It sounds like a false positive but it
has to be checked. Idem for LLVM. There is one leak here to check.</p></li>
-<li><p>Support image/samplers in C++ simulator.</p></li>
</ul>
<p>More generally, everything in the run-time that triggers the "FATAL" macro means
that something that must be supported is not implemented properly (either it
does not comply with the standard or it is just missing)</p>
-<p>Project repository</p>
+<h2>Project repository</h2>
<p>Right now, we host our project on fdo at: git://anongit.freedesktop.org/beignet.</p>
<p>This project was created by Ben Segovia when he was working for Intel. Now we
have a team in China OTC graphics department continue to work on this project.
-We haven't set up a public mail list for this project, but we will do so in
-the near furture. Before that, the contact is as below:
-Zou Nanhai (<a href="mailto:nanhai.zou@intel.com">nanhai.zou@intel.com</a>).</p>
+The official contact for this project is: Zou Nanhai (<a href="mailto:nanhai.zou@intel.com">nanhai.zou@intel.com</a>).</p>
+
+<h2>How to contribute</h2>
+
+<p>You are always welcome to contribute to this project, just need to subscribe
+to the beignet mail list and send patches to it for review.
+The official mail list is as below:
+http://lists.freedesktop.org/mailman/listinfo/beignet</p>
How to build
------------
-There are two ways to build Beignet.
-
-The first one uses a simple Makefile. Just type `make` and the project will
-build if everything is properly installed.
-
-The project also uses CMake with three profiles:
+The project uses CMake with three profiles:
1. Debug (-g)
2. RelWithDebInfo (-g with optimizations)
Supported Hardware
------------------
-As an important remark, the code was only tested on IVB GT2 with a rather
-minimal Linux distribution (ArchLinux) and a very small desktop (dwm). If you
-use something more sophisticated using compiz or similar stuffs, you may expect
-serious problems and GPU hangs.
-
-Only IVB is supported right now. Actually, the code was only run on IVB GT2. You
+The code was tested on IVB GT2 with ubuntu and fedora core distribution.
+Currently Only IVB is supported right now. Actually, the code was only run on IVB GT2. You
may expect some issues with IVB GT1.
TODO
together to test and develop the OpenCL compiler. A partial list of things to
do:
-- Support dynamic sampler assignment in kernel. We now only support user to use
- clCreateSampler at host side and then pass the sampler to kernel.
-
- Complete cl\_khr\_gl\_sharing support. We lack of some APIs implementation such
as clCreateFromGLBuffer,clCreateFromGLRenderbuffer,clGetGLObjectInfo... Currently,
the working APIs are clCreateFromGLTexture,clCreateFromGLTexture2D.
- Valgrind reports some leaks in libdrm. It sounds like a false positive but it
has to be checked. Idem for LLVM. There is one leak here to check.
-- Support image/samplers in C++ simulator.
-
More generally, everything in the run-time that triggers the "FATAL" macro means
that something that must be supported is not implemented properly (either it
does not comply with the standard or it is just missing)
Project repository
-
+------------------
Right now, we host our project on fdo at: git://anongit.freedesktop.org/beignet.
The team
--------
This project was created by Ben Segovia when he was working for Intel. Now we
have a team in China OTC graphics department continue to work on this project.
-We haven't set up a public mail list for this project, but we will do so in
-the near furture. Before that, the contact is as below:
-Zou Nanhai (<nanhai.zou@intel.com>).
+The official contact for this project is: Zou Nanhai (<nanhai.zou@intel.com>).
+
+How to contribute
+-----------------
+You are always welcome to contribute to this project, just need to subscribe
+to the beignet mail list and send patches to it for review.
+The official mail list is as below:
+http://lists.freedesktop.org/mailman/listinfo/beignet
<code>mad</code>, atomic operations, barriers...).</p></li>
<li><p>Lowering down of int16 / int8 / float16 / char16 / char8 / char4 loads and
stores into the supported loads and stores</p></li>
-<li><p>Support for constant buffers declared in the OpenCL source file</p></li>
<li><p>Support for local declaration of local array (the OpenCL profile will properly
declare them as global arrays)</p></li>
<li><p>Support for doubles</p></li>
+<li><p>Support atomic extensions.</p></li>
<li><p>Better resolving of the PHI functions. Today, we always generate MOV
instructions at the end of each basic block . They can be easily optimized.</p></li>
</ul>
<ul>
<li><p>Bringing support for doubles</p></li>
+<li><p>Adding support for atomic extensions.</p></li>
<li><p>Finishing the handling of function arguments (see the <a href="gen_ir.html">IR
description</a> for more details)</p></li>
-<li><p>Adding support for constant data per unit</p></li>
<li><p>Adding support for linking IR units together. OpenCL indeed allows to create
programs from several sources</p></li>
<li><p>Uniform analysys. This is a major performance improvement. A "uniform" value
<ul>
<li><p>Implementing support for doubles</p></li>
+<li><p>Implementing atomic extensions.</p></li>
<li><p>Implementing register spilling (see the <a href="./compiler_backend.html">compiler backend
description</a> for more details)</p></li>
<li><p>Implementing proper instruction selection. A "simple" tree matching algorithm
should provide good results for Gen</p></li>
-<li><p>Implementing the instruction scheduling pass</p></li>
+<li><p>Improving the instruction scheduling pass</p></li>
</ul>
<h2>General plumbing</h2>
- Lowering down of int16 / int8 / float16 / char16 / char8 / char4 loads and
stores into the supported loads and stores
-- Support for constant buffers declared in the OpenCL source file
-
- Support for local declaration of local array (the OpenCL profile will properly
declare them as global arrays)
- Support for doubles
+- Support atomic extensions.
+
- Better resolving of the PHI functions. Today, we always generate MOV
instructions at the end of each basic block . They can be easily optimized.
- Bringing support for doubles
+- Adding support for atomic extensions.
+
- Finishing the handling of function arguments (see the [IR
description](gen_ir.html) for more details)
-- Adding support for constant data per unit
-
- Adding support for linking IR units together. OpenCL indeed allows to create
programs from several sources
- Implementing support for doubles
+- Implementing atomic extensions.
+
- Implementing register spilling (see the [compiler backend
description](./compiler_backend.html) for more details)
- Implementing proper instruction selection. A "simple" tree matching algorithm
should provide good results for Gen
-- Implementing the instruction scheduling pass
+- Improving the instruction scheduling pass
General plumbing
----------------