=================================================================================================
| 87 | |
| 88 | // ================================================================================================= |
| 89 | address KernelParameters::alloc(device::VirtualDevice& vDev) { |
| 90 | //! Information about which arguments are SVM pointers is stored after |
| 91 | // the actual parameters, but only if the device has any SVM capability |
| 92 | const size_t execInfoSize = getNumberOfSvmPtr() * sizeof(void*); |
| 93 | |
| 94 | address mem = vDev.allocKernelArguments(totalSize_ + execInfoSize, 128); |
| 95 | if (mem == nullptr) { |
| 96 | mem = reinterpret_cast<address>( |
| 97 | AlignedMemory::allocate(totalSize_ + execInfoSize, PARAMETERS_MIN_ALIGNMENT)); |
| 98 | } else { |
| 99 | deviceKernelArgs_ = true; |
| 100 | } |
| 101 | |
| 102 | return mem; |
| 103 | } |
| 104 | |
| 105 | // ================================================================================================= |
| 106 | bool KernelParameters::captureAndSet(void** kernelParams, address kernArgs, size_t kernArgsSize, |
no test coverage detected