Commit Graph

81 Commits

Author SHA1 Message Date
95e5aba86a Decode sip binaries once for all tests
Change-Id: I05a54146dc1aa893c5217f60f3b4ca47ded03019
2018-05-29 13:47:19 +02:00
71b844f522 Wddm interface [7/n]: Add 2.3 interface with HW queue support
Change-Id: Ia0e829b8616b7060e39170aea0f1d2f123d73399
2018-05-24 10:26:58 +02:00
d2817427af Remove createInternalGraphicsAllocation function.
- Route directly to allocate32BitGraphicsMemory

Change-Id: Ia6872bae655c530ff06b0ec270f419ca91d005ce
2018-05-21 04:11:43 +02:00
430f6def75 Wddm interface [5/n]: cmake improvements to find all existing source files
Change-Id: I2f3f004b964f472085a1f036b40f0552489ac288
2018-05-16 14:57:14 +02:00
ef76b9ddc4 Wddm interface [6/n]: Add debug variables
Change-Id: Ia4a6b25f2c5b0a230e7344f34822197e90d45ff3
2018-05-15 15:19:53 +02:00
e4857867a9 Wddm interface [4/n]: Make 2.0 default version
- Create Wddm20 interface by default for runtime and ULTs
- Add Windows dll test for Wddm creation

Change-Id: Id0a1b86e68112c31078b6965c647a5218790150f
2018-05-15 09:16:28 +02:00
baa7640c90 Rename MemoryType enum to AllocationOrigin
- better describes the meaning of INTERNAL and
EXTERNAL allocation types

Change-Id: Iacb97f5a9d63f45b60bc404cc6dd32c7ebd72ab3
2018-05-14 12:38:52 +02:00
bab9ad6cda Wddm interface [3/n]: Improve constructing Wddm object
- Only Wddm object owns Gdi
- Dont pass Gdi object to constructor
- Move Wddm related files to new directory

Change-Id: Iadd26634c7692db760d7d3367211c32d2c2c8121
2018-05-10 17:14:25 +02:00
2bc2869fe1 Refactor ult's for preemption enabling part 2
Change-Id: If8e335e87f3a78d35cab12a17880fb1922d479f5
2018-05-10 13:12:03 +02:00
3a5227f9a0 Improve MockGmmMemory usage
Change-Id: I5edfe5a09c743d1672631a62be588e2aed55fd46
2018-05-10 11:58:27 +02:00
46003145e9 Gmm interface update
- Use local gmmClientContext instead of pGMMGlobalContext
- ResourceInfo and PTmanager creation from gmmClientContext
- Mock Gmm context creation in Wddm to have only one instance per run

Change-Id: I67e015c57f0ab5524564760fd9a849615615697f
2018-05-10 08:51:46 +02:00
44e54ef69b Wddm interface [2/n]: Move WddmMock to igdrcl_mocks + more cleanup
Change-Id: I993312c1e17fb474e142424b154666f8af6a4170
2018-05-08 15:57:38 +02:00
d33866b027 Wddm interface [1/n]: Wddm fixture cleanup
Change-Id: I9ef300ba6f0abe7659683ee96730621a9b57ea85
2018-05-08 13:14:55 +02:00
224676bc2d Change return type of Wddm::createContext to make init more consistent
Change-Id: I113dbd636c2ed11ba76333021535160e46cb7116
2018-05-07 13:08:50 +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
5fbdad88c6 refactor config.h usage
- add defines to command line
- remove most occurences of include "config.h"

Change-Id: I19d65d83c895fc6143d319d057a50e5ae3e78830
Signed-off-by: Artur Harasimiuk <artur.harasimiuk@intel.com>
2018-04-26 10:02:15 +02:00
83160213f0 Fix problems in thkWrapper and SharingHandler
- ThkWrapper had uninitialized mFunc member, setting it
to nullptr

- D3DSurface could dereference null image pointer,
adding validateUpdateData method in SharingHandler
that may return CL_INVALID_MEM_OBJECT if memObject is invalid

Change-Id: Iaa4499bcea47baca156c9d28be4c93ba4f0e1ebb
2018-04-19 15:04:38 +02:00
59df78cc18 [32/n] Internal 4GB allacator.
- Ensure that heaps passed as IndirectHeap to flushTask

Change-Id: Ib633e3d3027e142a1fdb51e78b970fb1bd1b9b0c
2018-04-18 08:49:08 +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
b0a6d9131a Making DSH and IOH always resident
Change-Id: Ib114b92cb5ee153f213c15c935f8f1d1cfeb46eb
2018-04-13 12:35:15 +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
9bc11a7f48 Adjust PLATFORM values for a given Product Family
Change-Id: I4522df78060861b6f91ac5f125cf6b11023f1509
2018-04-05 10:07:38 +02:00
f4af035ab7 CapabilityTable adjustments part 2
- Move Windows HardwareInfo configuration from DeviceFactory to HwInfoConfig
- Add ULTs for HwInfoConfig on Windows

Change-Id: I9b84bbe60ca9f2ad4ddc3119bc8cb88331a7d154
2018-03-30 11:31:14 +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
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
ffb33f5e86 refactor virtualAlloc methods
Change-Id: I06e93471b395818ad172048d545f1439066207d5
2018-03-28 14:12:21 +02:00
aa088da8d3 User pointer read-only memory fix
- do not store fragment in map until hostPointerValidation
is done
- set pointers to nullptr after delete in cleanOsHandles

