Commit Graph

99 Commits

Author SHA1 Message Date
Jim Snow
4360aff03c Move runtime/helpers/aligned_memory.h to core/helpers
Signed-off-by: Jim Snow <jim.m.snow@intel.com>
Change-Id: I15de094c51d4eb18bfff4d17fd34e817b5525fda
2019-08-06 23:56:24 +02:00
Dunajski, Bartosz
38556cec29 Allow blocked command stream programming for commands without Kernel
Change-Id: I691a029bd5511c8f710ef1bff8cc5a9feca644f3
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
Related-To: NEO-3433
2019-07-24 16:01:34 +02:00
Dunajski, Bartosz
4dd3292922 TaskInformation cleanup
Change-Id: If723f477406ca13e40c77a9471de9b8e35beff1d
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
Related-To: NEO-3433
2019-07-23 12:04:20 +02:00
Dunajski, Bartosz
95c2dcd8b0 Improve obtaining LinearStream during enqueue call
- Move logic to enqueueHandler to cover all scenarios
- Create BlockedCommandsData not only for Kernel enqueue
- KernelOperation cleanup

Change-Id: Ie4a673cbbc986c685996a38ab296444d38e7bbd5
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2019-07-22 18:52:14 +02:00
Mrozek, Michal
af91147c5d Use internal ref counts to reference objects encapsulated by surface.
Change-Id: I4fa78637806b67c6dcc7bf1d2ef812c770a49583
Signed-off-by: Mrozek, Michal <michal.mrozek@intel.com>
2019-07-19 14:48:01 +02:00
Mrozek, Michal
b5cbbba234 Release mem objects after submission in blocked path.
Change-Id: Ie5951ec681c117161e40016887680489e1eaacb8
Signed-off-by: Mrozek, Michal <michal.mrozek@intel.com>
2019-07-19 09:12:18 +02:00
Dunajski, Bartosz
89d1878cd6 Rename engine member in CommandQueue
Change-Id: I01516616c164f19afbcd62d39a2a42d04ff768c9
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2019-07-15 17:53:01 +02:00
Mrozek, Michal
fe26b0b406 Move debug_manager_state_restore.h to core.
Change-Id: I3ef4a1aec40efa4bbc8346a5b517336c42c06519
Signed-off-by: Mrozek, Michal <michal.mrozek@intel.com>
2019-07-15 17:21:38 +02:00
Mrozek, Michal
d68f4e2591 Simplify peekIsSubmitted.
Change-Id: I7947afc01ee9cb3a35e35530bd7d8c6b13f4d277
Signed-off-by: Mrozek, Michal <michal.mrozek@intel.com>
2019-07-09 16:44:17 +02:00
Mrozek, Michal
6ffcd51847 Fix race in events scenarios.
- It could happen that 2 threads try to update the same event within tree
- First thread starts to submit command, it releases cmdToSubmit
- Second thread doesn't see the command and follows
- Second thread thinks that it submitted the command so it follows to
subsequent steps which are child events notification
- We end up with corrupted enqueue sequence as child may submit prior to
parent.
- With this change each submit step is synchronized basing on task count
- When second thread enters submit command without task count being set
it wait for first thread to properly set it.

Change-Id: Ic2ddaea17f9af8cab6781320edae2c268dd0b189
Signed-off-by: Mrozek, Michal <michal.mrozek@intel.com>
2019-07-09 14:45:07 +02:00
Mrozek, Michal
b349c4bb13 Fix race in isQueueBlocked.
- Sequence is as follows :
Enqueue returning event , blocked on user event.
clFinish.

There are 2 additional threads:
- one is calling updateExecutionStatus in a loop on returned
event
- one is calling setUserEventStatus on parent user event

In such case virtual event may be submitted but task count will
not be assigned.

Change-Id: Ia097bd59b276cc9213945c476cf289398b8f5934
Signed-off-by: Mrozek, Michal <michal.mrozek@intel.com>
2019-07-09 11:42:38 +02:00
Mrozek, Michal
64403ef630 User event code path improvements.
- is queue blocked to release virtual event when it is submitted
- do not wait on completion after ndr submit.

