Use EventPoolSurfaceAddress arg instead of PatchToken

Use KernelDescriptor's deviceSideEnqueueEventPoolSurfaceAddress argument
instead of storign SPatchAllocateStatelessEventPoolSurface token in
KernelInfo's patchInfo.

Related-To: NEO-4729
Signed-off-by: Krystian Chmielewski <krystian.chmielewski@intel.com>
This commit is contained in:
Krystian Chmielewski
2021-02-23 10:55:12 +01:00
committed by Compute-Runtime-Automation
parent c44fff1379
commit 8e927b5484
13 changed files with 101 additions and 122 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2017-2020 Intel Corporation
* Copyright (C) 2017-2021 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
@@ -27,14 +27,10 @@ void Kernel::patchReflectionSurface(DeviceQueue *devQueue, PrintfHandler *printf
// clang-format off
uint64_t defaultQueueOffset = pBlockInfo->patchInfo.pAllocateStatelessDefaultDeviceQueueSurface ?
pBlockInfo->patchInfo.pAllocateStatelessDefaultDeviceQueueSurface->DataParamOffset : ReflectionSurfaceHelper::undefinedOffset;
uint64_t eventPoolOffset = pBlockInfo->patchInfo.pAllocateStatelessEventPoolSurface ?
pBlockInfo->patchInfo.pAllocateStatelessEventPoolSurface->DataParamOffset : ReflectionSurfaceHelper::undefinedOffset;
uint64_t deviceQueueOffset = ReflectionSurfaceHelper::undefinedOffset;
uint32_t defaultQueueSize = pBlockInfo->patchInfo.pAllocateStatelessDefaultDeviceQueueSurface ?
pBlockInfo->patchInfo.pAllocateStatelessDefaultDeviceQueueSurface->DataParamSize : 0;
uint32_t eventPoolSize = pBlockInfo->patchInfo.pAllocateStatelessEventPoolSurface ?
pBlockInfo->patchInfo.pAllocateStatelessEventPoolSurface->DataParamSize : 0;
uint32_t deviceQueueSize = 0;
uint64_t printfBufferOffset = pBlockInfo->patchInfo.pAllocateStatelessPrintfSurface ?
@@ -44,6 +40,14 @@ void Kernel::patchReflectionSurface(DeviceQueue *devQueue, PrintfHandler *printf
uint64_t printfGpuAddress = 0;
// clang-format on
uint64_t eventPoolOffset = ReflectionSurfaceHelper::undefinedOffset;
uint32_t eventPoolSize = 0U;
const auto &eventPoolSurfaceAddress = pBlockInfo->kernelDescriptor.payloadMappings.implicitArgs.deviceSideEnqueueEventPoolSurfaceAddress;
if (isValidOffset(eventPoolSurfaceAddress.stateless)) {
eventPoolOffset = eventPoolSurfaceAddress.stateless;
eventPoolSize = eventPoolSurfaceAddress.pointerSize;
}
uint64_t privateSurfaceOffset = ReflectionSurfaceHelper::undefinedOffset;
uint32_t privateSurfacePatchSize = 0;
uint64_t privateSurfaceGpuAddress = 0;