Commit Graph

10134 Commits

Author SHA1 Message Date
Artur Harasimiuk 31e974c3c9 cmake: refactor to improve instrumentation handling
Change-Id: Ic036c4c70590968ba3905dcc0d1c2eb0fc481a01
2018-02-15 16:33:10 +01:00
Zdanowicz, Zbigniew dfbde1d506 Change layout of AubDump structure
Change-Id: Ib99aabcf835807decc1ea3898f8b2f4e2655e20d
2018-02-15 14:54:42 +01:00
Dunajski, Bartosz 87ed3d4fff Improve page table manager initialization
Change-Id: Ifdd74bf93a93fcdecaae5b1276c0fa83a9664987
2018-02-15 13:31:50 +01:00
Artur Harasimiuk 4f270223d1 added license file
adding because github can handle this file and show license type on
repository level

Change-Id: Iec390eef4008eab8dcfbb611cc31517563efde5c
2018-02-15 11:05:43 +01:00
Mrozek, Michal acb044dce3 Fix DC flush programming in non concurrent scenarios.
-If out of order flag was disabled then pipe control was not having dc flush.
-This could led to a batch buffer that doesn't end with dc flush.
-This change adds differentiation between pipe controls that may be erased and
pipe controls that are used as a part of epilogue command

Change-Id: Ic9c970c75c89ff524a0e40506eff6dd097760145
2018-02-15 09:42:11 +01:00
Mrozek, Michal 2d0af9d4a4 Make sure that local workgroup size is properly passed for IOH estimation.
Change-Id: I0ad5da4fffd1575f64d44803ce8eb4a6a0ab1532
2018-02-15 07:57:39 +01:00
Zdanowicz, Zbigniew 8a5b0ee518 Debug variable must override HardwareInfo capability at DeviceFactory
RT must override engineType at DeviceFactory, since Wddm CSR uses HardwareInfo
at its ctor.
AUB tests must override engineType at Device ctor since they bypass
DeviceFactory.

Change-Id: I73e4066e9b16aed0410fe39a82726d3baea2e67f
2018-02-14 17:29:30 +01:00
Dale Stimson 4e6fe62eb6 Convert FALLTHROUGH comments to C++17 [[fallthrough]] attribute
Use conditionals and a macro to avoid provoking compilers that do
not support this attribute.

Adds a macro named CPP_ATTRIBUTE_FALLTHROUGH which is invoked right
before a following case statement to declare that the intent is to
fall through.  Example:

    ...
    case xxx:
       ...
       CPP_ATTRIBUTE_FALLTHROUGH;
    case yyy:
    ...

The gcc/clang alternative of adding comments that contain "FALLTHROUGH"
suffers from the problem that *by default* ccache strips the comments
so that they are not present for the real compilation.

Change-Id: I77ddeb7dae46db8398b014a93f6a71bedc64ada9
Signed-off-by: Dale Stimson <dale.b.stimson@intel.com>
2018-02-14 07:08:00 -08:00
Zdanowicz, Zbigniew 45dedb37f3 For HostPtr surfaces of enqueue calls use GPU address
Change-Id: I67bf5076d23d43438f5e82c5cb6cbd3b9ed2f152
2018-02-14 15:44:27 +01:00
Artur Harasimiuk 7198c604f9 infrastructure update
Change-Id: I1087b9c75dc88874f11af607cd505ca3e9825b3c
2018-02-14 14:41:34 +01:00
mplewka 94c996a452 Provide hint when create zero copy image
Change-Id: I526a81e0d14daba98574575e8c945214b0bda810
2018-02-14 12:56:04 +01:00
Artur Harasimiuk 92198537a6 enable gcc7 with address sanitizer
because of deffered deletion some variables are dereferenced after
leaving test scope. this causes invalid stack memory accesses reported
by GCC 7.

Change-Id: I183be8ec3c815a41a75a1f71635d9afb560c7457
2018-02-14 10:37:22 +01:00
Artur Harasimiuk 56b34ee49f properly set default value of CMAKE_BUILD_TYPE
Simple set() is not enough because this variable is created with empty
value after cmake starts. We have to force setting value and store in
cache.

Change-Id: I0d018ebe3a9a0a65f6fae5313853857913d84bf7
2018-02-14 08:15:33 +01:00
Kowalczuk, Jakub 13d04e4623 Update manifest
Change-Id: I21cb231e34a702ef55eb84f0af53b7ed1bc31e59
2018-02-13 16:50:09 +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
Jacek Danecki ff44e9922d Used ratified Khronos extension names
Change-Id: I15b62b6f5fb805efedec5cd9e14215a94d97c8f6
2018-02-13 13:33:27 +01:00
Mrozek, Michal 82a2afb611 Improve DC flush handling.
-Do not flush dc for every command in batched mode
-Do that only in immediate mode
-For commands that needs DC do not noop pipe controls
-Ensure that each command buffer in batching mode ends with dc flush.

