Aux translation [3/n]: Dispatch AuxTranslation builtin when required

Change-Id: I9bd0294de7980ac01ebb3c2d696eba6fd6a456ec
This commit is contained in:
Dunajski, Bartosz
2018-08-11 18:12:28 +02:00
committed by sys_ocldev
parent 93c1a7b51b
commit 6ca84c278a
10 changed files with 115 additions and 37 deletions

View File

@@ -271,7 +271,7 @@ TEST_F(BuiltInTests, givenInputBufferWhenBuildingNonAuxDispatchInfoForAuxTransla
BuiltinDispatchInfoBuilder::BuiltinOpParams builtinOpsParams;
builtinOpsParams.buffersForAuxTranslation = &buffersForAuxTranslation;
builtinOpsParams.forceNonAuxMode = true;
builtinOpsParams.auxTranslationDirection = AuxTranslationDirection::AuxToNonAux;
for (auto &buffer : mockBuffer) {
buffersForAuxTranslation.insert(&buffer);
@@ -319,7 +319,7 @@ TEST_F(BuiltInTests, givenInputBufferWhenBuildingAuxDispatchInfoForAuxTranslatio
BuiltinDispatchInfoBuilder::BuiltinOpParams builtinOpsParams;
builtinOpsParams.buffersForAuxTranslation = &buffersForAuxTranslation;
builtinOpsParams.forceNonAuxMode = false;
builtinOpsParams.auxTranslationDirection = AuxTranslationDirection::NonAuxToAux;
for (auto &buffer : mockBuffer) {
buffersForAuxTranslation.insert(&buffer);
@@ -369,10 +369,10 @@ TEST_F(BuiltInTests, givenInputBufferWhenBuildingAuxTranslationDispatchThenPickD
buffersForAuxTranslation.insert(&buffer);
}
builtinOpsParams.forceNonAuxMode = true;
builtinOpsParams.auxTranslationDirection = AuxTranslationDirection::AuxToNonAux;
EXPECT_TRUE(builder.buildDispatchInfos(multiDispatchInfo, builtinOpsParams));
builtinOpsParams.forceNonAuxMode = false;
builtinOpsParams.auxTranslationDirection = AuxTranslationDirection::NonAuxToAux;
EXPECT_TRUE(builder.buildDispatchInfos(multiDispatchInfo, builtinOpsParams));
EXPECT_EQ(6u, multiDispatchInfo.size());
@@ -388,6 +388,22 @@ TEST_F(BuiltInTests, givenInputBufferWhenBuildingAuxTranslationDispatchThenPickD
EXPECT_NE(builtinKernels[2], builtinKernels[5]);
}
TEST_F(BuiltInTests, givenInvalidAuxTranslationDirectionWhenBuildingDispatchInfosThenAbort) {
BuiltinDispatchInfoBuilder &builder = pBuiltIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::AuxTranslation, *pContext, *pDevice);
BuffersForAuxTranslation buffersForAuxTranslation;
MockBuffer mockBuffer;
MultiDispatchInfo multiDispatchInfo;
BuiltinDispatchInfoBuilder::BuiltinOpParams builtinOpsParams;
builtinOpsParams.buffersForAuxTranslation = &buffersForAuxTranslation;
buffersForAuxTranslation.insert(&mockBuffer);
builtinOpsParams.auxTranslationDirection = AuxTranslationDirection::None;
EXPECT_THROW(builder.buildDispatchInfos(multiDispatchInfo, builtinOpsParams), std::exception);
}
template <typename Family>
class MockAuxBuilInOp : public BuiltInOp<Family, EBuiltInOps::AuxTranslation> {
public:
@@ -418,6 +434,7 @@ HWTEST_F(BuiltInTests, givenMoreBuffersForAuxTranslationThanKernelInstancesWhenD
MockBuffer mockBuffer[7];
builtinOpsParams.buffersForAuxTranslation = &buffersForAuxTranslation;
builtinOpsParams.auxTranslationDirection = AuxTranslationDirection::AuxToNonAux;
for (auto &buffer : mockBuffer) {
buffersForAuxTranslation.insert(&buffer);