Related-To: NEO-14027
If buffer cpu copy is allowed, it means that whole
transfer can be done on cpu memcpy.
In that case, disable staging as it's less performant.
Signed-off-by: Szymon Morek <szymon.morek@intel.com>
Inheriting from NonCopyableOrMovableClass or NonCopyableClass
does not prevent derived classes from accidentally defining
their own copy or move constructors, violating the intended design.
This commit introduces two concepts:
- NonCopyableOrMovable
- NonCopyable
Using static asserts with these concepts will guarantee the intended
copy and move limitations.
Related-To: NEO-14068
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
Related-To: NEO-13574
User can read image with row pitch larger than region width.
In such cases, don't override memory which is out of region
but within row pitch.
Signed-off-by: Szymon Morek <szymon.morek@intel.com>
When is2MBLocalMemAlignmentEnabled() returns true,
increase device USM pool parameters:
- Pool size from 2MB to 16MB
- Max serviced size from 1MB to 2MB
Host USM pool parameters remain unchanged.
Related-To: NEO-12287
Signed-off-by: Fabian Zwoliński <fabian.zwolinski@intel.com>
Refactor buffer pool allocator to support configurable
SmallBuffersParams based on product helper capabilities.
This patch enables setting custom pool
parameters instead of using fixed static values.
For devices with 2MB local memory alignment enabled
(is2MBLocalMemAlignmentEnabled),
use larger pool configuration:
- Pool size: 16MB (up from 2MB)
- Threshold: 2MB (up from 1MB)
- Alignment: 64KB (unchanged)
- Starting offset: 64KB (unchanged)
This improves memory utilization for devices supporting larger memory
alignments
while maintaining original parameters for other devices.
Key changes:
- Moved params from static template to instance member
- Added SmallBuffersParams struct with default/large configs
- Added constructor and setter methods for params configuration
Related-To: NEO-12287
Signed-off-by: Fabian Zwoliński <fabian.zwolinski@intel.com>
Related-To: NEO-13529
Also, add size threshold on iGPU on Linux,
and disable staging if imported host ptr could
be reused
Signed-off-by: Szymon Morek <szymon.morek@intel.com>
Moved global functions to the ImageSurfaceStateHelper class,
with declarations in the header file and definitions in the base .inl
file.
This change reduces compilation time by:
- removing unnecessary includes from the header file
- adding explicit template instantiations, which are faster than
implicit template instantiations.
Additionally, the image_skl_and_later.inl file has been removed as it
is no longer needed, and its implementation has been moved to the base .inl
Related-To: NEO-12149
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
At the moment the capability is returned only based on the value
returned by the `productHelper`, which is too liberal. The capability
must also consider the support reported by `memoryManager`. Only then
the support reported is aligned with actual logic of handling
USM-allocations.
Related-To: NEO-10040
Signed-off-by: Maciej Bielski <maciej.bielski@intel.com>
mechanism for freeing allocations saved for reuse that have not been
used in a given time
Related-To: NEO-13425
Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>