Commit Graph

219 Commits

Author SHA1 Message Date
996cb52370 Refactor ULTs and AUB tests around HW commands
Change-Id: Ie00822b9e0864af6ede3e967039efa911d1dbb6f
2018-05-22 13:59:30 +02:00
d2817427af Remove createInternalGraphicsAllocation function.
- Route directly to allocate32BitGraphicsMemory

Change-Id: Ia6872bae655c530ff06b0ec270f419ca91d005ce
2018-05-21 04:11:43 +02:00
b27eee1f7a Refactoring ULTs around HW tests
Splitting HW tests into CMD-unrelated HW tests
and CMD-related HW tests

Change-Id: Ifbdcabdd0d6f4082e976363a3d8bcd5e7a9ce6c1
2018-05-18 11:45:45 +02:00
6b41b86d20 L3 programming refactor 5/n
- Add explicit specializations of L3Helper

Change-Id: I004c609af33250838eacaa3a28a9d1b154a390bf
2018-05-16 14:37:31 +02:00
621a2dfcd1 [34/N] Internal 4GB allocator.
- Change dirty state helpers to work on IndirectHeaps.
- Instead of comparing size in bytes and cpu pointers, compare gpu base
address and size of the heap in pages
- That allows to not have dirty flag for heaps that are coming from 4GB
allocator.

Change-Id: I0ff81e3c0945b32e4f872a100cd10b332b27ed24
2018-05-12 16:01:30 +02:00
33fee15711 Change interface to pass Interface Descriptor Data as pointer
Change-Id: I0f33109b800a7607206954bb1e5cb0826290e6f3
2018-05-11 14:35:53 +02:00
2bc2869fe1 Refactor ult's for preemption enabling part 2
Change-Id: If8e335e87f3a78d35cab12a17880fb1922d479f5
2018-05-10 13:12:03 +02:00
541735d932 L3 programming refactor 3/n
- Add L3UltHelper to be able to tell if L3 config is programmable
- Run L3 config kernel tests according to its output

Change-Id: I55b76e2da325d28f62b0bde20250b68f02154ae2
2018-05-10 12:43:10 +02:00
fb97a5c747 Rename isBigCore to isCore
add tests for getPlatformType function

Change-Id: Ief835dd5df8f4753fb0f39763ccbcff366d69a93
2018-04-27 11:56:39 +02:00
8d2df3c332 Move indirect heaps from command queues to csr.
-This is required to enable N:1 submission model.
-If heaps are coming from different command queues that always
mean that STATE_BASE_ADDRESS needs to be reloaded
-In order to not emit any non pipelined state in CSR, this change
moves the ownership of IndirectHeap to one centralized place which is
CommandStreamReceiver
-This way when there are submissions from multiple command queues then
they reuse the same heaps, therefore preventing SBA reload

Change-Id: I5caf5dc5cb05d7a2d8766883d9bc51c29062e980
2018-04-26 14:05:40 +02:00
a0c044e6d2 Extend batch buffer flattening in AubCSR to BatchedDispatch mode
- batch buffer flatening in batched mode
    - added MI_USER_INTERRUPT command
    - added GUC Work Queue Item

Change-Id: I35142da34b30d3006bb4ffc1521db7f6ebe68ebc
2018-04-26 12:45:02 +02:00
c0a84cad85 use validateObject function for memObjs in win api
Change-Id: I1b54096b5a6fdb43a38c25a37560e88218671bd2
2018-04-25 15:58:47 +02:00
180de340d8 Define variable with binary name suffix
use this variable in tests as it is set once in main.cpp
create function to get binary kernel filename

Change-Id: Ibf7b4c2d390caefda4a5d7fc4667006e7f2edde8
2018-04-25 15:34:34 +02:00
5ed13d7c88 KMD Notfy: Multiply timeout by taskCount diff only on Linux
Change-Id: Idb75dcc02cd218ff097f29d6881c97bb8feb25da
2018-04-19 22:28:06 +02:00
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
5bae27ae51 Fix a bug in Graphics Allocations constructors.
- There was a wrong cast in Graphics Allocation constructor resulting
in wrong GPU address generation in some sporadic scenarios.
- Problem appears in 32 bit applications where void* address is cast to
uint64_t value, if c style cast is used it makes trailing bit to be
populated to higher bits constructing wrong value

0xf000000 is being casted to 0xfffffffff0000000 while it should be casted to
0x00000000f0000000
- added special cast function for further use.