Change-Id: I0bf99c3215c4b91ce059bb4e94716671c49f1946
2018-03-28 12:42:31 +02:00
a02c3cb781 KM DAF AubCapture to recapture fill pattern allocations
The commit introduces a recapture of fill pattern allocations on every submit.

Change-Id: I634af075348dbc59c7809f58b8495326cab804e1
2018-03-27 16:38:41 +02:00
32825e203e KM DAF AubCapture to recapture command streams and heap allocations
This commit introduces a recapture of CS and Heap resources on every submit.

Change-Id: I2a5a763e8988de804da1a6c2c8042154b0786b2e
2018-03-26 18:27:20 +02:00
d65128d4e8 Refactor around sharings
- exposing additional handles in common code
- adding proxy for CreateEvent (windows)

Change-Id: I90872682c6c518c98d9d43e79f5112ee869e94aa
2018-03-26 15:32:25 +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
ed30f6e55f Read-only memory allocations handling in Wddm
- return InvalidHostPointer when createallocation
fails with NO_VIDEO_MEMORY

Change-Id: I6946eeb04d3a191550478e1d26a6ce0c32b75c34
2018-03-23 14:30:00 +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
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
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
2119d5db08 [13/n] Internal 4GB allocator.
- Add common function for all memory managers to obtain internal heap base.

Change-Id: Iacdaaf598e8786dad046b3f4550f9c80ce3f15d9
2018-03-12 16:19:24 +01:00
12b7c551d8 use ADAPTER_INFO in one method only
size of structure can vary. Create single point of conversion to extract
required data and store them in Neo specific structures.

Change-Id: I822ec633014aa7394cbd626ecbc275e32e61cf60
2018-03-09 12:30:05 +01:00
a8b5a66439 Cmake refactor part 12
igdrcl_tests: define os_interface sources in subdirectories

Change-Id: Ibbf1754bf7a095f22ad152db709614f7e40ed2fb
2018-03-08 22:55:07 +01:00
3297cd8342 add function to properly load dependency
Change-Id: I0cec677ae19fa6525890c9b0abe0601a0c11e7df
2018-03-06 23:47:53 +01:00
c4c35955d1 Debug option to flatten main and chained batch buffer in AUB dump.
New debug option FlattenBatchBufferForAUBDump has been added. When set it
modifies AUB dump in such way that commands from main and chained batch
buffer are dumped as single allocation. Commands from chained batch buffer are
dumped directly after commands from main batch buffer without
MI_BATCH_BUFFER_START. This feature also requires ImmediateDispatch mode which
can be forced using debug option CsrDispatchMode = 1.

Change-Id: I730760791693a748e7f4e1463ce8e7af94287b93
2018-03-06 12:26:50 +01:00
8781bd518e remove some redunant casts in setAdapterInfo
Change-Id: I96bc52e6870346d35209b345362d4ddd951f90b4
2018-03-06 09:09:04 +01:00
f1f9fba509 use ADAPTER_INFO in Wddm only
do all transform and conversion in enumAdapters and return HardwareInfo.
the ADAPTER_INFO structure may vary and SkuInfoTransfer is responsible
to copy/deduce required flags, it can be done as a part of enumAdapter.

Change-Id: Iad6fd5f7094f591a0175025c9ec33a96e55ebdc9
2018-03-02 09:45:03 +01:00
b2f964dcf2 [6/n] Internal 4GB allocator
-Use GPU address to program command buffer in WDMM.

Change-Id: Iea6e423ccb18a09b4969a10cf2bd44d7a6af6629
2018-03-01 21:50:14 +01:00
5c8cd51fc8 Use allocateGraphicsMemoryForImage for mipmaps
Change-Id: I0cd740ca4c8286fb73f766b74abc50ed53cfc9d0
2018-03-01 20:39:15 +01:00
3e3c6c28c7 Change default value of UseNoRingFlushesKmdMode to true.
Change-Id: I7c7246aeebb2815262cb2cd4731aabb2d74a3002
2018-03-01 17:25:38 +01:00
52cdb7e57d [2/n] Internal 4GB allocator
- Add test for new parameter to mapGpuVirtualAddress

Change-Id: Ie374981fb58892e974efb80ba944419564422d98
2018-02-28 10:04:53 +01:00
19c68a608f [1/n] Internal 4GB allocator
- Add new entry point in memory manager for internal allocations.
- Route to allocate32BitGraphicsMemory
- Add new enum to control memory region
- Change mm to memoryManager

Change-Id: I2ee069aa9baf7f69f652022e026569ec4fdb9d77
2018-02-27 16:35:12 +01:00
3c230f6302 Align createContext & createDevice DisableGpuTimeout flags.
- Make sure we program the same value for both calls.

Change-Id: I11b26fb56e60fff8f379827f6f6424a387b005d3
2018-02-22 15:55:30 +01:00
006e86d7a6 move mocks to igdrcl_mocks target
Change-Id: I6d9f87fc415ff70261344105e8808c6e91a960bd
2018-02-21 23:36:31 +01:00
ca33e029b7 Fix profiling calculation for CPU profiling path.
-There was a precision problem with timestamp calculation, all math was using
integers which are not very precise in overflow scenarios
-Change the logic to use doubles and cast back to uint64_t at the end.

Change-Id: Ia08d504a90a43df7330f398af966535ed944650d
2018-02-19 19:08:23 +01:00