|
@@ -403,6 +403,18 @@ public:
|
|
|
TEST_METHOD_PROPERTY(L"DataSource", L"Table:ShaderOpArithTable.xml#DotOpTable")
|
|
|
END_TEST_METHOD()
|
|
|
|
|
|
+ BEGIN_TEST_METHOD(Dot2AddHalfTest)
|
|
|
+ TEST_METHOD_PROPERTY(L"DataSource", L"Table:ShaderOpArithTable.xml#Dot2AddHalfOpTable")
|
|
|
+ END_TEST_METHOD()
|
|
|
+
|
|
|
+ BEGIN_TEST_METHOD(Dot4AddI8PackedTest)
|
|
|
+ TEST_METHOD_PROPERTY(L"DataSource", L"Table:ShaderOpArithTable.xml#Dot4AddI8PackedOpTable")
|
|
|
+ END_TEST_METHOD()
|
|
|
+
|
|
|
+ BEGIN_TEST_METHOD(Dot4AddU8PackedTest)
|
|
|
+ TEST_METHOD_PROPERTY(L"DataSource", L"Table:ShaderOpArithTable.xml#Dot4AddU8PackedOpTable")
|
|
|
+ END_TEST_METHOD()
|
|
|
+
|
|
|
BEGIN_TEST_METHOD(Msad4Test)
|
|
|
TEST_METHOD_PROPERTY(L"DataSource", L"Table:ShaderOpArithTable.xml#Msad4Table")
|
|
|
END_TEST_METHOD()
|
|
@@ -521,11 +533,6 @@ public:
|
|
|
|
|
|
void RunBasicShaderModelTest(D3D_SHADER_MODEL shaderModel);
|
|
|
|
|
|
- void RunDotOp();
|
|
|
- void RunDot2AddOp();
|
|
|
- void RunDot4AddI8PackedOp();
|
|
|
- void RunDot4AddU8PackedOp();
|
|
|
-
|
|
|
enum class RawBufferLdStType {
|
|
|
I32,
|
|
|
Float,
|
|
@@ -2774,7 +2781,7 @@ struct Half2
|
|
|
explicit Half2(_In_reads_(2) const uint16_t *pArray) : x(pArray[0]), y(pArray[1]) {}
|
|
|
};
|
|
|
|
|
|
-struct SDot2AddOp {
|
|
|
+struct SDot2AddHalfOp {
|
|
|
Half2 input1;
|
|
|
Half2 input2;
|
|
|
float acc;
|
|
@@ -3163,45 +3170,45 @@ static TableParameter TertiaryUint16OpParameters[] = {
|
|
|
};
|
|
|
|
|
|
static TableParameter DotOpParameters[] = {
|
|
|
- { L"Dot.ShaderOp.Target", TableParameter::STRING, true },
|
|
|
- { L"Dot.ShaderOp.Text", TableParameter::STRING, true },
|
|
|
- { L"Dot.Validation.Input1", TableParameter::STRING_TABLE, true },
|
|
|
- { L"Dot.Validation.Input2", TableParameter::STRING_TABLE, true },
|
|
|
- { L"Dot.Validation.Expected1", TableParameter::STRING_TABLE, true },
|
|
|
- { L"Dot.Validation.Expected2", TableParameter::STRING_TABLE, true },
|
|
|
- { L"Dot.Validation.Expected3", TableParameter::STRING_TABLE, true },
|
|
|
- { L"Dot.Validation.Type", TableParameter::STRING, true },
|
|
|
- { L"Dot.Validation.Tolerance", TableParameter::DOUBLE, true },
|
|
|
+ { L"ShaderOp.Target", TableParameter::STRING, true },
|
|
|
+ { L"ShaderOp.Text", TableParameter::STRING, true },
|
|
|
+ { L"Validation.Input1", TableParameter::STRING_TABLE, true },
|
|
|
+ { L"Validation.Input2", TableParameter::STRING_TABLE, true },
|
|
|
+ { L"Validation.Expected1", TableParameter::STRING_TABLE, true },
|
|
|
+ { L"Validation.Expected2", TableParameter::STRING_TABLE, true },
|
|
|
+ { L"Validation.Expected3", TableParameter::STRING_TABLE, true },
|
|
|
+ { L"Validation.Type", TableParameter::STRING, true },
|
|
|
+ { L"Validation.Tolerance", TableParameter::DOUBLE, true },
|
|
|
};
|
|
|
|
|
|
-static TableParameter Dot2AddOpParameters[] = {
|
|
|
- { L"Dot2Add.ShaderOp.Target", TableParameter::STRING, true },
|
|
|
- { L"Dot2Add.ShaderOp.Text", TableParameter::STRING, true },
|
|
|
- { L"Dot2Add.ShaderOp.Arguments", TableParameter::STRING, true },
|
|
|
- { L"Dot2Add.Validation.Input1", TableParameter::STRING_TABLE, true },
|
|
|
- { L"Dot2Add.Validation.Input2", TableParameter::STRING_TABLE, true },
|
|
|
- { L"Dot2Add.Validation.Input3", TableParameter::FLOAT_TABLE, true },
|
|
|
- { L"Dot2Add.Validation.Expected1", TableParameter::FLOAT_TABLE, true },
|
|
|
- { L"Dot2Add.Validation.Type", TableParameter::STRING, true },
|
|
|
- { L"Dot2Add.Validation.Tolerance", TableParameter::DOUBLE, true },
|
|
|
+static TableParameter Dot2AddHalfOpParameters[] = {
|
|
|
+ { L"ShaderOp.Target", TableParameter::STRING, true },
|
|
|
+ { L"ShaderOp.Text", TableParameter::STRING, true },
|
|
|
+ { L"ShaderOp.Arguments", TableParameter::STRING, true },
|
|
|
+ { L"Validation.Input1", TableParameter::STRING_TABLE, true },
|
|
|
+ { L"Validation.Input2", TableParameter::STRING_TABLE, true },
|
|
|
+ { L"Validation.Input3", TableParameter::FLOAT_TABLE, true },
|
|
|
+ { L"Validation.Expected1", TableParameter::FLOAT_TABLE, true },
|
|
|
+ { L"Validation.Type", TableParameter::STRING, true },
|
|
|
+ { L"Validation.Tolerance", TableParameter::DOUBLE, true },
|
|
|
};
|
|
|
|
|
|
static TableParameter Dot4AddI8PackedOpParameters[] = {
|
|
|
- { L"Dot4AddI8Packed.ShaderOp.Target", TableParameter::STRING, true },
|
|
|
- { L"Dot4AddI8Packed.ShaderOp.Text", TableParameter::STRING, true },
|
|
|
- { L"Dot4AddI8Packed.Validation.Input1", TableParameter::UINT32_TABLE, true },
|
|
|
- { L"Dot4AddI8Packed.Validation.Input2", TableParameter::UINT32_TABLE, true },
|
|
|
- { L"Dot4AddI8Packed.Validation.Input3", TableParameter::INT32_TABLE, true },
|
|
|
- { L"Dot4AddI8Packed.Validation.Expected1", TableParameter::INT32_TABLE, true },
|
|
|
+ { L"ShaderOp.Target", TableParameter::STRING, true },
|
|
|
+ { L"ShaderOp.Text", TableParameter::STRING, true },
|
|
|
+ { L"Validation.Input1", TableParameter::UINT32_TABLE, true },
|
|
|
+ { L"Validation.Input2", TableParameter::UINT32_TABLE, true },
|
|
|
+ { L"Validation.Input3", TableParameter::INT32_TABLE, true },
|
|
|
+ { L"Validation.Expected1", TableParameter::INT32_TABLE, true },
|
|
|
};
|
|
|
|
|
|
static TableParameter Dot4AddU8PackedOpParameters[] = {
|
|
|
- { L"Dot4AddU8Packed.ShaderOp.Target", TableParameter::STRING, true },
|
|
|
- { L"Dot4AddU8Packed.ShaderOp.Text", TableParameter::STRING, true },
|
|
|
- { L"Dot4AddU8Packed.Validation.Input1", TableParameter::UINT32_TABLE, true },
|
|
|
- { L"Dot4AddU8Packed.Validation.Input2", TableParameter::UINT32_TABLE, true },
|
|
|
- { L"Dot4AddU8Packed.Validation.Input3", TableParameter::UINT32_TABLE, true },
|
|
|
- { L"Dot4AddU8Packed.Validation.Expected1", TableParameter::UINT32_TABLE, true },
|
|
|
+ { L"ShaderOp.Target", TableParameter::STRING, true },
|
|
|
+ { L"ShaderOp.Text", TableParameter::STRING, true },
|
|
|
+ { L"Validation.Input1", TableParameter::UINT32_TABLE, true },
|
|
|
+ { L"Validation.Input2", TableParameter::UINT32_TABLE, true },
|
|
|
+ { L"Validation.Input3", TableParameter::UINT32_TABLE, true },
|
|
|
+ { L"Validation.Expected1", TableParameter::UINT32_TABLE, true },
|
|
|
};
|
|
|
|
|
|
static TableParameter Msad4OpParameters[] = {
|
|
@@ -5064,18 +5071,7 @@ TEST_F(ExecutionTest, TertiaryUint16OpTest) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-// TODO: Split into 4 different tests after 19H1 when we're allowed to add new tests
|
|
|
TEST_F(ExecutionTest, DotTest) {
|
|
|
- RunDotOp();
|
|
|
- RunDot2AddOp();
|
|
|
- RunDot4AddI8PackedOp();
|
|
|
- RunDot4AddU8PackedOp();
|
|
|
-}
|
|
|
-
|
|
|
-// Helper for the Dot operator, which is part of DotTest
|
|
|
-void ExecutionTest::RunDotOp() {
|
|
|
- WEX::Logging::Log::Comment(L"\nRunning Dot Op tests:\n");
|
|
|
-
|
|
|
WEX::TestExecution::SetVerifyOutput verifySettings(
|
|
|
WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures);
|
|
|
CComPtr<IStream> pStream;
|
|
@@ -5089,22 +5085,22 @@ void ExecutionTest::RunDotOp() {
|
|
|
int tableSize = sizeof(DotOpParameters) / sizeof(TableParameter);
|
|
|
TableParameterHandler handler(DotOpParameters, tableSize);
|
|
|
|
|
|
- CW2A Target(handler.GetTableParamByName(L"Dot.ShaderOp.Target")->m_str);
|
|
|
- CW2A Text(handler.GetTableParamByName(L"Dot.ShaderOp.Text")->m_str);
|
|
|
+ CW2A Target(handler.GetTableParamByName(L"ShaderOp.Target")->m_str);
|
|
|
+ CW2A Text(handler.GetTableParamByName(L"ShaderOp.Text")->m_str);
|
|
|
|
|
|
std::vector<WEX::Common::String> *Validation_Input1 =
|
|
|
- &handler.GetTableParamByName(L"Dot.Validation.Input1")->m_StringTable;
|
|
|
+ &handler.GetTableParamByName(L"Validation.Input1")->m_StringTable;
|
|
|
std::vector<WEX::Common::String> *Validation_Input2 =
|
|
|
- &handler.GetTableParamByName(L"Dot.Validation.Input2")->m_StringTable;
|
|
|
+ &handler.GetTableParamByName(L"Validation.Input2")->m_StringTable;
|
|
|
std::vector<WEX::Common::String> *Validation_dot2 =
|
|
|
- &handler.GetTableParamByName(L"Dot.Validation.Expected1")->m_StringTable;
|
|
|
+ &handler.GetTableParamByName(L"Validation.Expected1")->m_StringTable;
|
|
|
std::vector<WEX::Common::String> *Validation_dot3 =
|
|
|
- &handler.GetTableParamByName(L"Dot.Validation.Expected2")->m_StringTable;
|
|
|
+ &handler.GetTableParamByName(L"Validation.Expected2")->m_StringTable;
|
|
|
std::vector<WEX::Common::String> *Validation_dot4 =
|
|
|
- &handler.GetTableParamByName(L"Dot.Validation.Expected3")->m_StringTable;
|
|
|
+ &handler.GetTableParamByName(L"Validation.Expected3")->m_StringTable;
|
|
|
|
|
|
- PCWSTR Validation_type = handler.GetTableParamByName(L"Dot.Validation.Type")->m_str;
|
|
|
- double tolerance = handler.GetTableParamByName(L"Dot.Validation.Tolerance")->m_double;
|
|
|
+ PCWSTR Validation_type = handler.GetTableParamByName(L"Validation.Type")->m_str;
|
|
|
+ double tolerance = handler.GetTableParamByName(L"Validation.Tolerance")->m_double;
|
|
|
size_t count = Validation_Input1->size();
|
|
|
|
|
|
std::shared_ptr<ShaderOpTestResult> test = RunShaderOpTest(
|
|
@@ -5158,10 +5154,7 @@ void ExecutionTest::RunDotOp() {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-// Helper for the Dot2Add operator, which is part of DotTest
|
|
|
-void ExecutionTest::RunDot2AddOp() {
|
|
|
- WEX::Logging::Log::Comment(L"\nRunning Dot2Add Op tests:\n");
|
|
|
-
|
|
|
+TEST_F(ExecutionTest, Dot2AddHalfTest) {
|
|
|
WEX::TestExecution::SetVerifyOutput verifySettings(
|
|
|
WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures);
|
|
|
CComPtr<IStream> pStream;
|
|
@@ -5174,40 +5167,39 @@ void ExecutionTest::RunDot2AddOp() {
|
|
|
|
|
|
if (!DoesDeviceSupportNative16bitOps(pDevice)) {
|
|
|
WEX::Logging::Log::Comment(L"Device does not support native 16-bit operations.");
|
|
|
- // Don't skip this test for now, otherwise the entire DotTest would be skipped
|
|
|
- // TODO: Skip the test once the Dot tests have been split in 4 different tests
|
|
|
+ WEX::Logging::Log::Result(WEX::Logging::TestResults::Skipped);
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- int tableSize = sizeof(Dot2AddOpParameters) / sizeof(TableParameter);
|
|
|
- TableParameterHandler handler(Dot2AddOpParameters, tableSize);
|
|
|
+ int tableSize = sizeof(Dot2AddHalfOpParameters) / sizeof(TableParameter);
|
|
|
+ TableParameterHandler handler(Dot2AddHalfOpParameters, tableSize);
|
|
|
|
|
|
- CW2A Target(handler.GetTableParamByName(L"Dot2Add.ShaderOp.Target")->m_str);
|
|
|
- CW2A Text(handler.GetTableParamByName(L"Dot2Add.ShaderOp.Text")->m_str);
|
|
|
- CW2A Arguments(handler.GetTableParamByName(L"Dot2Add.ShaderOp.Arguments")->m_str);
|
|
|
+ CW2A Target(handler.GetTableParamByName(L"ShaderOp.Target")->m_str);
|
|
|
+ CW2A Text(handler.GetTableParamByName(L"ShaderOp.Text")->m_str);
|
|
|
+ CW2A Arguments(handler.GetTableParamByName(L"ShaderOp.Arguments")->m_str);
|
|
|
|
|
|
std::vector<WEX::Common::String> *validation_input1 =
|
|
|
- &handler.GetTableParamByName(L"Dot2Add.Validation.Input1")->m_StringTable;
|
|
|
+ &handler.GetTableParamByName(L"Validation.Input1")->m_StringTable;
|
|
|
std::vector<WEX::Common::String> *validation_input2 =
|
|
|
- &handler.GetTableParamByName(L"Dot2Add.Validation.Input2")->m_StringTable;
|
|
|
- std::vector<float> *validation_acc = &handler.GetTableParamByName(L"Dot2Add.Validation.Input3")->m_floatTable;
|
|
|
- std::vector<float> *validation_result = &handler.GetTableParamByName(L"Dot2Add.Validation.Expected1")->m_floatTable;
|
|
|
+ &handler.GetTableParamByName(L"Validation.Input2")->m_StringTable;
|
|
|
+ std::vector<float> *validation_acc = &handler.GetTableParamByName(L"Validation.Input3")->m_floatTable;
|
|
|
+ std::vector<float> *validation_result = &handler.GetTableParamByName(L"Validation.Expected1")->m_floatTable;
|
|
|
|
|
|
- PCWSTR Validation_type = handler.GetTableParamByName(L"Dot2Add.Validation.Type")->m_str;
|
|
|
- double tolerance = handler.GetTableParamByName(L"Dot2Add.Validation.Tolerance")->m_double;
|
|
|
+ PCWSTR Validation_type = handler.GetTableParamByName(L"Validation.Type")->m_str;
|
|
|
+ double tolerance = handler.GetTableParamByName(L"Validation.Tolerance")->m_double;
|
|
|
size_t count = validation_input1->size();
|
|
|
|
|
|
std::shared_ptr<ShaderOpTestResult> test = RunShaderOpTest(
|
|
|
- pDevice, m_support, pStream, "Dot2AddOp",
|
|
|
+ pDevice, m_support, pStream, "Dot2AddHalfOp",
|
|
|
// this callback is called when the test
|
|
|
// is creating the resource to run the test
|
|
|
[&](LPCSTR Name, std::vector<BYTE> &Data, st::ShaderOp *pShaderOp) {
|
|
|
- VERIFY_IS_TRUE(0 == _stricmp(Name, "SDot2AddOp"));
|
|
|
- size_t size = sizeof(SDot2AddOp) * count;
|
|
|
+ VERIFY_IS_TRUE(0 == _stricmp(Name, "SDot2AddHalfOp"));
|
|
|
+ size_t size = sizeof(SDot2AddHalfOp) * count;
|
|
|
Data.resize(size);
|
|
|
- SDot2AddOp *pPrimitives = (SDot2AddOp*)Data.data();
|
|
|
+ SDot2AddHalfOp *pPrimitives = (SDot2AddHalfOp*)Data.data();
|
|
|
for (size_t i = 0; i < count; ++i) {
|
|
|
- SDot2AddOp *p = &pPrimitives[i];
|
|
|
+ SDot2AddHalfOp *p = &pPrimitives[i];
|
|
|
Half2 val1,val2;
|
|
|
VERIFY_SUCCEEDED(ParseDataToVectorHalf((*validation_input1)[i],
|
|
|
(uint16_t *)&val1, 2));
|
|
@@ -5224,12 +5216,12 @@ void ExecutionTest::RunDot2AddOp() {
|
|
|
});
|
|
|
|
|
|
MappedData data;
|
|
|
- test->Test->GetReadBackData("SDot2AddOp", &data);
|
|
|
+ test->Test->GetReadBackData("SDot2AddHalfOp", &data);
|
|
|
|
|
|
- SDot2AddOp *pPrimitives = (SDot2AddOp*)data.data();
|
|
|
+ SDot2AddHalfOp *pPrimitives = (SDot2AddHalfOp*)data.data();
|
|
|
WEX::TestExecution::DisableVerifyExceptions dve;
|
|
|
for (size_t i = 0; i < count; ++i) {
|
|
|
- SDot2AddOp *p = &pPrimitives[i];
|
|
|
+ SDot2AddHalfOp *p = &pPrimitives[i];
|
|
|
float expectedResult = (*validation_result)[i];
|
|
|
float input1x = ConvertFloat16ToFloat32(p->input1.x);
|
|
|
float input1y = ConvertFloat16ToFloat32(p->input1.y);
|
|
@@ -5243,10 +5235,7 @@ void ExecutionTest::RunDot2AddOp() {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-// Helper for the Dot4AddI8Packed operator, which is part of DotTest
|
|
|
-void ExecutionTest::RunDot4AddI8PackedOp() {
|
|
|
- WEX::Logging::Log::Comment(L"\nRunning Dot4AddI8Packed Op tests:\n");
|
|
|
-
|
|
|
+TEST_F(ExecutionTest, Dot4AddI8PackedTest) {
|
|
|
WEX::TestExecution::SetVerifyOutput verifySettings(
|
|
|
WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures);
|
|
|
CComPtr<IStream> pStream;
|
|
@@ -5260,13 +5249,13 @@ void ExecutionTest::RunDot4AddI8PackedOp() {
|
|
|
int tableSize = sizeof(Dot4AddI8PackedOpParameters) / sizeof(TableParameter);
|
|
|
TableParameterHandler handler(Dot4AddI8PackedOpParameters, tableSize);
|
|
|
|
|
|
- CW2A Target(handler.GetTableParamByName(L"Dot4AddI8Packed.ShaderOp.Target")->m_str);
|
|
|
- CW2A Text(handler.GetTableParamByName(L"Dot4AddI8Packed.ShaderOp.Text")->m_str);
|
|
|
+ CW2A Target(handler.GetTableParamByName(L"ShaderOp.Target")->m_str);
|
|
|
+ CW2A Text(handler.GetTableParamByName(L"ShaderOp.Text")->m_str);
|
|
|
|
|
|
- std::vector<uint32_t> *validation_input1 = &handler.GetTableParamByName(L"Dot4AddI8Packed.Validation.Input1")->m_uint32Table;
|
|
|
- std::vector<uint32_t> *validation_input2 = &handler.GetTableParamByName(L"Dot4AddI8Packed.Validation.Input2")->m_uint32Table;
|
|
|
- std::vector<int32_t> *validation_acc = &handler.GetTableParamByName(L"Dot4AddI8Packed.Validation.Input3")->m_int32Table;
|
|
|
- std::vector<int32_t> *validation_result = &handler.GetTableParamByName(L"Dot4AddI8Packed.Validation.Expected1")->m_int32Table;
|
|
|
+ std::vector<uint32_t> *validation_input1 = &handler.GetTableParamByName(L"Validation.Input1")->m_uint32Table;
|
|
|
+ std::vector<uint32_t> *validation_input2 = &handler.GetTableParamByName(L"Validation.Input2")->m_uint32Table;
|
|
|
+ std::vector<int32_t> *validation_acc = &handler.GetTableParamByName(L"Validation.Input3")->m_int32Table;
|
|
|
+ std::vector<int32_t> *validation_result = &handler.GetTableParamByName(L"Validation.Expected1")->m_int32Table;
|
|
|
|
|
|
size_t count = validation_input1->size();
|
|
|
|
|
@@ -5306,10 +5295,7 @@ void ExecutionTest::RunDot4AddI8PackedOp() {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-// Helper for the Dot4AddU8Packed operator, which is part of DotTest
|
|
|
-void ExecutionTest::RunDot4AddU8PackedOp() {
|
|
|
- WEX::Logging::Log::Comment(L"\nRunning Dot4AddU8Packed Op tests\n");
|
|
|
-
|
|
|
+TEST_F(ExecutionTest, Dot4AddU8PackedTest) {
|
|
|
WEX::TestExecution::SetVerifyOutput verifySettings(
|
|
|
WEX::TestExecution::VerifyOutputSettings::LogOnlyFailures);
|
|
|
CComPtr<IStream> pStream;
|
|
@@ -5323,13 +5309,13 @@ void ExecutionTest::RunDot4AddU8PackedOp() {
|
|
|
int tableSize = sizeof(Dot4AddU8PackedOpParameters) / sizeof(TableParameter);
|
|
|
TableParameterHandler handler(Dot4AddU8PackedOpParameters, tableSize);
|
|
|
|
|
|
- CW2A Target(handler.GetTableParamByName(L"Dot4AddU8Packed.ShaderOp.Target")->m_str);
|
|
|
- CW2A Text(handler.GetTableParamByName(L"Dot4AddU8Packed.ShaderOp.Text")->m_str);
|
|
|
+ CW2A Target(handler.GetTableParamByName(L"ShaderOp.Target")->m_str);
|
|
|
+ CW2A Text(handler.GetTableParamByName(L"ShaderOp.Text")->m_str);
|
|
|
|
|
|
- std::vector<uint32_t> *validation_input1 = &handler.GetTableParamByName(L"Dot4AddU8Packed.Validation.Input1")->m_uint32Table;
|
|
|
- std::vector<uint32_t> *validation_input2 = &handler.GetTableParamByName(L"Dot4AddU8Packed.Validation.Input2")->m_uint32Table;
|
|
|
- std::vector<uint32_t> *validation_acc = &handler.GetTableParamByName(L"Dot4AddU8Packed.Validation.Input3")->m_uint32Table;
|
|
|
- std::vector<uint32_t> *validation_result = &handler.GetTableParamByName(L"Dot4AddU8Packed.Validation.Expected1")->m_uint32Table;
|
|
|
+ std::vector<uint32_t> *validation_input1 = &handler.GetTableParamByName(L"Validation.Input1")->m_uint32Table;
|
|
|
+ std::vector<uint32_t> *validation_input2 = &handler.GetTableParamByName(L"Validation.Input2")->m_uint32Table;
|
|
|
+ std::vector<uint32_t> *validation_acc = &handler.GetTableParamByName(L"Validation.Input3")->m_uint32Table;
|
|
|
+ std::vector<uint32_t> *validation_result = &handler.GetTableParamByName(L"Validation.Expected1")->m_uint32Table;
|
|
|
|
|
|
size_t count = validation_input1->size();
|
|
|
|