Do not allocate dynamic state heap if not needed

Dynamic state heap is only used for sampler data.

Related-To: NEO-6821

Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
This commit is contained in:
Dominik Dabek
2022-03-28 12:55:12 +00:00
committed by Compute-Runtime-Automation
parent afd71beee9
commit 308f9ccfff
49 changed files with 639 additions and 530 deletions

View File

@@ -827,9 +827,9 @@ CompletionStamp CommandQueueHw<GfxFamily>::enqueueNonBlocked(
CompletionStamp completionStamp = getGpgpuCommandStreamReceiver().flushTask(
commandStream,
commandStreamStart,
*dsh,
*ioh,
getIndirectHeap(IndirectHeap::Type::SURFACE_STATE, 0u),
dsh,
ioh,
&getIndirectHeap(IndirectHeap::Type::SURFACE_STATE, 0u),
taskLevel,
dispatchFlags,
getDevice());
@@ -1035,9 +1035,9 @@ CompletionStamp CommandQueueHw<GfxFamily>::enqueueCommandWithoutKernel(
completionStamp = getGpgpuCommandStreamReceiver().flushTask(
*commandStream,
commandStreamStart,
getIndirectHeap(IndirectHeap::Type::DYNAMIC_STATE, 0u),
getIndirectHeap(IndirectHeap::Type::INDIRECT_OBJECT, 0u),
getIndirectHeap(IndirectHeap::Type::SURFACE_STATE, 0u),
&getIndirectHeap(IndirectHeap::Type::DYNAMIC_STATE, 0u),
&getIndirectHeap(IndirectHeap::Type::INDIRECT_OBJECT, 0u),
&getIndirectHeap(IndirectHeap::Type::SURFACE_STATE, 0u),
taskLevel,
dispatchFlags,
getDevice());

View File

@@ -90,9 +90,9 @@ CompletionStamp &CommandMapUnmap::submit(uint32_t taskLevel, bool terminated) {
completionStamp = commandStreamReceiver.flushTask(queueCommandStream,
offset,
commandQueue.getIndirectHeap(IndirectHeap::Type::DYNAMIC_STATE, 0u),
commandQueue.getIndirectHeap(IndirectHeap::Type::INDIRECT_OBJECT, 0u),
commandQueue.getIndirectHeap(IndirectHeap::Type::SURFACE_STATE, 0u),
&commandQueue.getIndirectHeap(IndirectHeap::Type::DYNAMIC_STATE, 0u),
&commandQueue.getIndirectHeap(IndirectHeap::Type::INDIRECT_OBJECT, 0u),
&commandQueue.getIndirectHeap(IndirectHeap::Type::SURFACE_STATE, 0u),
taskLevel,
dispatchFlags,
commandQueue.getDevice());
@@ -250,9 +250,9 @@ CompletionStamp &CommandComputeKernel::submit(uint32_t taskLevel, bool terminate
completionStamp = commandStreamReceiver.flushTask(*kernelOperation->commandStream,
0,
*dsh,
*ioh,
*ssh,
dsh,
ioh,
ssh,
taskLevel,
dispatchFlags,
commandQueue.getDevice());
@@ -389,9 +389,9 @@ CompletionStamp &CommandWithoutKernel::submit(uint32_t taskLevel, bool terminate
completionStamp = commandStreamReceiver.flushTask(*kernelOperation->commandStream,
0,
commandQueue.getIndirectHeap(IndirectHeap::Type::DYNAMIC_STATE, 0u),
commandQueue.getIndirectHeap(IndirectHeap::Type::INDIRECT_OBJECT, 0u),
commandQueue.getIndirectHeap(IndirectHeap::Type::SURFACE_STATE, 0u),
&commandQueue.getIndirectHeap(IndirectHeap::Type::DYNAMIC_STATE, 0u),
&commandQueue.getIndirectHeap(IndirectHeap::Type::INDIRECT_OBJECT, 0u),
&commandQueue.getIndirectHeap(IndirectHeap::Type::SURFACE_STATE, 0u),
taskLevel,
dispatchFlags,
commandQueue.getDevice());