Change-Id: I63c54e6940f6241b32f0dbdd5880f849c46fd12e
Signed-off-by: Mrozek, Michal <michal.mrozek@intel.com>
2019-07-08 16:23:17 +02:00
Mrozek, Michal
1022ad4aac Release reference to mem_object after command submission.
Change-Id: I1d3899ee3320869dd245dc1af22bd9b0dbfce9cf
Signed-off-by: Mrozek, Michal <michal.mrozek@intel.com>
2019-07-05 11:39:24 +02:00
Piotr Maciejewski
d1d794c658 Metrics Library Performance Counters implementation.
Signed-off-by: Piotr Maciejewski <piotr.maciejewski@intel.com>
Change-Id: I0f00dca1892f4857baaebc75ba2208a4f33db1bf
2019-07-04 15:56:47 +02:00
Daria Hinz
42b87654eb Add preemption allocation for each of the Csr
Change-Id: Id14fbfbf6e9a6a85f035e75b4a20ca198c0996e5
Signed-off-by: Hinz <daria.hinz@intel.com>
2019-07-03 08:17:38 +02:00
Dunajski, Bartosz
27a0c5a566 Remove not used waitUntilGet parameter from takeOwnership method
Change-Id: Ic76264a87bbe9179f4aeb2ec3f97cdddd8465654
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2019-07-02 15:41:13 +02:00
Jaime Arteaga
b98b51b0d9 Move ptr.h to core folder
Change-Id: Icf0db7c767b2b1ea44fccc02b135f0f6c1f78c8f
Signed-off-by: Jaime Arteaga <jaime.a.arteaga.molina@intel.com>
2019-05-29 00:11:34 -07:00
Maciej Plewka
f2a8fc7ea9 Print_formatter refactor
Change-Id: Icb03697281b009c853d91a63d5d21ffcde545a8f
Signed-off-by: Maciej Plewka <maciej.plewka@intel.com>
2019-05-23 21:37:50 +02:00
Dunajski, Bartosz
bb80d327c7 Move HardwareInfo ownership to ExecutionEnvironment [1/n]
Change-Id: I5e5b4cc45947a8841282c7d431fb69d9c397a2d4
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2019-05-08 16:11:01 +02:00
Piotr Fusik
92584d8c64 Minor cleanup.
Change-Id: I0f345c4fbf49f6464dce7bafd8b8d59347ff2d77
Signed-off-by: Piotr Fusik <piotr.fusik@intel.com>
2019-04-26 14:34:58 +02:00
Piotr Fusik
603eee76e5 Use GPU pointers for HwPerfCounter.
Related-To: NEO-2872

Change-Id: Ia30f2ee0d96a3da05b8e5ecf55e9b7fb5a34ace7
Signed-off-by: Piotr Fusik <piotr.fusik@intel.com>
2019-04-18 16:28:48 +02:00
Zbigniew Zdanowicz
0c6823afd6 Add map allocation for images
Related-To: NEO-3097

Change-Id: I5bfd89fd597a8d55597ff7a2aa05b2abd278d5bd
Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2019-04-18 14:46:06 +02:00
Zbigniew Zdanowicz
e201725dd5 Add dedicated map allocation
Related-To: NEO-2917

Change-Id: Ieeca40f5faf29433a5c464d2c3ca3b8910695a9b
Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
2019-04-09 16:16:31 +02:00
Maciej Plewka
9e52684f5b Change namespace from OCLRT to NEO
Change-Id: If965c79d70392db26597aea4c2f3b7ae2820fe96
Signed-off-by: Maciej Plewka <maciej.plewka@intel.com>
2019-03-26 15:48:19 +01:00
Stefanowski, Adam
16aee8cc46 [2/n] Move Hardware Info to Execution Environment
- remove hwInfo from the csr functions where it was passed as a parameter,
now csr functions have access to hwInfo by Execution Environment

Change-Id: I756ae63d9728c9c963571147bab97f9e1c15797b
Signed-off-by: Adam Stefanowski <adam.stefanowski@intel.com>
2019-03-22 10:08:26 +01:00
Piotr Fusik
ec72787b98 Remove MemoryManager::allocateGraphicsMemoryForHostPtr.
Change-Id: I629f2299a183fc135135dbaff89216b966554a95
Signed-off-by: Piotr Fusik <piotr.fusik@intel.com>
2019-03-12 15:51:32 +01:00
Stefanowski, Adam
341fcfc091 [1/n] Move Hardware Info to Execution Environment
- remove gmm_environment_fixture
- remove hwInfo parameter from ExecutionEnvironment methods

Change-Id: Ieb0f9b5b89191fbbaf7676685c77644d42d69c26
Signed-off-by: Adam Stefanowski <adam.stefanowski@intel.com>
2019-03-12 08:39:26 +01:00
Filip Hazubski
8b57d28116 clang-format: enable sorting includes
Include files are now grouped and sorted in following order:
1. Header file of the class the current file implements
2. Project files
3. Third party files
4. Standard library

Change-Id: If31af05652184169f7fee1d7ad08f1b2ed602cf0
Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
2019-02-27 11:50:07 +01:00
Hoppe, Mateusz
432b8f20a7 Allow cpu copy with debug keys only when ready waitlist events
Change-Id: If9293787c76b8248a84e25d03cbf9a9b5aaf7cca
2019-02-22 17:39:57 +01:00
Maciej Dziuban
90e970cee6 Create GraphicsAllocation during dispatch when queue is blocked
Change-Id: I8a6f9e14ff57e7ed2920260af291317805f4df13
Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
2019-02-21 15:28:17 +01:00
Kamil Diedrich
76276d4c23 Add unit test for events
Change-Id: I13d74626a244d234a5bbaff369ed09fb59d6e33f
2019-02-14 12:42:44 +01:00
Kamil Diedrich
a7b46ccdbd Add RAII for cl_objects
- add removeVirtualEvent to cmdQueue fixture
- add const keyword in event functions

