mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-20 00:24:58 +08:00
feature: Add programExceptions stub to CSR
Related-to: NEO-12967 Signed-off-by: Brandon Yates <brandon.yates@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
94c6bd9382
commit
a48d66ad75
@@ -673,6 +673,7 @@ class CommandStreamReceiver : NEO::NonCopyableAndNonMovableClass {
|
|||||||
bool isPreambleSent = false;
|
bool isPreambleSent = false;
|
||||||
bool isStateSipSent = false;
|
bool isStateSipSent = false;
|
||||||
bool isEnginePrologueSent = false;
|
bool isEnginePrologueSent = false;
|
||||||
|
bool areExceptionsSent = false;
|
||||||
bool isPerDssBackedBufferSent = false;
|
bool isPerDssBackedBufferSent = false;
|
||||||
bool gsbaFor32BitProgrammed = false;
|
bool gsbaFor32BitProgrammed = false;
|
||||||
bool gsbaStateDirty = true;
|
bool gsbaStateDirty = true;
|
||||||
|
|||||||
@@ -224,6 +224,8 @@ class CommandStreamReceiverHw : public CommandStreamReceiver {
|
|||||||
|
|
||||||
void programEnginePrologue(LinearStream &csr);
|
void programEnginePrologue(LinearStream &csr);
|
||||||
size_t getCmdSizeForPrologue() const;
|
size_t getCmdSizeForPrologue() const;
|
||||||
|
void programExceptions(LinearStream &csr, Device &device);
|
||||||
|
size_t getCmdSizeForExceptions() const;
|
||||||
size_t getCmdSizeForHeaplessPrologue(Device &device) const;
|
size_t getCmdSizeForHeaplessPrologue(Device &device) const;
|
||||||
void handleAllocationsResidencyForHeaplessProlog(LinearStream &linearStream, Device &device);
|
void handleAllocationsResidencyForHeaplessProlog(LinearStream &linearStream, Device &device);
|
||||||
|
|
||||||
|
|||||||
@@ -1382,6 +1382,15 @@ inline size_t CommandStreamReceiverHw<GfxFamily>::getCmdSizeForPrologue() const
|
|||||||
return 0u;
|
return 0u;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <typename GfxFamily>
|
||||||
|
void CommandStreamReceiverHw<GfxFamily>::programExceptions(LinearStream &csr, Device &device) {
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename GfxFamily>
|
||||||
|
size_t CommandStreamReceiverHw<GfxFamily>::getCmdSizeForExceptions() const {
|
||||||
|
return 0u;
|
||||||
|
}
|
||||||
|
|
||||||
template <typename GfxFamily>
|
template <typename GfxFamily>
|
||||||
inline void CommandStreamReceiverHw<GfxFamily>::stopDirectSubmission(bool blocking, bool needsLock) {
|
inline void CommandStreamReceiverHw<GfxFamily>::stopDirectSubmission(bool blocking, bool needsLock) {
|
||||||
if (this->isAnyDirectSubmissionEnabled()) {
|
if (this->isAnyDirectSubmissionEnabled()) {
|
||||||
@@ -2105,6 +2114,7 @@ void CommandStreamReceiverHw<GfxFamily>::handleImmediateFlushOneTimeContextInitS
|
|||||||
flushData.contextOneTimeInit = true;
|
flushData.contextOneTimeInit = true;
|
||||||
flushData.estimatedSize += PreemptionHelper::getRequiredPreambleSize<GfxFamily>(device);
|
flushData.estimatedSize += PreemptionHelper::getRequiredPreambleSize<GfxFamily>(device);
|
||||||
}
|
}
|
||||||
|
flushData.estimatedSize += this->getCmdSizeForExceptions();
|
||||||
} else if (this->getPreemptionMode() == PreemptionMode::Initial) {
|
} else if (this->getPreemptionMode() == PreemptionMode::Initial) {
|
||||||
flushData.contextOneTimeInit = true;
|
flushData.contextOneTimeInit = true;
|
||||||
flushData.estimatedSize += PreemptionHelper::getRequiredCmdStreamSize<GfxFamily>(device.getPreemptionMode(), this->getPreemptionMode());
|
flushData.estimatedSize += PreemptionHelper::getRequiredCmdStreamSize<GfxFamily>(device.getPreemptionMode(), this->getPreemptionMode());
|
||||||
@@ -2137,6 +2147,7 @@ void CommandStreamReceiverHw<GfxFamily>::dispatchImmediateFlushOneTimeContextIni
|
|||||||
device,
|
device,
|
||||||
device.getDebugSurface());
|
device.getDebugSurface());
|
||||||
this->setCsrSurfaceProgrammed(true);
|
this->setCsrSurfaceProgrammed(true);
|
||||||
|
this->programExceptions(csrStream, device);
|
||||||
} else if (this->getPreemptionMode() == PreemptionMode::Initial) {
|
} else if (this->getPreemptionMode() == PreemptionMode::Initial) {
|
||||||
PreemptionHelper::programCmdStream<GfxFamily>(csrStream, device.getPreemptionMode(), this->getPreemptionMode(), this->getPreemptionAllocation());
|
PreemptionHelper::programCmdStream<GfxFamily>(csrStream, device.getPreemptionMode(), this->getPreemptionMode(), this->getPreemptionAllocation());
|
||||||
PreemptionHelper::programCsrBaseAddress<GfxFamily>(csrStream,
|
PreemptionHelper::programCsrBaseAddress<GfxFamily>(csrStream,
|
||||||
|
|||||||
@@ -61,6 +61,7 @@ class UltCommandStreamReceiver : public CommandStreamReceiverHw<GfxFamily> {
|
|||||||
using BaseClass::dcFlushSupport;
|
using BaseClass::dcFlushSupport;
|
||||||
using BaseClass::directSubmission;
|
using BaseClass::directSubmission;
|
||||||
using BaseClass::dshState;
|
using BaseClass::dshState;
|
||||||
|
using BaseClass::getCmdSizeForExceptions;
|
||||||
using BaseClass::getCmdSizeForHeaplessPrologue;
|
using BaseClass::getCmdSizeForHeaplessPrologue;
|
||||||
using BaseClass::getCmdSizeForPrologue;
|
using BaseClass::getCmdSizeForPrologue;
|
||||||
using BaseClass::getScratchPatchAddress;
|
using BaseClass::getScratchPatchAddress;
|
||||||
@@ -84,6 +85,7 @@ class UltCommandStreamReceiver : public CommandStreamReceiverHw<GfxFamily> {
|
|||||||
using BaseClass::primaryCsr;
|
using BaseClass::primaryCsr;
|
||||||
using BaseClass::programActivePartitionConfig;
|
using BaseClass::programActivePartitionConfig;
|
||||||
using BaseClass::programEnginePrologue;
|
using BaseClass::programEnginePrologue;
|
||||||
|
using BaseClass::programExceptions;
|
||||||
using BaseClass::programPerDssBackedBuffer;
|
using BaseClass::programPerDssBackedBuffer;
|
||||||
using BaseClass::programPreamble;
|
using BaseClass::programPreamble;
|
||||||
using BaseClass::programStallingCommandsForBarrier;
|
using BaseClass::programStallingCommandsForBarrier;
|
||||||
@@ -99,6 +101,7 @@ class UltCommandStreamReceiver : public CommandStreamReceiverHw<GfxFamily> {
|
|||||||
using BaseClass::wasSubmittedToSingleSubdevice;
|
using BaseClass::wasSubmittedToSingleSubdevice;
|
||||||
using BaseClass::CommandStreamReceiver::activePartitions;
|
using BaseClass::CommandStreamReceiver::activePartitions;
|
||||||
using BaseClass::CommandStreamReceiver::activePartitionsConfig;
|
using BaseClass::CommandStreamReceiver::activePartitionsConfig;
|
||||||
|
using BaseClass::CommandStreamReceiver::areExceptionsSent;
|
||||||
using BaseClass::CommandStreamReceiver::baseWaitFunction;
|
using BaseClass::CommandStreamReceiver::baseWaitFunction;
|
||||||
using BaseClass::CommandStreamReceiver::bindingTableBaseAddressRequired;
|
using BaseClass::CommandStreamReceiver::bindingTableBaseAddressRequired;
|
||||||
using BaseClass::CommandStreamReceiver::checkForNewResources;
|
using BaseClass::CommandStreamReceiver::checkForNewResources;
|
||||||
|
|||||||
Reference in New Issue
Block a user