Change-Id: I3cd9d1831c19b69c66092687922f20df7e330245
2018-02-13 11:37:11 +01:00
Hoppe, Mateusz 85f890690d Refactor preemption methods
- moving primary template definitions to preemption.inl

Change-Id: Ia54c652503a6272c55800e5ba59b94ef21fa2a19
2018-02-13 11:35:24 +01:00
Mrozek, Michal d563059c14 Remove redundant code from flushWaitList.
Change-Id: Iab4cb856ce324a785b052b8638ef23aef43c9bc9
2018-02-13 10:40:33 +01:00
Zdanowicz, Zbigniew d6b5433f14 Lower Windows minimal address to 16kB
Change-Id: I138438943d438ace0b5d76e04f3af8d9541d532a
2018-02-12 18:04:56 +01:00
Artur Harasimiuk 333af8349e fix instrumentation handling in cmake
some set() statements were constructed incorrectly. we shouldn't
dereference variable when setting its value

Change-Id: Idc9d60fa87a4364f2b2583d21d53cc0b6f5560d9
2018-02-12 17:30:49 +01:00
Cetnerowski, Adam 099d6e5f74 Update build instructions
Change-Id: Ied80d0e7b7adecfc8abe6fc309cb69883ebfffab
2018-02-12 17:18:19 +01:00
Zdanowicz, Zbigniew 5a175cf1cf Override engine type used by device in Device ctor
AUB tests do not use DeviceFactory class to create Device objects but still
need to have a functionality to override default engine type

Change-Id: I6841cb0a9c5726ac4308c742c78cf7a61829f168
2018-02-12 16:50:35 +01:00
Mrozek, Michal b5dab07aa2 Do not allow out of order execution for shared objects.
Change-Id: I2dbbd8f09485bd894774eb2c4548326475a41221
2018-02-12 10:36:23 +01:00
Dunajski, Bartosz 72b78d15ee Map/unmap enqueue fixes [1/n]: Unify Buffer and Image paths
Change-Id: I59bf18072c15367ff6caec5dbdc1350ea2d93281
2018-02-09 17:35:03 +01:00
Mrozek, Michal 6bb83fb95a Do not noop pipe controls if call is returning event on IOQ.
-For in order queue application can have fine grain granularity of completion
-For out of order queue application wants to execute workloads concurrently
-This change disables pipe control nooping for ioq calls when event returned.

Change-Id: Iaeaf677f768f7434b2efa1842b50653ab80777ad
2018-02-09 11:57:44 +01:00
Hoppe, Mateusz 012b8bd73c Adding initial PreemptionMode::Initial
- account for initial setting (when set mode was equal to initial(Disabled))
estimate size in cmdStreamCS, program MMIO

Change-Id: Ice218ae986583c8f3bab4f4f6979e38f03e30d7e
2018-02-08 16:21:52 +01:00
mplewka 4db1e3af6a Check zeroCopy flag for r/w images/buffers
Change-Id: I7047ae8458bdf3528d6014137522a37561d15ab6
2018-02-08 13:55:44 +01:00
Artur Harasimiuk cece633e93 cmake: refactor WDK_DIR detection
- Win15 sub folder is optional
- added cmake variable to define WDK Version to use

Change-Id: I9618eaa72e160834544b304c47ea6d17766d6966
2018-02-08 11:38:11 +01:00
Zdanowicz, Zbigniew a1db4ddd7a Retry Wddm mapGPUVA after failure when deferred deleter is set
mapGPUVA will fail when allocation is still in deferred deleter and using
the same base pointer to map, while there is no reserveGPUVA for SVM range.
In that case driver should drain deleter and retry mapGPUVA call

Change-Id: I4ded7d79e0cd935ec62d7fae785d66570c847535
2018-02-08 10:28:40 +01:00
Mateusz Jablonski ea021f8d69 Cmake refactor part 1: fix dependencies with including os_inc.h
Remove some not needed includes

Change-Id: I158ad663ccfcec4822e3768df9d05090c5e096f9
2018-02-08 09:40:40 +01:00
Mateusz Jablonski 0178b9862f Cmake refactor part 3:
Move defining genX sources logic to separated cmake file
Fix defining hw src include path