Change-Id: I11354eb8fceb15ae2c58bddd327863a15aab6393
2019-02-12 11:19:35 +01:00
Dunajski, Bartosz
dc181defba Use GpuAddress for TimestampPacket programming
Change-Id: I1303605c33e2e0267a1716e12a0bfcb341fcfbd7
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2019-02-11 15:31:17 +01:00
Kamil Diedrich
e1eab521e7 use release for cl-objects instead of delete
- fix for data race in events
- modification of the addition child event

Change-Id: I6ea3a413f13f13a91d37d20d8b9fad37d0ffafb9
2019-02-05 14:09:32 +01:00
Jobczyk, Lukasz
fb0424bc5a Distinction between calcProfilingData functions
Change-Id: I6f9e646d2442870e9c0345996970409b953b4d42
Signed-off-by: Jobczyk, Lukasz <lukasz.jobczyk@intel.com>
2019-01-31 15:19:17 +01:00
Jobczyk, Lukasz
c1cb1f9be6 Add profiling calculation from timestamp packets
Change-Id: Ie7f8c703ca5ea5eb1f5207871ef94cbc7ece18b7
Signed-off-by: Jobczyk, Lukasz <lukasz.jobczyk@intel.com>
2019-01-31 13:32:52 +01:00
Dunajski, Bartosz
8ae7de7b0e Create HardwareContext only when osContext is available
Change-Id: I8bcf2cb20f0e1e6b9da98b477f5be206407a7a57
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2019-01-13 15:12:07 +01:00
Mateusz Jablonski
c9e667d601 Simplify Memory Manager API [4/4]
- fill AllocationData in one place
- remove allocateGraphicsMemoryForSVM function
- refactor SVM manager tests

Change-Id: I6f4ecd70503da8031cced50ea98a54162fd8e5d3
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2018-12-20 09:01:33 +01:00
Piotr Fusik
e8a71132a4 Remove unnecessary casts.
Change-Id: I2d293d065c7efa006efe7d60a625cba0c6116c86
2018-12-18 13:42:14 +01:00
Mateusz Jablonski
8ec072d39c Simplify Memory Manager API [3/4]
- remove method allocateGraphicsMemory(size_t size)
- pass allocation type in allocation properties
- set allocation type in allocateGraphicsMemoryInPreferredPool

Change-Id: Ia9296d0ab2f711b7d78aff615cb56b3a246b60ec
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2018-12-17 10:42:16 +01:00
Dunajski, Bartosz
a35e3b792d Return valid TaskLevel for UserEvent and GlSyncEvent
Change-Id: Ic2bcb64e92e07b94c1af47b109af1274bf6c8c3e
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2018-12-06 10:09:46 +01:00
Dunajski, Bartosz
b728526c4e Allow Device creating multiple CSRs [8/n]
Use OsContextId instead of DeviceIndex for residency

Change-Id: Ib2367b32b5b3e320252d8254f1042f1c3d497068
2018-12-04 15:36:59 +01:00
Dunajski, Bartosz
1f7448425d Allow Device creating multiple CSRs [7/n]
Create and initialize all supported Engines

Change-Id: If0adf1a06b5005ef2698cebc6f1aaa6eacf562ec
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2018-11-30 15:48:44 +01:00
Dunajski, Bartosz
0131e66a70 Allow Device creating multiple CSRs [6/n]
- Introduce default Engine query
- Improve Deferred Deleter usage
- Remove Tag Allocation from Device

Change-Id: Iaa88d8dc0166325acf9a157dcd2217ea408ee285
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2018-11-29 16:20:13 +01:00
Dunajski, Bartosz
3ad33bf1b8 Allow Device creating multiple CSRs [3/n]
Add CSR from Device to CommandQueue

Change-Id: Iaccf3c73d25e357242837677777d0513e81f520e
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2018-11-23 10:51:34 +01:00
Dunajski, Bartosz
d6870a896b Reduce tag pool size to 1 for AUBs
Change-Id: I3a3513250b10e899795e149bff2739193a725f84
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2018-11-20 11:42:32 +01:00
Mateusz Jablonski
66492a53a4 Change type of residency task count to uint32_t
Move definitions of objectNotUsed and objectNotResident to GraphicsAllocation

Change-Id: I2aec604a865cc6c975e9d1121028cbdd35c0b18a
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2018-11-16 16:04:48 +01:00
Mrozek, Michal
4341ad0323 Add PowerSaving debug variable.
- It allows to easily turn ON the power saving mode for the driver.
- In that mode, whenever GPU is not ready it will put current thread to sleep,
thread is resumed when GPU completes.
- PowerSaving mode reduces CPU utilization on blocking calls, while increasing
completion latencies.

Change-Id: I3de83713687952ac31a1ec8c397f48aa4212781d
2018-11-15 11:14:08 +01:00
Mateusz Jablonski
815ae851b7 Graphics Allocation: store task count per context id
Move definition of allocations list method to internal_allocation_storage.cpp

Change-Id: I4c6038df8fd1b9335e8a74edbab33b78f9293d8f
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2018-11-06 12:43:47 +01:00
Mrozek, Michal
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