[CP] dynamic gmm header file change copy from CL793947
Because certain ResourceInfo exported APIs are inlined,
GmmLib is accidently exposing internal functions/class members.
This is causing build issues with unresolved symbols when clients switch to dynamic linking.
Fix is to use ClientContext exported APIs for UMD clients.
Change-Id: I58db29d2f31c3f2586de80369f5ed085e14f06be
Signed-off-by: drprajap <dimpalben.r.prajapati@intel.com>
Avoid inlining of exported member functions in Client’s code in DLL mode, this is to eliminate exposing internal members in exported APIs causing linker issues.
Change-Id: Ia982002eb43f4816099f3de181f11bb1e25e5872
Signed-off-by: johnbash <johnbasha.shaik@intel.com>
define GMM_ENTRY_NAME and DLL name based on 32/64 bit OS check
add DLL name for linux clients (neo) - could be temporary until
clients use generated header
Change-Id: I4e1438cb3989ed6efcd4859e4676150e747ddd84
Signed-off-by: drprajap <dimpalben.r.prajapati@intel.com>
- remove redundant gmm from file and package name
- specify gmmlib-devel package file name
- use proper architecture for .deb package
Change-Id: I0d3f124fc677edb04530106fd0a6f24d7cb92a3d
Signed-off-by: Artur Harasimiuk <artur.harasimiuk@intel.com>
Commit a5f2391 hard-codes
install paths and does not honor CMAKE_INSTALL_PREFIX
setting.
GNUInstallDirs uses GNU Coding Standards and properly determines
the correct install paths based on distro. GNUInstallDirs
also honors the CMAKE_INSTALL_PREFIX correctly. Users can
manipulate the install prefix by defining the builtin and standard
CMAKE_INSTALL_PREFIX variable during cmake configuration (i.e.
-DCMAKE_INSTALL_PREFIX=<prefix>).
Change-Id: I2090564acfd618345ca98940548654fa86baebee
- Add make install for shared and static library
- package public interface headers
- Add support for pkg-config via igdgmm.pc config file
Change-Id: I80f23dac0511b456de6d8e41827436be8587ee28
On x86 version, Due to C-mangling done by the compilier, macro definition used for GMM exported entry level function is modified to add _and@4
Change-Id: I83476775e02e74b584763c3257639456ddba7fe8
This variable should be set when multi-config generator is used.
Change-Id: I1ee19875bb8ab862bfef87bb662b20756b63959c
Signed-off-by: Artur Harasimiuk <artur.harasimiuk@intel.com>
Fix GetQpitchPlanar function to return Qpitch in rows and not in bytes (UMDs do not have to perform any additional calculations, GMM returns Qpitch that can be programmed directly)
Change-Id: Ice2e5baf1153a108807f3eae7be57d7cecd05bac
This change reduces possibility to accidently build gmmlib
incompatible with the underlying kernel. The following build options
are removed since they confuse end-users:
GMM_REQUIRE_MESA_MOCS
GMM_LIBDRM_SRC
The following build option was added:
GMM_DYNAMIC_MOCS_TABLE=TRUE|FALSE (default: FALSE)
By default, gmmlib will:
on Linux it will work on the upstream kernel mocs settings utilizing
static mocs table
on Windows it will generate dynamic mocs table depending on the incoming
usage requests (GMM_DYNAMIC_MOCS_TABLE forced to TRUE in the source code)
If user will configure build as follows:
mkdir build && cmake GMM_DYNAMIC_MOCS_TABLE=TRUE ..
gmmlib will generate dynamic mocs table depending on the incoming usage
requests. User responsibility is to program mocs table in the kernel mode
driver correspondigly (on Linux).
Change-Id: Iea38e54e40dc7db5a1d20d8a3f43b6d2f9f07b33
Setup a new option to avoid ULT test suite run after install in order to allow cross compilation.
Append -DRUN_TEST_SUITE=OFF to the CMake command line.
Change-Id: I4974ef0a5a2c40613cde7744f66531448f9b0277
Change to the Gen10 cache policy. This policy has been shown to lower bandwidth as it caches more 3D resources in LLC and L3 than what was previously set. This is desireable as it will lower power for 3D and some media workloads.
Change-Id: Id2fb365d85e91afc93e33314de773d23f9b7645f
During error handling case in ResInfoCreate API, GMM lib was resetting PreAllocatedResInfo flag which was set by clients. Added code to restore this to value provided by Client during ResInfo Create.
Change-Id: Ibc95893cac1b2968097197bad5dcb04149085755
- Add GMM lib DLL project in Cmake file.
- All code changes needed to make GMM lib DLL are under GMM_LIB_DLL macro.
- Add ProcessSingleton elements in DLL context.
- Establish a link between DLL singleton Data and Process Singleton data in ProcessContext in KMD for ProcessSingleton elements. This is needed when GMM lib exists in both static and DLL mode.
- Overloaded Create and Destroy GMM objects member fucntions of ClientContext to take memory Allocators and Deallocators from Clients. This is needed for Clients like VK.
Change-Id: Iab4e596723a0fa0eede262bdb26436ba8a7d5cc1
- These changes are for enabling unified GMM lib target. Unified GMM lib target will not have any clients specific build macros.
- Addition of GMM Old API Translation Layer for backward compatibilty for all GMM APIs across ALL UMD clients.
- Creation of Global Client Context handle only for backward compatible clients. This shall be replaced by client handle by clients moving to new API.
- Add new definitions for GMM Device Callbacks structure.
- Add new definitions for KMDaf related macros only for GMM to be used bu unified GMM lib.
- Makes ClientContext class member of Resinfo class
- GmmLib cmake change to add new igfxgmmumd unified static lib project
Change-Id: I913192e0879e565fb369c364fcba573a18b3fe13