Change-Id: I56d53a8e13e17cbacd127566442eea3f6a089977
2018-04-19 09:45:03 +02:00
d900bdffc6 [33/n] Internal 4GB allocator.
- Move indirect heap to internal allocator domain.
- Add logic in getIndirectHeap to allocate with proper API depending on
heap type
- Add State base Address programming, reflecting that now Indirect Object
Heap is placed in 4GB domain.
- For AddPatchInfoCommentsForAUBDump mode , keep all heaps in non 4GB mode.

Change-Id: I6862f6a249e444d0d6cfe7e499a10d43f284553e
2018-04-19 08:13:48 +02:00
6299388b71 [30/n] Internal 4GB allocator.
- Add support for patching indirect state with internal heaps.

Change-Id: Ib5748beb462be1786134a0a81bb649dd279816ec
2018-04-17 09:22:15 +02:00
079f94cd2d Refactor ult for preemption enabling
Refactoring in ULTs around preemption:
    -refactoring ULTS to not fail with default preemption mode
    -fixing ULT memory leaks observed after enabling preemption
    -mocking getSipKernel in ULTs (to minimize ULT execution time)

Change-Id: I194b56173d7cb23aae94eeeca60051759c817e10
2018-04-16 12:55:30 +02:00
acf97999f3 Force Kmd Notify timeout for Windows machines running on battery
- This is to improve battery usage while waiting in busy loop on CPU
- New Kmd Notify helper to maintain dynamic parameters
- Ask OS about battery status on longer waits
- Pick different timeout when using battery and optimization is disabled

Change-Id: I5f9c8c5a9c635652aac27c707f2b55933947a7fb
2018-04-12 10:03:10 +02:00
5fdd853506 fix test for validateObjects
Change-Id: I5aa4dd47b6c406b62807d671a8b40676c21d4127
2018-04-11 21:29:52 +02:00
87f8f735f9 Move KMD Notify logic from CSR to specialized helper
- Decission about timeout enabling and value moved out of CSR
- Timeout multiplier is no longer Linux specific

Change-Id: I6858fe2f811ef13802b95e0470e310210a9dea8b
2018-04-10 08:16:11 +02:00
9a86f86a24 Source Level Debugger device debugger active flag
- device flag indicating if debugger is active
- when active, proper sip kernels must be used

Change-Id: I678367cdf8fab5d4b5770e3f471246ff6d6bd112
2018-04-09 14:02:45 +02:00
375933f0de add validator tests for platform
Change-Id: I144b93cc24683600fe507f9b66dbbba84a182c5c
2018-04-06 14:35:03 +02:00
614b69a3bf Adding support for get_image_num_mip_levels
* patch token decoding
* crossthread data patching

* additionally, fixing nasty ODR violation in VA tests
  (note : ODR = One Definition Rule)

Change-Id: I9803ed599826c97359349d2b8fa0d86e46cb33ea
2018-04-06 11:04:29 +02:00
79a0e3253e Enable transforming image 3d to image 2d array
Change-Id: I8fdc6899780481bdebeaf858a330e9dea822bda3
2018-04-05 09:10:54 +02:00
0a97dfbb2f [1/n] Mipmap support
* adding support for map/unmap
* adding support for origin/region validation with mipmaps
* fixing slices returned in map/unmap
* removing ambiguity around mipLevel naming
* enabling cl_khr_mipmap_image in current shape
* enabling cl_khr_mipmap_image_writes in current shape

* fixing CompileProgramWithReraFlag test

Change-Id: I0c9d83028c5c376f638e45151755fd2c7d0fb0ab
2018-04-05 01:09:27 +02:00
cbcf77ae49 Fix out of bound problem while estimating Indirect Object Heap.
- While estimating the required size of Indirect Object Heap we were not
handling properly the lack of local ids case
- In such case we should allocate one GRF per HW thread that will be unused

Change-Id: Ibcd359e431e3ffd9d55628ac7cf7eeefad72e7ba
2018-04-03 17:45:28 +02:00
8505658cab Multiply wait timeout by task count difference
- Linux specific
- Use only for non-quickSleep requests

Change-Id: I245546f83672d128377e51d92b6c7708a7448f05
2018-03-30 12:50:38 +02:00
7e6432a207 ULTs cleanup
- remove unused MemoryManagementFixture.
  MemoryLeaks are tracked using MemoryLeakListener no need to duplicate
  with Fixure.
  MMF should be used when you need to inject memory allocation failure

