mirror of
https://github.com/intel/compute-runtime.git
synced 2025-09-15 13:01:45 +08:00
Zebin improvements
* cleaning-up per-thread buffer size calculations * fixing default slm alignment to 16 * adding scratch space slots * renaming slm addressing mode * adding support for zeinfo version Change-Id: I0450353788b8488a685976d7f1dd26a44360383c
This commit is contained in:

committed by
sys_ocldev

parent
20f4786423
commit
345e56a151
@ -10,6 +10,7 @@
|
||||
#include "shared/source/built_ins/built_ins.h"
|
||||
#include "shared/source/command_stream/command_stream_receiver.h"
|
||||
#include "shared/source/debug_settings/debug_settings_manager.h"
|
||||
#include "shared/source/device_binary_format/patchtokens_decoder.h"
|
||||
#include "shared/source/gmm_helper/gmm_helper.h"
|
||||
#include "shared/source/helpers/aligned_memory.h"
|
||||
#include "shared/source/helpers/api_specific_config.h"
|
||||
@ -271,13 +272,10 @@ cl_int Kernel::initialize() {
|
||||
localBindingTableOffset = (patchInfo.bindingTableState != nullptr) ? patchInfo.bindingTableState->Offset : 0;
|
||||
|
||||
// patch crossthread data and ssh with inline surfaces, if necessary
|
||||
auto perThreadPrivateMemorySize = patchInfo.pAllocateStatelessPrivateSurface
|
||||
? patchInfo.pAllocateStatelessPrivateSurface->PerThreadPrivateMemorySize
|
||||
: 0;
|
||||
auto perHwThreadPrivateMemorySize = PatchTokenBinary::getPerHwThreadPrivateSurfaceSize(patchInfo.pAllocateStatelessPrivateSurface, getKernelInfo().getMaxSimdSize());
|
||||
|
||||
if (perThreadPrivateMemorySize) {
|
||||
privateSurfaceSize = KernelHelper::getPrivateSurfaceSize(perThreadPrivateMemorySize, device.getSharedDeviceInfo().computeUnitsUsedForScratch,
|
||||
getKernelInfo().getMaxSimdSize(), patchInfo.pAllocateStatelessPrivateSurface->IsSimtThread);
|
||||
if (perHwThreadPrivateMemorySize) {
|
||||
privateSurfaceSize = KernelHelper::getPrivateSurfaceSize(perHwThreadPrivateMemorySize, device.getSharedDeviceInfo().computeUnitsUsedForScratch);
|
||||
|
||||
DEBUG_BREAK_IF(privateSurfaceSize == 0);
|
||||
if (privateSurfaceSize > std::numeric_limits<uint32_t>::max()) {
|
||||
|
Reference in New Issue
Block a user