- add support for contect group with HP copy engine
- choose HP copy engine when available
Related-To: NEO-11983
Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
Add explicit pointer checks to CommandQueue::blitEnqueueAllowed.
Explicitly check result of getDeviceArgValueIdx during ocloc compile.
Explicitly remove unused StagingBufferManager functions.
Move chunkCopyFunc by reference.
Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
- add support for contect group with HP copy engine
- choose HP copy engine when available
Related-To: NEO-11983
Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
Finish cache flushes before exiting api call if releasing displayable
ogl object or dcflush is mitigated.
Related-To: NEO-11694
Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
New query option
ocloc query SUPPORTED_DEVICE
allows to generate a YAML file containing
information about supported devices for:
- the current version of ocloc on Windows
- the current and previous versions of ocloc on Linux
Each version of ocloc build needs to set
NEO_OCLOC_CURRENT_LIB_NAME
NEO_OCLOC_FORMER_LIB_NAME
cmake defines for the ocloc to be able to
find a previous lib and query its supported devices.
Example of correct format:
NEO_OCLOC_FORMER_LIB_NAME=libocloc-1.0.so
NEO_OCLOC_CURRENT_LIB_NAME=libocloc-2.0.so
Related-To: NEO-9630
Signed-off-by: Fabian Zwoliński <fabian.zwolinski@intel.com>
Related-To: GSD-9385
In case of indirect allocations, we don't really know
their task count because we can't track their true usage
on GPU.
In case of non-blocking free, don't wait for latestSentTaskCount.
Signed-off-by: Szymon Morek <szymon.morek@intel.com>
Related-To: NEO-11928
Don't copy through staging buffer if dst usm allocation
was not used before and transfer would be splitted.
Also, don't use staging buffers for mapped ocl buffers.
Signed-off-by: Szymon Morek <szymon.morek@intel.com>
Calling virtual functions from within constructors is incorrect, the
virtualization mechanism does not work until a constructor completes.
So, instead of performing many operations in constructors, make them
small and use static `create()` methods to construct the object properly
and only then perform additional setup.
Mocks are a prominent example how such practice degrades the code.
A function called from a constructor is basically unmockable. Despite
being overriden by derived type (to alter the execution path as per
needs of a given test-case) the parent versions are always called.
This was making test development more and more painful as at some point
there is no hack to compensate for the lack of standard mechanism.
Related-To: NEO-9754
Signed-off-by: Maciej Bielski <maciej.bielski@intel.com>
Related-To: NEO-11501
Don't emit barrier if non-usm copy through staging
buffers with OOQ and single transfer was issued.
No need to send barrier if there was single transfer -
there's nothing to aggregate
Signed-off-by: Szymon Morek <szymon.morek@intel.com>
In a scenario where fp64 emulation is both supported and enabled,
we want to include 2 additional extensions:
- cl_khr_fp64 to deviceExtensions
- __opencl_c_fp64 to openclCFeatures (OpenCL ver. 3.0)
Related-To: NEO-7611
Signed-off-by: Oskar Hubert Weber <oskar.hubert.weber@intel.com>