Pass Kernel to sendInterfaceDescriptorData()
Change-Id: Ie3617ccadf577d120e941416ecda55e1b60a78d2 Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
This commit is contained in:
parent
76638922bd
commit
2cb3be0b47
|
@ -44,6 +44,7 @@ struct HardwareCommandsHelper : public PerThreadDataHelper {
|
|||
|
||||
static void setAdditionalInfo(
|
||||
INTERFACE_DESCRIPTOR_DATA *pInterfaceDescriptor,
|
||||
const Kernel &kernel,
|
||||
const size_t &sizeCrossThreadData,
|
||||
const size_t &sizePerThreadData);
|
||||
|
||||
|
@ -59,9 +60,8 @@ struct HardwareCommandsHelper : public PerThreadDataHelper {
|
|||
size_t offsetSamplerState,
|
||||
uint32_t numSamplers,
|
||||
uint32_t threadsPerThreadGroup,
|
||||
uint32_t sizeSlm,
|
||||
const Kernel &kernel,
|
||||
uint32_t bindingTablePrefetchSize,
|
||||
bool barrierEnable,
|
||||
PreemptionMode preemptionMode,
|
||||
INTERFACE_DESCRIPTOR_DATA *inlineInterfaceDescriptor);
|
||||
|
||||
|
|
|
@ -131,9 +131,8 @@ size_t HardwareCommandsHelper<GfxFamily>::sendInterfaceDescriptorData(
|
|||
size_t offsetSamplerState,
|
||||
uint32_t numSamplers,
|
||||
uint32_t threadsPerThreadGroup,
|
||||
uint32_t sizeSlm,
|
||||
const Kernel &kernel,
|
||||
uint32_t bindingTablePrefetchSize,
|
||||
bool barrierEnable,
|
||||
PreemptionMode preemptionMode,
|
||||
INTERFACE_DESCRIPTOR_DATA *inlineInterfaceDescriptor) {
|
||||
using SAMPLER_STATE = typename GfxFamily::SAMPLER_STATE;
|
||||
|
@ -151,7 +150,7 @@ size_t HardwareCommandsHelper<GfxFamily>::sendInterfaceDescriptorData(
|
|||
|
||||
pInterfaceDescriptor->setDenormMode(INTERFACE_DESCRIPTOR_DATA::DENORM_MODE_SETBYKERNEL);
|
||||
|
||||
setAdditionalInfo(pInterfaceDescriptor, sizeCrossThreadData, sizePerThreadData);
|
||||
setAdditionalInfo(pInterfaceDescriptor, kernel, sizeCrossThreadData, sizePerThreadData);
|
||||
|
||||
pInterfaceDescriptor->setBindingTablePointer(static_cast<uint32_t>(bindingTablePointer));
|
||||
|
||||
|
@ -161,10 +160,10 @@ size_t HardwareCommandsHelper<GfxFamily>::sendInterfaceDescriptorData(
|
|||
auto samplerCountState = static_cast<typename INTERFACE_DESCRIPTOR_DATA::SAMPLER_COUNT>((numSamplers + 3) / 4);
|
||||
pInterfaceDescriptor->setSamplerCount(samplerCountState);
|
||||
|
||||
auto programmableIDSLMSize = static_cast<typename INTERFACE_DESCRIPTOR_DATA::SHARED_LOCAL_MEMORY_SIZE>(computeSlmValues(sizeSlm));
|
||||
auto programmableIDSLMSize = static_cast<typename INTERFACE_DESCRIPTOR_DATA::SHARED_LOCAL_MEMORY_SIZE>(computeSlmValues(kernel.slmTotalSize));
|
||||
|
||||
pInterfaceDescriptor->setSharedLocalMemorySize(programmableIDSLMSize);
|
||||
pInterfaceDescriptor->setBarrierEnable(barrierEnable);
|
||||
pInterfaceDescriptor->setBarrierEnable(!!kernel.getKernelInfo().patchInfo.executionEnvironment->HasBarriers);
|
||||
|
||||
PreemptionHelper::programInterfaceDescriptorDataPreemption<GfxFamily>(pInterfaceDescriptor, preemptionMode);
|
||||
|
||||
|
@ -337,9 +336,8 @@ size_t HardwareCommandsHelper<GfxFamily>::sendIndirectState(
|
|||
samplerStateOffset,
|
||||
samplerCount,
|
||||
threadsPerThreadGroup,
|
||||
kernel.slmTotalSize,
|
||||
kernel,
|
||||
bindingTablePrefetchSize,
|
||||
!!patchInfo.executionEnvironment->HasBarriers,
|
||||
preemptionMode,
|
||||
inlineInterfaceDescriptor);
|
||||
|
||||
|
|
|
@ -22,6 +22,7 @@ typename HardwareCommandsHelper<GfxFamily>::INTERFACE_DESCRIPTOR_DATA *HardwareC
|
|||
template <typename GfxFamily>
|
||||
void HardwareCommandsHelper<GfxFamily>::setAdditionalInfo(
|
||||
INTERFACE_DESCRIPTOR_DATA *pInterfaceDescriptor,
|
||||
const Kernel &kernel,
|
||||
const size_t &sizeCrossThreadData,
|
||||
const size_t &sizePerThreadData) {
|
||||
|
||||
|
|
|
@ -89,7 +89,7 @@ HWCMDTEST_F(IGFX_GEN8_CORE, HardwareCommandsTest, programInterfaceDescriptorData
|
|||
|
||||
size_t crossThreadDataSize = kernel->getCrossThreadDataSize();
|
||||
HardwareCommandsHelper<FamilyType>::sendInterfaceDescriptorData(
|
||||
indirectHeap, 0, 0, crossThreadDataSize, 64, 0, 0, 0, 1, 0 * KB, 0, false, pDevice->getPreemptionMode(), nullptr);
|
||||
indirectHeap, 0, 0, crossThreadDataSize, 64, 0, 0, 0, 1, *kernel, 0, pDevice->getPreemptionMode(), nullptr);
|
||||
|
||||
auto usedIndirectHeapAfter = indirectHeap.getUsed();
|
||||
EXPECT_EQ(sizeof(INTERFACE_DESCRIPTOR_DATA), usedIndirectHeapAfter - usedIndirectHeapBefore);
|
||||
|
|
|
@ -95,9 +95,8 @@ HWCMDTEST_P(IGFX_GEN8_CORE, KernelSLMAndBarrierTest, test_SLMProgramming) {
|
|||
0,
|
||||
0,
|
||||
1,
|
||||
kernelInfo.workloadInfo.slmStaticSize,
|
||||
kernel,
|
||||
4u,
|
||||
!!executionEnvironment.HasBarriers, // Barriers Enabled
|
||||
pDevice->getPreemptionMode(),
|
||||
nullptr);
|
||||
|
||||
|
|
Loading…
Reference in New Issue