mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-26 15:03:02 +08:00
fix: adjust interupt wait api expectations
Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
c982981dde
commit
b17fabb120
@@ -98,15 +98,16 @@ Event *Event::create(const EventDescriptor &eventDescriptor, const ze_event_desc
|
||||
|
||||
bool interruptMode = false;
|
||||
bool kmdWaitMode = false;
|
||||
bool externalInterruptWait = false;
|
||||
|
||||
if (extendedDesc && (extendedDesc->stype == ZEX_INTEL_STRUCTURE_TYPE_EVENT_SYNC_MODE_EXP_DESC)) {
|
||||
auto eventSyncModeDesc = reinterpret_cast<const zex_intel_event_sync_mode_exp_desc_t *>(extendedDesc);
|
||||
|
||||
interruptMode = (eventSyncModeDesc->syncModeFlags & ZEX_INTEL_EVENT_SYNC_MODE_EXP_FLAG_SIGNAL_INTERRUPT);
|
||||
kmdWaitMode = (eventSyncModeDesc->syncModeFlags & ZEX_INTEL_EVENT_SYNC_MODE_EXP_FLAG_LOW_POWER_WAIT);
|
||||
bool externalInterrupt = (eventSyncModeDesc->syncModeFlags & ZEX_INTEL_EVENT_SYNC_MODE_EXP_FLAG_EXTERNAL_INTERRUPT_WAIT);
|
||||
externalInterruptWait = (eventSyncModeDesc->syncModeFlags & ZEX_INTEL_EVENT_SYNC_MODE_EXP_FLAG_EXTERNAL_INTERRUPT_WAIT);
|
||||
|
||||
if (externalInterrupt) {
|
||||
if (externalInterruptWait) {
|
||||
event->setExternalInterruptId(eventSyncModeDesc->externalInterruptId);
|
||||
UNRECOVERABLE_IF(eventSyncModeDesc->externalInterruptId > 0 && eventDescriptor.eventPoolAllocation);
|
||||
}
|
||||
@@ -117,10 +118,10 @@ Event *Event::create(const EventDescriptor &eventDescriptor, const ze_event_desc
|
||||
|
||||
if (interruptMode) {
|
||||
event->enableInterruptMode();
|
||||
}
|
||||
|
||||
if (kmdWaitMode) {
|
||||
event->enableKmdWaitMode();
|
||||
}
|
||||
if (externalInterruptWait || (interruptMode && kmdWaitMode)) {
|
||||
event->enableKmdWaitMode();
|
||||
}
|
||||
|
||||
return event.release();
|
||||
|
||||
@@ -83,7 +83,7 @@ HWTEST2_F(InOrderCmdListTests, givenInvalidPnextStructWhenCreatingEventThenIgnor
|
||||
HWTEST2_F(InOrderCmdListTests, givenEventSyncModeDescPassedWhenCreatingEventThenEnableNewModes, MatchAny) {
|
||||
ze_event_pool_desc_t eventPoolDesc = {};
|
||||
eventPoolDesc.flags = ZE_EVENT_POOL_FLAG_HOST_VISIBLE;
|
||||
eventPoolDesc.count = 6;
|
||||
eventPoolDesc.count = 7;
|
||||
|
||||
auto eventPool = std::unique_ptr<L0::EventPool>(EventPool::create(driverHandle.get(), context, 0, nullptr, &eventPoolDesc, returnValue));
|
||||
|
||||
@@ -4518,10 +4518,17 @@ HWTEST2_F(InOrderCmdListTests, givenStandaloneCbEventWhenPassingExternalInterrup
|
||||
syncModeDesc.syncModeFlags = ZEX_INTEL_EVENT_SYNC_MODE_EXP_FLAG_SIGNAL_INTERRUPT;
|
||||
auto event1 = createStandaloneCbEvent(reinterpret_cast<const ze_base_desc_t *>(&syncModeDesc));
|
||||
EXPECT_EQ(NEO::InterruptId::notUsed, event1->externalInterruptId);
|
||||
EXPECT_FALSE(event1->isKmdWaitModeEnabled());
|
||||
|
||||
syncModeDesc.syncModeFlags = ZEX_INTEL_EVENT_SYNC_MODE_EXP_FLAG_EXTERNAL_INTERRUPT_WAIT;
|
||||
auto event2 = createStandaloneCbEvent(reinterpret_cast<const ze_base_desc_t *>(&syncModeDesc));
|
||||
EXPECT_EQ(syncModeDesc.externalInterruptId, event2->externalInterruptId);
|
||||
EXPECT_TRUE(event2->isKmdWaitModeEnabled());
|
||||
|
||||
syncModeDesc.syncModeFlags = ZEX_INTEL_EVENT_SYNC_MODE_EXP_FLAG_EXTERNAL_INTERRUPT_WAIT | ZEX_INTEL_EVENT_SYNC_MODE_EXP_FLAG_LOW_POWER_WAIT;
|
||||
auto event3 = createStandaloneCbEvent(reinterpret_cast<const ze_base_desc_t *>(&syncModeDesc));
|
||||
EXPECT_EQ(syncModeDesc.externalInterruptId, event3->externalInterruptId);
|
||||
EXPECT_TRUE(event3->isKmdWaitModeEnabled());
|
||||
}
|
||||
|
||||
HWTEST2_F(InOrderCmdListTests, givenStandaloneEventWhenCallingAppendThenSuccess, IsAtLeastXeHpCore) {
|
||||
|
||||
Reference in New Issue
Block a user