Commit Graph

54 Commits

Author SHA1 Message Date
Raiyan Latif
ca74489172 Move string.h to core helpers
Change-Id: Ibaaab077ef2867b5e0db3bd215c261de9294063f
Signed-off-by: Raiyan Latif <raiyan.latif@intel.com>
2019-07-19 07:21:00 +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
a38e9da034 Optimize marker call in blocked scenarios.
- Do not emit batch buffer
- obtain completion stamp directly from csr

Change-Id: I7ff58f2f019ee8158665f6fb93682ce5aae17bd6
Signed-off-by: Mrozek, Michal <michal.mrozek@intel.com>
2019-07-10 11:01:49 +02:00
Mrozek, Michal
7f7f1b8ac9 Optimize waiting scheme in user events scenarios.
- do not wait on map/unmap if zero copy resource.
- do not wait in marker commands at all.

Change-Id: I74cdd8320d13602bf662eed412ed2fcad1504989
Signed-off-by: Mrozek, Michal <michal.mrozek@intel.com>
2019-07-08 17:40:36 +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
Maciej Dziuban
68311588e6 Delete CommandQueue argument from dispatchScheduler
Change-Id: Icbda4d6887d7f0001e3081aef1fa69edc1169782
Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
2019-04-01 11:13:37 +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
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
Maciej Dziuban
0cf71414e2 Pass command stream to dispatch scheduler
instead of taking it from CommandQueue

Change-Id: I8e43c3b7ed5cb46f79edf3290a84fc6ad41f3b57
Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
2019-02-25 14:35:19 +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
Pawel Wilma
8272b3f3de Add missing numGrfRequired in blocked kernel DispatchFlags
Change-Id: Ic1ddd532d8420c9a797a561cc5cb8ee74831eeaa
2019-02-16 11:37:48 +01:00
Zdanowicz, Zbigniew
51d34da7ec Add multiEngineQueue field to DispatchFlags and modify interfaces
Change-Id: Iaa4754a22e9b88201aed7df01c7d6e5fd06c84a9
2019-02-14 17:12:15 +01:00
Venevtsev, Igor
66e3f3c16c Remove OCL Events concept from command stream receiver
Change-Id: I4d5a97b41efe601c92c2f3f33e9e24bb7d4fa3d2
2019-02-08 15:02:40 +01:00
Kamil Diedrich
371eef3895 Lock csr instead of device
- replace device lock to csr lock
- add missing lock CSR in event

Change-Id: I869e46232c919a80da619c44c08e9cd78188afac
2019-02-08 12:33:37 +01:00
Stefanowski, Adam
1001f76085 Add logic for Events in multi-thread scenario
- inc refCount when enqueue is blocked and dec after flushing

Change-Id: I9e8f8d226897124a7e51f2473939d53868bef7a2
2019-01-14 19:45:26 +01:00
Dunajski, Bartosz
23b7b9a8a8 Make local copy of EventsWaitlist for CommandComputeKernel
Change-Id: Ibbdfc6732fc254e73407605ebb26f88e5552c0e8
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2019-01-11 15:05:42 +01:00
Piotr Fusik
87bb6afa56 Move stamps allocators from memory manager to CSR.
Change-Id: Ib399e462cdddad89fcc470df4c4f0f5e4591a6b2
2018-11-27 14:52:06 +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
Piotr Fusik
76efeae9d8 Pass more information to programPipelineSelect.
Change-Id: Iaabe60742269b721f8defe71306dd6e87d60d546
2018-11-15 11:45:45 +01:00
Mateusz Jablonski
d5c9816428 Remove store allocation methods from memory manager
Move setGPUAddress method to WddmAllocation

