Commit Graph

284 Commits

Author SHA1 Message Date
3e800d55e6 Add support for dumping cl_cache to specified directory
Change-Id: I782ff17d0d4b17d3d26db543eb7ae222f75ff8a1
2018-11-29 13:59:26 +01:00
1cd59e927a Store residency status for each osContext separately
Change-Id: I2f17f68dcef6db7b596a69579a435b7ccd24e44b
Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
2018-11-29 08:08:25 +01:00
b0de2a11d2 Set OsContext as reference
Change-Id: I3b682fabde9c2ddb2c33a95aef77bf6ce400a21f
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2018-11-27 15:32:14 +01:00
2d77b86e70 Allow Device creating multiple CSRs [5/n]
- Move Engine type to OsContext
- Move OsContext to CSR
- Improve EngineMapper logic
- CompletionStamp cleanup

Change-Id: I935cb7169c8c48cd09837e20e3da06f6dd3437b9
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2018-11-27 14:25:04 +01:00
352450adaa Pass number of os contexts to Graphics Allocation constructor
Mark unshareable allocations

Change-Id: Ie745dc639d8c6b01e2275d29ee1fb4c6343df2bc
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2018-11-21 17:38:02 +01:00
85b60dff0f Linux GPU address allocator for devices with reduced address space
Code implementation of GPU address allocator for devices with reduced
address space.

Change-Id: Ieb0412c5930fdd71f90741055cf89c0338b01133
Signed-off-by: Kai Chen <kai.chen@intel.com>
2018-11-19 10:20:25 +01:00
0e0a280803 Create structure UsageInfo for task count and residency task count
Change-Id: I0899c88d9e567a09ba46461ae69cf6c80f713e67
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2018-11-15 14:07:05 +01:00
728932ed44 Pass Drm object to OsContext on Linux
Change-Id: I341925eef9bc892f5c321c668736bb6a3aff38f5
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2018-11-15 12:04:03 +01:00
3c0a6bd24d Remove residency control from Buffer Object.
- Residency is being controlled by Graphics Allocation.
- Duplicates are now eliminated only for shared resources.

Change-Id: Ib51e2739a07728ae0b94abf6cce2e9981b017111
2018-11-14 08:32:04 +01:00
c202c95634 Stop creating osInterface in WddmCSR and DrmCSR constructors
Change-Id: Ic8ca21824882dfae5df3fe05c7ec1ff96311f286
2018-10-31 15:01:50 +01:00
1822fb0747 Control enabling of local memory based on OS and HW Capabilities part 2
- add EnableLocalMemory debug variable
- separate OSInterface::osEnableLocalMemory for dll and unit tests

Change-Id: I78a1f60364eece28b30ce3e91418e7d72ba3e0d9
2018-10-31 13:59:42 +01:00
7ece16ee7a Graphics Allocation cleanup.
- remove one constructor
- start using mock graphics allocation in tests

Change-Id: Idb8f4a35dbc2cae8d6bf667bab5542d8e91d6e0d
2018-10-31 11:54:24 +01:00
7b1d19eaec Moved header with engine node definitions
Change-Id: Iaa78bb0584589e354b1bb469b729844121decb8f
2018-10-27 14:51:02 -07:00
129380c1a6 Cleanup host ptr manager
Change-Id: I0fc9df41a08255eef8072666c1c5c16806e0f7cf
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2018-10-26 08:26:38 +02:00
8ead8f727f Control enabling of local memory based on OS and HW Capabilities
Change-Id: Ia26c856aeef27fe638b7a6e895cc289859f3c579
2018-10-25 16:36:47 +02:00
7ec8e6a3f2 Fix naming convention in host ptr defines
Change-Id: I9f0d5790031b5067b92159b078768e560990b9c6
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2018-10-22 16:29:04 +02:00
36c8c6fd97 Correct casting GraphicsAllocation to DrmAllocation
Change-Id: I29d2e3989bc409e014888505a96119bdd7c322f5
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2018-10-19 14:49:38 +02:00
4f028d13a1 Command stream receiver: use memory manager from execution environment
Change-Id: I236218a73bd7dac6e5744e3596f146b77b5ca1c8
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2018-10-16 12:14:55 +02:00
b602cd2bb8 Pass execution environment to memory manager
Change-Id: If43cf9d1353b4cbc02ea269fb9105c01cc4e0876
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2018-10-03 22:12:26 +02:00
7a3515e882 Remove filename duplication
Change-Id: I570f8904ba2ca7b9f8509af33a8a29dcec424e3b
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2018-09-27 18:45:28 +02:00
f48b90ffee Change CommandStreamReceiver::flush() argument to a reference
Change-Id: Ic933a297d4c4e243138d0d62323ba82a8b91240f
Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
2018-09-25 17:28:44 +02:00
40146291ad Update copyright headers
Updating files modified in 2018 only. Older files remain with old style
copyright header