Change-Id: I95bcaa7051acf540c5b015c5489ed6a6fc38ee8e
2018-03-29 15:09:59 +02:00
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
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
7f32eb06d1 Kernel Source Level debugger support 4/n
- adding DebugSurface allocation and setup
- unit tests refactors:
  - mock kernel with kernel debug option
  - separating fixtures to headers
  - added helper for getting internal-options kernels
    filenames

Change-Id: I7b6f4d46e2ab7cff0da8d5212483f44ae0d4be31
2018-03-26 15:02:42 +02:00
6c1a869546 Optimize memory management in ULT.
- limit the amount of atomic reads
- change debug callback code to not test atomic
- change logic of seeing if we are within limits.

Change-Id: I67e6cf0558f2db60a50bf3ecdf7287d345bf50ae
2018-03-23 19:58:40 +01:00
656fc9beff Fix sporadic fail in ULT
Change-Id: I8b8c67d4ea1189f1895c8d606e4afd745933f0e9
2018-03-23 17:14:34 +01:00
ff1d2361f3 Add patch info comments to AUB dump
Collect patching information and add as comments to AUB dump.

Change-Id: Ib7c903a2589d68b6e3e614c1774c7cd5a000c29f
2018-03-23 13:08:54 +01:00
93cb7be091 Kmd notify improvements [3/n]: Fix sporadic in ULT
Change-Id: I1e326e7514d4d7d14cb1051b50105cbc418e325c
2018-03-23 10:50:42 +01:00
9486dba6dd Kmd notify improvements [2/n]: Use QuickKmdSleep for sporadic waits
- Measure time between wait calls. If delay is exeeded  use QuickKmdSleep
- Kmd Notify helper functions
- Refactor overriding from debug variables
- Refactor Kmd Notify tests


Change-Id: I123c31f492d98fd304184f99ee0bf7d733d06f04
2018-03-22 17:09:16 +01:00
c0a8522eb1 Cmake refactor part 19
- create new object library igdrcl_libult_env
- move sources shared between igdrcl_tests, igdrcl_aub_tests and
  igdrcl_mt_tests to igdrcl_libult_env
- partially cleanup unit_tests/mt_tests/CMakeLists.txt

Change-Id: I4f4bbfa5649d84d79133b9d5c9bd137c68b7d82e
2018-03-22 16:30:15 +01:00
0ad81024b7 Implement cl_khr_mipmap_image [1/n]
- Add mipmap image handling for clEnqueueReadImage, clEnqueueWriteImage
- Fix mipmap image handling for clCreateImage

Change-Id: I42938a330b55c7e69a16c26dce3ab5d66f8a8938
2018-03-21 10:51:13 +01:00
7644209288 Add debug flag to dump dispatch parameters.
- Also refactor debug manager tests , they now check for default value
in igdrcl.config file
- There is no need to write dedicated tests now , so I remove them.

Change-Id: Ib338ca05b6059302c29469c673239e7886dc4b9b
2018-03-16 11:13:35 +01:00
894060de50 Cmake refactor part 15
Cleanup unit_tests/CMakeLists.txt
Move shared sources to libult
define linux test projects in linux subdirectory

Change-Id: I0da18c79e6581412a04ddfb3795750db862ad95c
2018-03-15 12:12:09 +01:00
78bf486bfb Turn on EnableDebugBreak by default and infrastructure update
Change-Id: Ie7e12a7e1509f0a7a5962e97042dca8fa714d132
2018-03-12 14:05:16 +01:00
9d60c31dc8 Cmake refactor part 11
igdrcl_tests: define target sources in subdirectories H-M,P-U

Change-Id: I4539999c33ab5e5c3f5ec6909090c5c89daf7841
2018-03-08 13:23:27 +01:00
e56be64cd2 add more VariableBackup constructors
Change-Id: I5d857c0403f0378a7d4776e2afc88cea4194fcc4
2018-03-06 08:03:26 +01:00
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
533afe472a Program preemption mode in Interface Descriptor Data
Change-Id: I7fce731d71dd0b6dc8505ebfe45d24c65898a08b
2018-03-05 09:36:53 +01:00
95bd4a3d3a fix parsing in debug file reader
Change-Id: I6812a2ea0336152a9f5d1bc9d95f30a91392cf79
2018-03-01 17:24:32 +01:00
bf5170dbeb Rename TestDebugVariables.def to TestDebugVariables.inl
Change-Id: I0997b99955e360d7ed54ecfaa91fc11e4a48bf77
2018-03-01 14:28:04 +01:00
7f7daef49c Avoid default parameter to program constructor.
Change-Id: I75e9a619131f7d8721416cf18d87418568d04f25
2018-02-28 16:56:07 +01:00