Change-Id: Id89125ab6f461fbcf5162157f76e0fbe0544fa69
2018-02-08 09:23:37 +01:00
Dunajski, Bartosz 3a305018ba GLK device ID support
Change-Id: I6cceb83739b39b6e97fa3c2d938739b204e23f22
2018-02-08 08:45:34 +01:00
Mrozek, Michal d8f2142faa Enable out of order execution for all submissions.
- This change enabled multiple independent command queues to execute
concurrently without stalling pipe controls in between
- This change removes L3 flushes between kernels
- Dependencies between commands are resolved via task level mechanism
- Out of order queues are not changing task level between submissions
- In order queues are increasing task level between submissions
- Whenever task level changes there is pipe control with cs stall emitted
between GPGPU_WALKERs

Change-Id: I558653b296424e4775d060df3072e2a50684b715
2018-02-08 08:22:04 +01:00
Artur Harasimiuk 043ad0eeba fix PDB generation
we want them for all supported build types

Change-Id: I97f4e860601eec10d2c9058bd9e0aecf68475f45
2018-02-08 07:51:33 +01:00
Milczarek, Slawomir 12b437ddc8 Add DAF headers to manifest.yml and redefined headers search path in cmake
Change-Id: I8d399aa717d8274da3892c3229e6502ef601864b
2018-02-07 17:12:17 +01:00
Mrozek, Michal c17a2f70fd Do not update tag on pipe control with level change.
- Tag should be updated only as a part of epilogue.
- Level change should only emit pipe control with cs stall

Change-Id: I6e04f794641818b0d046523776d3ce87aec9f606
2018-02-07 14:56:35 +01:00
Dunajski, Bartosz dbe3bdb8a3 Append LRI params for Translation Table callbacks
Change-Id: I8f0f81f9c49edf83f76b38cf886143ac018ec400
2018-02-07 13:04:20 +01:00
Artur Harasimiuk 26c2768ebb dependencies update
Change-Id: I915f2bf18562e527186a8bccaa09a9099601e585
2018-02-07 09:49:10 +01:00
Mrozek, Michal 006d248de6 Always set DisableGpuTimeout.
Reg key for preemption may not be available, this doesn't mean that
preemption is off.

Change-Id: If7c8a8228fbfa9f01f95d61d4134bd398e4079f6
2018-02-06 19:21:06 +01:00
mplewka 21c1dce943 Enable zero copy for enqueueImage r/w with hints
Change-Id: I6d4379b4bebaca162f859ea790f6a77475f7e94e
2018-02-06 19:00:15 +01:00
Zdunowski, Piotr 1cfe5344fc Enable throttle hints extension.
Change-Id: I996fce8dbc792d77dc85df143ba5c0aa1cad83e5
2018-02-06 17:01:37 +01:00
Cetnerowski, Adam eb42a1eba1 Add platform names to list of supported platforms
Change-Id: I42be17c2b32f29faca28929f058cedcbcbdee9c6
2018-02-06 15:25:22 +01:00
Dunajski, Bartosz bdee42ca16 devices.m separation for Linux
Change-Id: Ia8e430db4dfcefc1b19e23e9cd7113bf87f0a7af
2018-02-06 15:24:20 +01:00
Zdunowski, Piotr 6ef0581a02 Device caps fixes.
Change-Id: I07cfd98f525ce2b87bc5f96060ed31fb9fc48783
2018-02-06 14:24:16 +01:00
Artur Harasimiuk 763e872519 dependencies update
Change-Id: Ie1e6347d442676674d82078eff3994c8629953de
2018-02-06 11:23:04 +01:00
Milczarek, Slawomir 89be67b570 Add support for DAF injection
This commit adds support for Debug Assistance Functionality (DAF)
aka "Driver Aubcapture" to debug builds on Windows.

Change-Id: I7e859d32af17a6fcee23868392df6cd1390e4afd
2018-02-05 16:08:52 +01:00
Mrozek, Michal caaeabcd09 Set flushstamp only if client provides it.
- Fix a data race where setting flush stamp with default value was
setting the flushtamp to initialized state

Change-Id: Ifc6bdd341b5fe2f2cf4e28bbff271b9a90915db5
2018-02-05 15:55:26 +01:00
Mateusz Jablonski b027a82442 Cmake refactor part 2:
Move defining runtime sources into cmake files in subdirectories

Change-Id: Ic83c12fee65e04d19e7c8e1f88b939f03af7fa28
2018-02-05 13:40:46 +00:00
Mrozek, Michal 28758fc336 [2/n] Optimize CPU code
-Do not inc/dec reference count for flush stamps while used only for
update
-FlushStamp doesn't need to be atomic,replace with atomic bool flag
to prevent usage while uniinitialized
-Clean not needed private new

Change-Id: Idad2b318f988de1e7af7642047c67f931e9772aa
2018-02-05 11:02:17 +01:00