Change-Id: Ic99f2e190ad74b4b7f2bd79dd7b9fa5fbe36ec92
Signed-off-by: Artur Harasimiuk <artur.harasimiuk@intel.com>
2018-09-20 18:02:35 +02:00
78f828fcd1 Make residency in graphics allocation OsContext dependent.
- Graphics Allocation now holds residency control per OsContext.

Change-Id: Ie0a0d3aa9fdaf542fdd42dee3aba236a5af635c7
2018-09-20 16:44:04 +02:00
ac1d2b9901 Change processResidency argument to a reference
Change-Id: Ie313a8cc4e479a314bcf170917397c13fbb70d14
Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
2018-09-14 13:36:20 +02:00
7aa70248e8 Get rid of processResidency() calls with null ResidencyContainer 4/n
Change-Id: I318e0b2846a72d9cba4921ba62e0ea491cc46da9
Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
2018-09-13 15:12:20 +02:00
fafde2ec15 Delegate all MemoryManager::getResidencyAllocations() calls through CSR
Change-Id: I9cfbfd86d39b5341598ff2bd8883e13605c58b72
Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
2018-09-13 14:56:06 +02:00
581805cc88 Move OsContext id setting to constructor.
Change-Id: I1b809befc02536257800e3667307b8deabd5c95d
2018-09-12 09:50:26 +02:00
cfa8035836 Add localMemorySupported member to MemoryManager
- extend constructor to take new flag
- extend ExecutionEnvironment createMemoryManager with new flag
- only OsAgnosticMemoryManager changes in this step

Change-Id: I1dae4fd79fe28fd87e42b237600dc216c94b597e
2018-09-07 12:04:21 +02:00
8a005434f4 [1/n] Initialize WDDM only once
- remove Wddm parameter from WddmCommandStreamReceiver
and pass it via ExecutionEnvironment
- remove drm parameter from DrmCommandStreamReceiver
and pass it via ExecutionEnvironment
- remove void parametr from TbxCommandStreamReceiverHw

Change-Id: Ib76332f1341339426e86e0ce2b6ce96919219881
2018-09-06 14:14:29 +02:00
4a12deea2b Add support for reduced GPU address space
Change-Id: I9ebbc8c51039bb533b44c6b80e717e1489a20a43
Signed-off-by: Pawel Wilma <pawel.wilma@intel.com>
2018-09-03 13:51:36 +02:00
f6743ced2a Remove reuseBO from createGraphicsAllocationFromSharedHandle
Change-Id: Ia7af1cdd8e3986b8af7c542032d2767303865382
2018-09-03 13:38:19 +02:00
92bfd2e3d2 Move OsContext to Device
Change-Id: I030b65372fbdc075423d22720e9da34ac65b8e68
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2018-09-03 10:42:26 +02:00
31d3cc847c Rename setupGtSystemInfo to setupHardwareInfo
- adding new parameter for FeatureTable setup

Change-Id: I1f1c66894555003612e08127801c6b096b0a2400
2018-08-29 16:24:16 +02:00
ad65477868 Fix crash caused by missing residency data.
Change-Id: Ib615e3b13382950ec8ecc128bea0032a126666e0
2018-08-29 12:46:50 +02:00
4b29b30db1 Add OsContext class in shared code
Change-Id: If5aea2126abe1b892068af9ca53e7f448e5b85a6
2018-08-27 09:20:09 +02:00
5be98e2e0f Fix VA sharing scenario
- make createGraphicsAllocationFromSharedHandle and
freeGraphicsMemory more threadsafe - there was race condition
where one thread called PRIME_FD_TO_HANDLE ioctl when the other just
closed the last handle with GEM_CLOSE ioctl. This led to situation
where newly acquired handle from PRIME_FD_TO_HANDLE was already invalid
and used in exec.