Change-Id: I91d877c3791e9eff69276e4258e3ce9c3111ca45
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2018-10-26 10:53:43 +02:00
Dunajski, Bartosz
6d610983f1 Deferred Pipe Control programming and CSR flush on Barrier request
Change-Id: Iabae0f9159bb455518cedf7da068c7d3da72b840
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2018-10-17 09:31:34 +02:00
Dunajski, Bartosz
66427f60c6 Handle TimestampPackets for non-kernel enqueues
Change-Id: I52ec4f43b10bf6e2a10b2455d32a90a606645d29
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2018-10-10 04:21:30 +02:00
Dunajski, Bartosz
73b2e947a5 Multiple TimestampPackets handling
Change-Id: Ia5936c3d0a34b892aa4444026a5aebc681f126c2
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2018-10-05 01:54:35 +02:00
Dunajski, Bartosz
a52bcd830f Make TimestampPacket from previous enqueue resident
Change-Id: I4534b80cc6019b3c5ff210ca686b17b299390028
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2018-09-20 22:34:28 +02:00
Dunajski, Bartosz
e06b370697 Pass eventWaitList to blocked command for semaphore programming
Change-Id: I8b56be03a7b89283f5368cf42d6788d70ebecdc7
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2018-09-20 19:35:58 +02:00
Artur Harasimiuk
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
Dunajski, Bartosz
570c0843ef Handle TimestampPacketNode residency
Change-Id: I1769d67426ca704b600931b58d3f505bef0e893d
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
2018-08-30 11:53:56 +02:00
Maciej Dziuban
b91c14f70e Delete Device::getBuiltIns()
Change-Id: I9d1968dfb2ba4a56020fd17152119add726106e1
Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
2018-08-22 16:54:53 +02:00
Maciej Dziuban
e0e48203d2 Move BuiltIns to ExecutionEnvironment
Change-Id: Ib2a1b82cc7858c898bb32820aad106a01d1325ad
Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
2018-08-21 23:15:47 +02:00
Mrozek, Michal
d80dbb1ae0 Do not take ownership on device.
- Command Stream Receiver should be used instead for locking.
- Remove not needed synchronization in clSetUserEventStatus

Change-Id: I17050dc70cb0be03b2003043a9666ba8df1a83c9
2018-08-07 09:29:50 +02:00
Mateusz Jablonski
9ae4f390d1 Remove command queue, completion stamp and device from mem obj
Remove setCompletionStamp function from Surface

Change-Id: I25f3040a91892495e55cb4924f1538276de6264e
2018-08-01 16:17:13 +02:00
Mrozek, Michal
f60847b64e Pass device to flushTask.
- do not obtain it from memory manager

Change-Id: Icc7c03dc925c69ec5932c5812151ac28dc34d20d
2018-08-01 14:11:06 +02:00
hjnapiat
eedde057ea Minor refactoring of CommandComputeKernel class
- class cannot operate without kernel object
- improved ULTs

Change-Id: I4d1a6c3685f3908ce07154605aea649cae349d27
2018-05-14 12:26:46 +02:00
hjnapiat
562ededffe Fix setting mediaSamplerRequired dispatch flag
Change-Id: Ie5d1100c34183ca970c99a5f46ce7866a7108ebc
2018-05-11 09:58:05 +02:00
Artur Harasimiuk
75d497a9a9 separate BuiltinDispatchInfoBuilder from built_ins.h
We don't need BuiltinDispatchInfoBuilder in every place where built ins
are used. specifically in .cpp files generated from kernel binary.

Change-Id: Ie739951cdc93873993f78ad14cee656122af51fd
Signed-off-by: Artur Harasimiuk <artur.harasimiuk@intel.com>
2018-04-19 12:32:13 +02:00
Mrozek, Michal
87b8b6e261 [28/n] Internal 4GB allocator.
Avoid default parameter to getIndirectHeap.

Change-Id: I105ceaa4b5e9b23ce8dc96631410b9535e5a44e0
2018-04-16 17:56:49 +02:00
Mrozek, Michal
ffa9b097f5 [26/n] Internal 4GB allocator.
- change the way we handle blocked commands.
- instead of allocating CPU pointer and populating it with commands, create
real IndirectHeap that may be later submitted to the GPU
- that removes a lot of copy operations that were happening on submit time
- for device enqueue, this requires dsh & shh to be passed directly to the
underlying commands, in that scenario device queue buffers are not used

