
Intel(R) Graphics Memory Management Library
*******************************************

Introduction
=============

The Intel(R) Graphics Memory Management Library provides device specific and buffer
management for the Intel(R) Graphics Compute Runtime for OpenCL(TM) and the
Intel(R) Media Driver for VAAPI.

License
========

The Intel(R) Graphics Memory Management Library is distributed under the MIT
Open Source license.

You may obtain a copy of the License at:

https://opensource.org/licenses/MIT

Building
========
1) Get gmmlib repository
   
   git clone https://github.com/intel/gmmlib.git

2) Change it to root directory

   ``$ cd gmmlib``

3) Make a build directory
   
   ``$ mkdir build && cd build``

4) Run the cmake command to prepare build files

|        ``$ cmake [-DCMAKE_BUILD_TYPE=Release | Debug | ReleaseInternal] ..``  
|        where,
|        -DCMAKE_BUILD_TYPE can be set to one build type flag at a time.
|        Example:
|        ``$ cmake -DCMAKE_BUILD_TYPE=Release ..``, For Release build

5) Build the project

   ``$ make -j"$(nproc)" (Also performs compile time ULT)``
 
Install
=======
``$ sudo make install``

This will install the following files (e.g. on Ubuntu):

| -- Install configuration: "Release"
| -- Installing: /usr/local/lib/libigdgmm.so.12.1.0
| -- Installing: /usr/local/lib/libigdgmm.so.12
| 


Not a stand alone software component.
GmmLib is built as dynamic library for Intel media driver and Compute runtime for OpenCL

Supported Platforms
-------------------
Intel Atom and Core Processors supporting Gen8/Gen9/Gen10 graphics devices

BDW (Broadwell)

SKL (Skylake, Kaby Lake, Coffee Lake)

BXTx (BXT: Broxton, APL: Apollo Lake, GLK: Gemini Lake)

KBLx (KBL: Kaby Lake, CFL: Coffe Lake, WHL: Whiskey Lake, CML: Comet Lake, AML: Amber Lake)

CNL (Cannonlake)

ICL (Icelake)

TGLx (TGL: Tiger Lake, RKL: Rocket Lake)

ADLx (ADL-S: Alder Lake S, ADL-P: Alder Lake P, ADL-N: Alder Lake N)

XE_LP (DG1)

XE_HP (XE_HP_SDV)

XE_HPC (PVC: Ponte Vecchio)

XE_HPG (DG2, ACM: Alchemist)

Xe_LPG (MTL: Meteor Lake, ARL: Arrow Lake)

Xe2_HPG (BMG: Battlemage, LNL: Lunar Lake)

Xe3_LPG (Panther Lake)

Release Tags
============

Gmmlib Release tag versioning schema follows:

| Tag ``intel-gmmlib-<x>.<y>.<z>`` will be stable release series with the same API and ABI version with only bug fixes where,
| x = GMMLIB_API_MAJOR_VERSION + 10,
| y = GMMLIB_API_MINOR_VERSION,
| z = RELEASE NUMBER which is incremented as 0,1,2,...n for changes including new flag, bug fixes, etc.
| 
| Example:
|   For GMM library ``libigdgmm.so.12.0.0``,
|   Tag = ``intel-gmmlib-22.0.0`` where,
|        22 = GMMLIB_API_MAJOR_VERSION + 10 = 12 + 10
|        0 = GMMLIB_API_MINOR_VERSION
|        0 = RELEASE NUMBER
|
On potential ABI break changes,

| Tag ``intel-gmmlib-<x>.<y>.<z>`` becomes ``intel-gmmlib-<x + 1>.0.0``
| i.e ``intel-gmmlib-22.5.3`` becomes ``intel-gmmlib-23.0.0``

Known Issues and Limitations
============================
Current Gmmlib support only limited to Linux

(*) Other names and brands may be claimed as property of others.
---------------------------------------------------------------

