Commit Graph

211 Commits

Author SHA1 Message Date
Mrozek, Michal b00819cafe Add refcount on MemObj in blocked scenarios.
- Prevents destruction of MemObj while it may still be in use.
- Add UNRECOVERABLE to check whether object is deleted while having
dependencies, fix all problems is tests due to that fact.
- Fix special queue setting, clean interfaces.

Change-Id: I2a467e80df00ea1650decdcfa6866acf10b441f8
2018-01-08 16:03:24 +01:00
Mrozek, Michal e9fd40db13 Do not update task count with not ready status.
- queue blocked status is handled by virtual event not task count.

Change-Id: I8979ba55d2319a75393c639b234dcd86cf2792ae
2018-01-05 14:01:17 +01:00
Mrozek, Michal 3eb856b192 Add reference on kernel in blocked scenarios.
- Prevents kernel destruction while it may still be in use.

Change-Id: I1f87d09c5cabf29644a1b06b63f1789dbb15985a
2018-01-05 10:19:04 +01:00
Mrozek, Michal 57137fea84 Fix heap programming in blocked scenarios.
- When command queue is blocked, all heaps are being stored in temporary
allocations, command buffers are being pre-programmed, heaps are being set
on those temporary allocations with the assumption that all heaps start with
offset 0.
- Problem was when the actual submissions happened, all those temporary heaps
were just copied to appended command queue heaps, so when something was there
then new stuff was copied right after it. It means that all state was
incorrect as the offsets are not valid anymore and will point to wrong
location.

- This change releases command queue heaps when blocked command is being
submitted to make sure they will be programmed with the proper offset in newly
allocate command queue heap.

Change-Id: I3e30be13caf4df8621ddb18f8448ffaf0f1278d1
2018-01-04 10:45:49 +01:00
Mrozek, Michal ec59a900e1 Fix for deadlock in mapImage scenarios.
- due to the fact that device mutex was obtained to prevent threaded access to
image there was a problem when other thread was also doing readImage call
That thread got read Image kernel mutex first and then it was acquiring device
mutex, which was taken by other thread doing mapImage call.

- In current code device mutex is not taken to service mapImage call, instead
image is being guarded by its own mutex.

Change-Id: Ic4c5a019708d7ec5b240bc5b08c5a65173827392
2018-01-03 12:33:12 +01:00
Mrozek, Michal 2b91ea85c6 Fortify events
- add some debug breaks
- clean cmd ownership, there can't be situation when event holds 2 commands
- cmd meaning cleanup
- remove not needed try catch clause

Change-Id: I5ad6877e7235de2d7f48818467cb4b92655aab97
2017-12-22 15:05:28 +01:00
Mrozek, Michal 03646887bf Make UNRECOVERABLE_IF fail in tests.
- Fix tests that were triggering the UNRECOVERABLE scenario
- Change UNRECOVERABLE to DEBUG_BREAK in some places

Change-Id: I479baac4941b485af9ea81a61a1a03d2f3f42e6a
2017-12-22 11:26:06 +01:00
mplewka b503597ffa Enable new algorithm computing local work sizes
Change-Id: If0addb5f36ee0b667370489b11837be716d70782
2017-12-22 10:42:36 +01:00
Mrozek, Michal 2a00a15141 [n/n] Remove event registry.
Change-Id: Ie7da0f2dc944583771aaa80648217602ccff99ce
2017-12-21 14:46:27 +01:00
Mrozek, Michal 3284efff86 Do not use peekIsCompleted in isQueueBlocked.
- This causes event tree update if virtual event is holding commands or
callbacks
- That causes race between other threads that may be updating the tree

Change-Id: Ic80a8b71ed1e1c1deab8af1bc64f8ce81c21de1b
2017-12-21 08:13:43 +01:00
Brandon Fliflet 7e9ad41290 Initial commit
Change-Id: I4bf1707bd3dfeadf2c17b0a7daff372b1925ebbd
2017-12-21 00:45:38 +01:00