mirror of
https://github.com/intel/compute-runtime.git
synced 2025-09-10 12:53:42 +08:00
Propagate flush error to initializeDeviceWithFirstSubmission method
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:

committed by
Compute-Runtime-Automation

parent
5266a95c03
commit
dffe5fd604
@ -580,7 +580,7 @@ class CommandStreamReceiverMock : public CommandStreamReceiver {
|
||||
}
|
||||
|
||||
void postInitFlagsSetup() override {}
|
||||
void initializeDeviceWithFirstSubmission() override {}
|
||||
SubmissionStatus initializeDeviceWithFirstSubmission() override { return SubmissionStatus::SUCCESS; }
|
||||
|
||||
std::map<const void *, size_t> residency;
|
||||
std::unique_ptr<ExecutionEnvironment> mockExecutionEnvironment;
|
||||
|
@ -360,7 +360,7 @@ class CommandStreamReceiver {
|
||||
lastPreemptionMode = value;
|
||||
}
|
||||
|
||||
virtual void initializeDeviceWithFirstSubmission() = 0;
|
||||
virtual SubmissionStatus initializeDeviceWithFirstSubmission() = 0;
|
||||
|
||||
uint32_t getNumClients() {
|
||||
return this->numClients.load();
|
||||
|
@ -138,7 +138,7 @@ class CommandStreamReceiverHw : public CommandStreamReceiver {
|
||||
size_t getCmdsSizeForComputeBarrierCommand() const override {
|
||||
return getCmdSizeForStallingNoPostSyncCommands();
|
||||
}
|
||||
void initializeDeviceWithFirstSubmission() override;
|
||||
SubmissionStatus initializeDeviceWithFirstSubmission() override;
|
||||
|
||||
HeapDirtyState &getDshState() {
|
||||
return dshState;
|
||||
|
@ -1476,12 +1476,12 @@ void CommandStreamReceiverHw<GfxFamily>::createKernelArgsBufferAllocation() {
|
||||
}
|
||||
|
||||
template <typename GfxFamily>
|
||||
void CommandStreamReceiverHw<GfxFamily>::initializeDeviceWithFirstSubmission() {
|
||||
SubmissionStatus CommandStreamReceiverHw<GfxFamily>::initializeDeviceWithFirstSubmission() {
|
||||
auto lock = obtainUniqueOwnership();
|
||||
|
||||
auto &commandStream = getCS(EncodeBatchBufferStartOrEnd<GfxFamily>::getBatchBufferEndSize());
|
||||
auto commandStreamStart = commandStream.getUsed();
|
||||
this->flushSmallTask(commandStream, commandStreamStart);
|
||||
return this->flushSmallTask(commandStream, commandStreamStart);
|
||||
}
|
||||
|
||||
template <typename GfxFamily>
|
||||
|
@ -368,7 +368,9 @@ bool Device::createEngine(uint32_t deviceCsrIndex, EngineTypeUsage engineTypeUsa
|
||||
defaultEngineIndex = deviceCsrIndex;
|
||||
|
||||
if (osContext->isDebuggableContext()) {
|
||||
commandStreamReceiver->initializeDeviceWithFirstSubmission();
|
||||
if (SubmissionStatus::SUCCESS != commandStreamReceiver->initializeDeviceWithFirstSubmission()) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -173,7 +173,7 @@ class MockCommandStreamReceiver : public CommandStreamReceiver {
|
||||
}
|
||||
return isLocked;
|
||||
}
|
||||
void initializeDeviceWithFirstSubmission() override {}
|
||||
SubmissionStatus initializeDeviceWithFirstSubmission() override { return SubmissionStatus::SUCCESS; }
|
||||
|
||||
static constexpr size_t tagSize = 256;
|
||||
static volatile uint32_t mockTagAddress[tagSize];
|
||||
|
@ -2410,4 +2410,15 @@ HWTEST_F(CommandStreamReceiverHwTest, givenOutOfMemoryFailureOnFlushWhenFlushing
|
||||
|
||||
commandStreamReceiver.flushReturnValue = SubmissionStatus::OUT_OF_HOST_MEMORY;
|
||||
EXPECT_EQ(SubmissionStatus::OUT_OF_HOST_MEMORY, commandStreamReceiver.flushTagUpdate());
|
||||
}
|
||||
|
||||
HWTEST_F(CommandStreamReceiverHwTest, givenOutOfMemoryFailureOnFlushWhenInitializingDeviceWithFirstSubmissionThenErrorIsPropagated) {
|
||||
auto &commandStreamReceiver = pDevice->getUltCommandStreamReceiver<FamilyType>();
|
||||
|
||||
commandStreamReceiver.flushReturnValue = SubmissionStatus::OUT_OF_MEMORY;
|
||||
|
||||
EXPECT_EQ(SubmissionStatus::OUT_OF_MEMORY, commandStreamReceiver.initializeDeviceWithFirstSubmission());
|
||||
|
||||
commandStreamReceiver.flushReturnValue = SubmissionStatus::OUT_OF_HOST_MEMORY;
|
||||
EXPECT_EQ(SubmissionStatus::OUT_OF_HOST_MEMORY, commandStreamReceiver.initializeDeviceWithFirstSubmission());
|
||||
}
|
Reference in New Issue
Block a user