When header is included for the first time in translation unit,
then preprocessor simply copy-pastes its content. If we define a
constant in a header file and this constant has internal linkage
then each and every translation unit, which includes this header
will have its own copy of this constant.
C++17 introduces inline variables, which are meant to allow creation
of variables in header files, which do not cause multiple instances.
The inline variable has a single instance when:
- constexpr is used without static (constexpr implicitly implies inline)
- inline is used without static
- inline const is used without static (const does not imply internal linkage
when used with inline)
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
Allow pausing execution before and after enqueuing kernel
using the PauseOnEnqueue and PauseOnGpuMode debug flags.
Related-To: NEO-6570
Signed-off-by: Naklicki, Mateusz <mateusz.naklicki@intel.com>
With compiler LSC WAs this gives better performance.
If debugger is active, policy will not be changed ie.
will be WBP.
Related-To: NEO-7003
Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
Do not use aligned size when storing allocation
Trim allocation cache before deleting devices
Related-To: NEO-6893
Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
We have to always generate module create/destroy events to give
debugger a chance to insert bp, read/write debuggee memory etc
even there is no debug data was generated. In this case ELF will not be
reported to debugger, just ISA GpuVA
Related-To: NEO-6723
Signed-off-by: Igor Venevtsev <igor.venevtsev@intel.com>
This change is a baseline for tight control over
when dispatch pipeline state commands and which
pipeline state properties can be changed for a
given hardware platform
Related-To: NEO-5019
Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
This change removes unneeded recalculation of hash as well
as redundant calls to std::to_string().
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
This change removes manual memory management via new/delete
and replaces it with std::unique_ptr.
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
The mentioned function allocates and copies elements
of size 1. Therefore, the implementation was simplified
and additional check was added to avoid possible UBs.
Signed-off-by: Wrobel, Patryk <patryk.wrobel@intel.com>
Introduce debug variable to control which engines
the tranfser will be split into
Related-To: NEO-7173
Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
Set missing pointer size for argument type buffer address in zebin.
This PR is related to test failures after merging corresponding IGC
change.
Related-To: IGC-5486
Signed-off-by: Kacper Nowak <kacper.nowak@intel.com>
This change introduces capability to set surface state base address
when surface state heap or global base address are not available
Related-To: NEO-7187
Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
- preserve original stdout and restore in signal handler what is needed
if stdout capture was enabled by GTest framework
- print information about time elapsed on SIGALRM
Signed-off-by: Artur Harasimiuk <artur.harasimiuk@intel.com>
Respect debug flag ForceAllResourcesUncached even when
Override L1 Policy flags are also set
Related-To: NEO-7003
Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
Command lists and their helper classes should use engine group type
assigned to the particular command list to check if it is RCS group
and not use default CSR class assigned to the device, since default
and current in command list might be different.
Related-To: NEO-5019
Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
This change:
- prevents writing memory out of the range of the destination buffer
- prevents calling strlen() with non-null terminated c-string
- corrects the logic, which validates passed range to proceed
when real length fits the destination buffer
Related-To: NEO-7264
Signed-off-by: Wrobel, Patryk <patryk.wrobel@intel.com>