Bindless addressing support for OCL

Related-To: NEO-4607

Change-Id: Iaf4a8d45f22d134366e398a196bdd8dc906ab6ab
Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
This commit is contained in:
Mateusz Hoppe
2020-04-21 22:40:21 +02:00
committed by sys_ocldev
parent e01b9e0c86
commit 6e79105466
23 changed files with 519 additions and 32 deletions

View File

@@ -70,6 +70,8 @@ set(NEO_CORE_HELPERS
${CMAKE_CURRENT_SOURCE_DIR}/simd_helper.h
${CMAKE_CURRENT_SOURCE_DIR}/state_base_address.h
${CMAKE_CURRENT_SOURCE_DIR}/state_base_address_base.inl
${CMAKE_CURRENT_SOURCE_DIR}/state_base_address_bdw.inl
${CMAKE_CURRENT_SOURCE_DIR}/state_base_address_skl_plus.inl
${CMAKE_CURRENT_SOURCE_DIR}/state_base_address_bdw_plus.inl
${CMAKE_CURRENT_SOURCE_DIR}/state_compute_mode_helper.h
${CMAKE_CURRENT_SOURCE_DIR}/stdio.h

View File

@@ -0,0 +1,22 @@
/*
* Copyright (C) 2020 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#include "shared/source/helpers/state_base_address.h"
namespace NEO {
template <typename GfxFamily>
void StateBaseAddressHelper<GfxFamily>::appendStateBaseAddressParameters(
STATE_BASE_ADDRESS *stateBaseAddress,
const IndirectHeap *ssh,
bool setGeneralStateBaseAddress,
uint64_t internalHeapBase,
GmmHelper *gmmHelper,
bool isMultiOsContextCapable) {
}
} // namespace NEO

View File

@@ -9,16 +9,6 @@
namespace NEO {
template <typename GfxFamily>
void StateBaseAddressHelper<GfxFamily>::appendStateBaseAddressParameters(
STATE_BASE_ADDRESS *stateBaseAddress,
const IndirectHeap *ssh,
bool setGeneralStateBaseAddress,
uint64_t internalHeapBase,
GmmHelper *gmmHelper,
bool isMultiOsContextCapable) {
}
template <typename GfxFamily>
void StateBaseAddressHelper<GfxFamily>::programBindingTableBaseAddress(LinearStream &commandStream, const IndirectHeap &ssh, GmmHelper *gmmHelper) {
}

View File

@@ -0,0 +1,29 @@
/*
* Copyright (C) 2020 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#include "shared/source/helpers/state_base_address.h"
namespace NEO {
template <typename GfxFamily>
void StateBaseAddressHelper<GfxFamily>::appendStateBaseAddressParameters(
STATE_BASE_ADDRESS *stateBaseAddress,
const IndirectHeap *ssh,
bool setGeneralStateBaseAddress,
uint64_t internalHeapBase,
GmmHelper *gmmHelper,
bool isMultiOsContextCapable) {
if (DebugManager.flags.UseBindlessBuffers.get() != 0 || DebugManager.flags.UseBindlessImages.get() != 0) {
stateBaseAddress->setBindlessSurfaceStateBaseAddressModifyEnable(true);
stateBaseAddress->setBindlessSurfaceStateBaseAddress(ssh->getHeapGpuBase());
uint32_t size = uint32_t(ssh->getMaxAvailableSpace() / 64) - 1;
stateBaseAddress->setBindlessSurfaceStateSize(size);
}
}
} // namespace NEO