- 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
-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
some set() statements were constructed incorrectly. we shouldn't
dereference variable when setting its value
Change-Id: Idc9d60fa87a4364f2b2583d21d53cc0b6f5560d9
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
-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
- account for initial setting (when set mode was equal to initial(Disabled))
estimate size in cmdStreamCS, program MMIO
Change-Id: Ice218ae986583c8f3bab4f4f6979e38f03e30d7e
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
- 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
- Tag should be updated only as a part of epilogue.
- Level change should only emit pipe control with cs stall
Change-Id: I6e04f794641818b0d046523776d3ce87aec9f606
This commit adds support for Debug Assistance Functionality (DAF)
aka "Driver Aubcapture" to debug builds on Windows.
Change-Id: I7e859d32af17a6fcee23868392df6cd1390e4afd
- Fix a data race where setting flush stamp with default value was
setting the flushtamp to initialized state
Change-Id: Ifc6bdd341b5fe2f2cf4e28bbff271b9a90915db5
-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
- Some of the paths were made only for ULTs
- Params like mappedPtr were ignored
- Improve confusing method names
- Fix for memory leak in map shared buffer path (not tested code)
Change-Id: I8a69035f1d1c340f2d131a6f8d7e13116e3ddabc
- Instruction heap is currently heavily used as every kernel copies ISA into
it.
- It dries out very fast and each change to new heap requires whole pipeline
drain that prevents concurrency
- Problem is even larger when sip kernel is used as it limits the total heap
size
- In order to maximize heap re-use and to limit the count of pipeline drains
this change introduces new minimal size for instruction heap 512 KB.
Change-Id: Ic54e9ef4448b1d35dab01b084ee1d59b509642cb
For the new Linux/Fedora configuration with introduction of gcc 7.2,
option -Wimplicit-fallthrough is implemented. This option requests a
warning if a switch case falls through into the next case. This was
causing build errors.
For C++17 (and g++ 7 regardless), standard attribute [[fallthrough]]
notifies the compiler that the fallthrough is intentional.
For clang++ 5 (with -std=c++11 or later) and g++ 7, built-in
preprocessor function __has_cpp_attribute(fallthrough) returns true.
Currently, msvc does not have __has_cpp_attribute.
Note: The use of __has_cpp_attribute has been proposed for c++2x and
is advocated by (81-char link broken in two to avoid 80 char hard limit):
https://isocpp.org/std/standing-documents/
sd-6-sg10-feature-test-recommendations
For gcc 7, a comment consisting of "FALLTHROUGH" will accomplish the
same thing with -Wimplicit-fallthrough=<n>, for n <= 4.
The diagnostic:
/opt/src/src/vpg-compute-neo/runtime/mem_obj/image.cpp:146:24: error:
this statement may fall through [-Werror=implicit-fallthrough=]
imageDepth = imageDesc->image_depth;
~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
/opt/src/src/vpg-compute-neo/runtime/mem_obj/image.cpp:148:9: note: here
case CL_MEM_OBJECT_IMAGE2D:
^~~~
Change-Id: I604700a23b09c8bf22baf5614700a8b76dbe4cdd
Signed-off-by: Dale Stimson <dale.b.stimson@intel.com>
- In various scenarios code was not programming the max heap size correctly
- It was possible for SSH to overcome the limit
- Size was programmed smaller then it really was, which resulted in smaller
reuse, which led to SBA reprogramming which led to lower performance in ooq
scenarios
- This change fixes the heap size programming by always utilizing full
allocation size and always limiting SSH at proper value
Change-Id: Ib703d2b0709ed8227a293def3a454bf1bb516dfd