Change-Id: I1124a8edbb46777ea7f7d3a5946f302e7fdf9665
2018-04-09 10:47:37 +02:00
Mrozek, Michal
2be5934096 [21/n] Remove Instruction Heap from enqueue path.
- This removes Instruction Heap allocation from enqueue path
- Blocked path is handled as well
- Heap is no longer allocated on demand it is bind to kernelInfo.

Change-Id: I54545beceed3404ee0330a8bac2b0934944cac30
2018-03-28 20:15:55 +02:00
Mrozek, Michal
9bdf01468e [20/n] Internal 4GB allocator.
- Switch to internal heap for kernel ISA allocations.
- remove IH from various functions
- remove IHState from CSR , IH is never dirty
- ISA is no longer copied on enqueue calls.

Change-Id: I0099cf2a9ebab6192ea03a74dd35f7da963fd5a5
2018-03-28 16:07:26 +02:00
Mrozek, Michal
09923fcb39 [17/n] Internal 4GB allocator.
- Make sure that blocks ISA is made resident
- both blocked & non blocked path
- fix a bug where private surface was not made resident in blocked path.

Change-Id: Ie564595b176b94ecc7c79d7efeae20598c5874fb
2018-03-27 10:33:22 +02:00
Dunajski, Bartosz
516082e7c5 Kmd notify improvements [1/n]: Quick KMD sleep optimization
- KmdNotifyProperties struct for CapabilityTable that can be extended by
  incoming KmdNotify related optimizations
- Quick KMD sleep optimization that is called from async events handler
- Optimization makes a taskCount check in busy loop with much smaller
  delay than basic version of KMD Notify optimization

Change-Id: I60c851c59895f0cf9de1e1f21e755a8b4c2fe900
2018-03-21 20:41:33 +01:00
Mrozek, Michal
1602fa5a88 [7/n] Internal 4GB allocator
- rename getBase to getCpuBase
- change some test names accordingly.

Change-Id: I6fb2e4714298250147ea7766a916d7f5d62edc54
2018-03-05 22:16:14 +01:00
Zdanowicz, Zbigniew
533afe472a Program preemption mode in Interface Descriptor Data
Change-Id: I7fce731d71dd0b6dc8505ebfe45d24c65898a08b
2018-03-05 09:36:53 +01:00
Dunajski, Bartosz
dd44a87d5f Map/unmap enqueue fixes [6/n]: Support multiple map operations
- Dont make cpu/gpu writes on read-only unmap
- Read/Write on limited map range only
- Overlaps checks for non read-only maps
- Fixed cmd type on returned event

Change-Id: I98ca542e8d369d2426a87279f86cadb0bf3db299
2018-02-23 10:45:06 +01:00
hjnapiat
5909a6b3d3 Add support for GT-Pin Callbacks [3/n]
Change-Id: Iea4b49efc9a666fde310ece15a9c69686d22f627
2018-02-19 10:43:19 +01:00
Dunajski, Bartosz
4f2a05ac88 Map/unmap enqueue fixes [2/n]: CPU operations on limited range
- Curently each non-zerocopy CPU operation on map/unmap make a full copy
  using hostPtr
- This commit adds functionality to select specific range of copy
- Multiple mapping with different size is not supported yet,
  so copy will be made on full range for now. This is for future usage.

Change-Id: I7652e85482ba6fffb2474169447baf9b080dcd1e
2018-02-13 16:29:01 +01:00
Zdunowski, Piotr
1cfe5344fc Enable throttle hints extension.
Change-Id: I996fce8dbc792d77dc85df143ba5c0aa1cad83e5
2018-02-06 17:01:37 +01:00
Zdunowski, Piotr
0b6b12ea57 Globally enable priority hints extension.
Change-Id: I9f3b8d3cf1bedb41d9e0622ff514bf76b4518d8c
2018-01-24 20:07:31 +01:00
Chodor, Jaroslaw
044fd1ab81 Fixing IntDescr programing for blocked cmd and MT
Fixing InterfaceDescriptor programming for
blocked commands when MidThread preemption is
enabled
Additionally, fixing couple of tests that block
global preemption enabling in ULTs

Change-Id: I454c9608f8606f23d7446785ac24c7c7d8701ae0
2018-01-17 12:19:07 +01:00