- adding mutex for the time of accessing shared handles container
 and ioctls (GEM_CLOSE and PRIME_FD_TO_HANDLE) resolves racing problem

Change-Id: I8417a036a1429be8f1ba97e63ebdda2707960564
2018-08-14 15:00:16 +02:00
8598168355 Remove programCount from device
Change-Id: I4edfabadd73166a27db73a120fc1380de52a33a5
2018-08-13 13:45:55 +02:00
9632d18071 Use make unique to construct an object.
Change-Id: I4fd944869238c0a4c38676160cb752d523dc07a1
2018-08-10 18:06:49 +02:00
ae9134233d OsInterface cleanup.
- OsInterface is now a part of execution environment
- it is created when getDevice is being called
- move ownership of wddm from Wddm Memory manager to OSInterface
- reuse osInterface on Linux in Command Stream Receiver
- currently OsInterface is not reused upon command stream receiver creation
on Windows this will change in further commits.
- make enumAdapters non static function

Change-Id: I10f36c01e6729f48653e3b5c11cbc32e811ce754
2018-08-10 14:25:53 +02:00
285af96dc2 getCpuGpuTime to return false when unavailable
This commit addresses crash issue in AUB standalone mode
when queue profiling is enabled on Linux platform.

Change-Id: Ie2d02093d3628efac3a8925890f22afd6a49469d
2018-08-09 10:10:47 +02:00
1599ea800e Pass execution environment to command stream receiver.
Change-Id: I598f67f8b005b5ce8249b638e080657eb6dc3547
2018-08-08 17:10:39 +02:00
d17879d412 Pass ExecutionEnvironment to get devices.
- this would allow for further re-use of objects allocated here.

Change-Id: I73b62ae3991ebd786dea3c085e1391194b8de6ba
2018-08-07 15:17:06 +02:00
89cf7532ea Make all gmm helper members non-static
Change-Id: Idb399aa275d66905040b6317d3888c94ffb98c55
2018-08-03 08:25:44 +02:00
e1eaf3ded0 Fix bug in VA sharing multithreaded scenario
- createGraphicsAllocationFromSharedHandle was not threadsafe,
instead of reusing BufferObject for a single handle when
multiple threads were creating memory objects from a single VASurface,
new BO could be created and placed in container with BOs for reuse.
This was leading to errors in ioctl calls.

- add lock for following set of operations:
 1. find BufferObject with a given handle in container
 2. create shared BO when not found
 3. add shared BO to container
 prevents creating multiple BOs for a single handle

- replace recursive mutex with regular mutex as mutex shouldn't
be locked recursively

Change-Id: I0937e2abf3bf1c672c6d77422d46e441f7216a68
2018-08-02 12:55:05 +02:00
4441387969 Refactor allocateGraphicsMemoryInPreferredPool
- extend AllocationType to code necessary flags
- remove redundant args
- refactor Buffer::create()

Change-Id: Ic4b2e0931fad8198ad1cf4f79de210d815048ccf
2018-07-31 08:05:55 +02:00
6618a35126 Remove static gmmlib support on Windows
Change-Id: I9e52f11b196ef9364b710766d9dd302e4dc0cc64
2018-07-24 10:02:03 +02:00
512978768e Pass renderCompressed information to GMM for 64kb allocations
Change-Id: I56302055c028e919bceeb3333557cab7451e1d09
2018-07-23 11:28:43 +02:00
8537c7f42f Use types of gmm dll functions in gmm interfaces
Change-Id: I91bd9563abbcde32a0c88066a2f6747c1d5abc81
2018-07-23 10:07:27 +02:00
8ed9991910 Remove not used function, unify gmm interface filenames
Change-Id: I017697ec4076ddd47f2039f71805a895d687c8a9
2018-07-23 09:09:47 +02:00
f125c8ff45 Add allocateGraphicsMemoryInDevicePool
- do not always expect failures in tests with failure injections
there is retry mechanism for some cases

Change-Id: If7589d2dacc41216d2f3b08f861209bbab179615
2018-07-20 13:00:00 +02:00