Commit Graph

321 Commits

Author SHA1 Message Date
dvrogozh a08160a9e6 Do not wipe out compiler flags given by user
PR #33
Fixes: #31

Change-Id: I3224dc9e625a0eeaf8c957059a2ac747045564a0
Signed-off-by: drprajap <dimpalben.r.prajapati@intel.com>
2018-09-13 16:06:59 -07:00
shankarp 3bbe741763 Fix Exception issue for shared resources
Change-Id: I65b4f1b0ae29e736ba3669b097feff2ae5516303
Signed-off-by: drprajap <dimpalben.r.prajapati@intel.com>
2018-09-10 14:04:06 -07:00
drprajap fe0fc5afe8 Making GmmGenXCachePolicy dtors virtual.
Change-Id: I64a8639d9fa9e66a4d6a18375526a6c8cc3b99f4
2018-09-06 01:20:54 -07:00
Shaik, Johnbasha 99ff764181 Use exported APIs from ClientContext
[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>
2018-08-24 11:24:38 -07:00
Shaik, Johnbasha 173b246f96 Changes to address inlining of exported APIs
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>
2018-08-14 12:03:21 -07:00
drprajap 4f787cc7c4 Add GMM_LIB_DLL to igdgmm.pc
Change-Id: I56dc0eb72e87d0a8283c19df09370475d4e47891
Signed-off-by: drprajap <dimpalben.r.prajapati@intel.com>
2018-08-10 10:14:38 -07:00
drprajap d3e1b053f6 add Libs section in igdgmm.pc
Fixes Github Issue#26 - https://github.com/intel/gmmlib/issues/26

Change-Id: Iba263064dcbaa1c1711a32f86edaa3c564d526a1
Signed-off-by: drprajap <dimpalben.r.prajapati@intel.com>
2018-08-08 16:33:23 -07:00
johnbash af2add0120 Failure to build on alpine Linux distributions.
Issue#21

Change-Id: I566289dd99b549c22ce42cd5d1b0eeefb10fe4d4
2018-07-27 11:04:40 -07:00
drprajap 941eda5eb4 VDBox change for ICL
Change-Id: I929e116d46f12ef9aa1854dcde60aa73bd498c15
Signed-off-by: drprajap <dimpalben.r.prajapati@intel.com>
2018-07-17 11:14:24 -07:00
lpriyank 1a4cf50767 FastclearRect downscaling API
Change-Id: I22ce7f7cea28f2a09af4bcf2681e0398439163e6
2018-07-03 10:06:31 -07:00
drprajap 41dbe28e68 Append .deb in package filename
Change-Id: Icf531666204ff50abf8b626c97d22f09ea07f397
Signed-off-by: drprajap <dimpalben.r.prajapati@intel.com>
2018-06-28 16:31:35 -07:00
drprajap 375036ac35 Add DLL name and 64bit OS config check
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>
2018-06-28 12:30:36 -08:00
shankarp b20e484a5b Add new member functions in GmmClientContext
These are equivalent C-wrappers which shall be deprecated.

Change-Id: Ic856c60348aec2adcd85f730cb538adc04d23ec3
2018-06-26 17:22:58 -07:00
drprajap 481063acbb Add Gen11 support
Change-Id: I9ab7c98cb98d8fba514b6559c59b158f89957367
Signed-off-by: drprajap <dimpalben.r.prajapati@intel.com>
2018-06-26 16:39:31 -07:00
Artur Harasimiuk a40d1b3cf6 improve gmmlib package naming
- 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>
2018-06-27 00:33:47 +02:00
U. Artie Eoff 3e2ec40f02 Use GNUInstallDirs for install targets
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
2018-06-26 14:09:08 -07:00
drprajap a5f2391315 GmmLib shared/static library packaging
- 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
2018-06-22 13:12:37 -08:00
drprajap 72c92c0dfa Remove ARCH and detect architecture from compiler
Issue#17

Change-Id: I86331d399157015dd746dad5c9d66716629613cd
2018-06-21 14:31:14 -08:00
drprajap e6c8949164 change X64 macro for dll
Change-Id: I2d053c29c838021ce88ab46b22be4c76f2c7c3d1
2018-06-18 11:34:13 -07:00
shankarp 5ff84b923e Move the definition of GMM DLL name macro
Moving the definition to a separate header file.

Change-Id: If4995c6f6e188bfe1cb198e47cf94495f11efd73
2018-06-14 12:01:14 -07:00
shankarp d6bac5af0d Handle name mangling on x86 version
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
2018-06-06 09:11:36 -08:00
shankarp 3f3138424b Add definition for GMM_INLINE_VIRTUAL macro.
This is to be used for GMM DLL in Release-Internal and Release modes.

Change-Id: Iea30c0e72748717365259a9a6b39e6ef3280cd4e
2018-06-04 10:39:19 -08:00
drprajap 40b45bd610 Change recommended output dir in build instruction
Issue #16

Change-Id: I167e9b8ff1953a3163484bf37e4c67824773363b
2018-05-22 12:01:27 -07:00
Xu Guangxin 64a8ba1c5f Fix truncation - Issue #13
Change-Id: I61a07202ed97eae22d18e2e851c1911c423a0d29
2018-05-22 11:41:22 -07:00
Jacalz f4124348d3 Fix a little spelling mistake #20
Change-Id: I46b05b050136e01429f47b4eecfbdd15b6b35543
2018-05-22 10:46:06 -07:00
Artur Harasimiuk fda20dcd15 set CMAKE_CONFIGURATION_TYPES only when available
This variable should be set when multi-config generator is used.

Change-Id: I1ee19875bb8ab862bfef87bb662b20756b63959c
Signed-off-by: Artur Harasimiuk <artur.harasimiuk@intel.com>
2018-05-22 10:26:35 -07:00
vipuldas a6c821ef69 Remove YUVShaderFriendlyLayout, update GetQpitchPlanar to return QPitch in rows
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
2018-05-21 14:59:11 -07:00
drprajap d0a4870527 Change ReadMe to reflect BXT/APL support
Change-Id: I705ced266fbc4ee628f4e727fc55b7b44faa34a2
2018-05-18 14:14:13 -07:00
shankarp 247673f8e4 Add a new member function in GmmClientContext class to return GpuVaRangeLimit needed for OCL client.
Change-Id: I75d07d3b009d409fca9955b9ff264a922989e83e
2018-05-14 00:01:23 -07:00
dvrogozh a2fd8568ea changes mocs table build config
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
2018-05-13 23:09:16 -07:00
DavidMarec f5ded73956 Add option to discard ULT test suite execution
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
2018-05-10 14:24:57 -08:00
vipuldas a5015343bc Remove GMM_ASSERT regarding ExistingSysMem
Change-Id: I3747d727579fee198f0592d711222bef93a9a82d
2018-04-30 13:02:22 -07:00
drprajap 90bcbc6dab [GMM UMD Performance] Gen10 3D Cache Policy updates
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
2018-04-30 11:39:27 -08:00
drprajap b7ce36f5ab Add KBL DeviceId
Change-Id: I1100c9e20107e77109d9b8d000bf7e53e171939d
2018-04-05 13:35:41 -07:00
vipuldas 944b2528fa Add missing compression formats
Change-Id: I5c5d02ac964f8a0918cc084aef0614c4e4e365a6
2018-04-05 13:29:06 -07:00
lpriyank 1ec7feaa55 Add Linear Buffer compression
Change-Id: Ib15a2bf0774bb03d3af098e4ba2cd92e1689c81d
2018-04-05 11:38:30 -07:00
lpriyank 932fb0addd Generic texture calculation for HiZ
Change-Id: I94ba01620036bb6b3b34c8ce5b65d7e7572630a6
2018-04-05 09:32:39 -08:00
lpriyank 2eea1a175a Minor ULT fix
Change-Id: I4246afc532d4d030be55bacc23f6d659c9482345
2018-03-23 09:36:57 -08:00
shankarp ba553e4ce7 Restore PreAllocatedResInfo flag during ResInfoCreate API
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
2018-03-21 10:38:35 -08:00
shankarp b32d2124aa Add GetLogicalTileShape to ClientContext class
Add typedef for GMM DLL exported fucntion

Change-Id: I1de0fdb4234c0a5974a41a49ea938f4e943ab947
2018-03-15 15:05:08 -07:00
vipuldas 953fe96ce2 Remove OS unaware S3D
Change-Id: I1c0d52185b1837c0d3945820cde2d9eb019ddaa2
2018-03-15 10:08:49 -07:00
vipuldas edb82f49e5 Fix LCU alignment for surfaces
Change-Id: I185776db51a8b0a3f4d301fc3c79e206a08afb1b
2018-03-14 14:20:15 -08:00
shankarp aaaf72ffd0 GmmLib only DLL integration
- 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
2018-03-14 13:13:34 -07:00
drprajap 1f6d6fac52 cleanup stale code - part 2
Change-Id: If1655af31f49fe6f536159bcfc6cdcdf2b60ab86
2018-03-14 10:52:25 -08:00
drprajap 31bfdee666 cleanup stale code
Change-Id: I0eef6f76af8085b7ab7f33e40135c251cdfc28e7
2018-03-14 09:51:58 -08:00
drprjap 8a0b89df18 Fixing SetTargetConfig in cmake to enable all builds
Change-Id: I9449bc3a785bfb968ae5cfa178b0b71480fa067d
2018-03-12 14:11:58 -07:00
pwilma b8d74ac3fc Rename LIBDRM_SRC to GMM_LIBDRM_SRC when MESA_MOCS is used
Change-Id: I1c58070c6a19c8080d6ff2a65b7fcbf69d609f02
2018-02-23 12:34:28 -08:00
lpriyank ef89a06770 Fix double allocation of depth, with HiZ disabled
Change-Id: I57d6c8aabfa7bcf33565ea4076a1666f44c9ca59
2018-02-22 13:44:59 -08:00
shankarp 4155f0604e Enable unified gmmlib target
- 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
2018-02-21 15:30:15 -08:00
drprajap ccbea3e0be remove unsupported linker argument for clang
Change-Id: I6779f0abdf4bb13f34ad4b5518695a380d19a802
2018-02-20 12:28:45 -08:00