Add wait mechanism to drm direct submission

Related-To: NEO-4338

Change-Id: Ibef00cb774fc0564f95b3b6ba8c0934798a5957e
Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
This commit is contained in:
Lukasz Jobczyk
2020-08-07 10:57:53 +02:00
committed by sys_ocldev
parent 321f649854
commit c2a4835943
8 changed files with 47 additions and 12 deletions

View File

@@ -461,7 +461,7 @@ HWTEST_F(DirectSubmissionDispatchBufferTest,
EXPECT_EQ(0x40u + 1u, storeData->getDataDword0());
uint64_t expectedGpuVa = directSubmission.semaphoreGpuVa;
auto semaphore = static_cast<RingSemaphoreData *>(directSubmission.semaphorePtr);
expectedGpuVa += ptrDiff(&semaphore->Reserved1Uint32, directSubmission.semaphorePtr);
expectedGpuVa += ptrDiff(&semaphore->Reserved4Uint32, directSubmission.semaphorePtr);
EXPECT_EQ(expectedGpuVa, storeData->getAddress());
}

View File

@@ -46,11 +46,13 @@ template <typename GfxFamily, typename Dispatcher>
struct MockDrmDirectSubmission : public DrmDirectSubmission<GfxFamily, Dispatcher> {
using BaseClass = DrmDirectSubmission<GfxFamily, Dispatcher>;
using BaseClass::allocateResources;
using BaseClass::currentTagData;
using BaseClass::DrmDirectSubmission;
using BaseClass::getTagAddressValue;
using BaseClass::handleResidency;
using BaseClass::submit;
using BaseClass::switchRingBuffers;
using BaseClass::tagAddress;
using BaseClass::updateTagValue;
};
@@ -74,8 +76,8 @@ HWTEST_F(DrmDirectSubmissionTest, givenDrmDirectSubmissionWhenCallingLinuxImplem
TagData tagData = {1ull, 1ull};
drmDirectSubmission.getTagAddressValue(tagData);
EXPECT_EQ(0ull, tagData.tagAddress);
EXPECT_EQ(0ull, tagData.tagValue);
EXPECT_EQ(drmDirectSubmission.currentTagData.tagAddress, tagData.tagAddress);
EXPECT_EQ(drmDirectSubmission.currentTagData.tagValue + 1, tagData.tagValue);
}
HWTEST_F(DrmDirectSubmissionTest, whenCreateDirectSubmissionThenValidObjectIsReturned) {