+++ /dev/null
-#ifndef _VKTAMBERTESTCASEUTIL_HPP
-#define _VKTAMBERTESTCASEUTIL_HPP
-/*------------------------------------------------------------------------
- * Vulkan Conformance Tests
- * ------------------------
- *
- * Copyright (c) 2019 Google LLC
- * Copyright (c) 2019 The Khronos Group Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- *//*--------------------------------------------------------------------*/
-
-#include "vktTestGroupUtil.hpp"
-
-namespace vkt
-{
-namespace cts_amber
-{
-
-class AmberTestCase : public tcu::TestNode
-{
-};
-
-AmberTestCase* createAmberTestCase (tcu::TestContext& testCtx,
- const char* name,
- const char* description,
- const char* category,
- const std::string& filename,
- const std::vector<std::string> requirements = std::vector<std::string>());
-
-} // cts_amber
-} // vkt
-
-#endif // _VKTAMBERTESTCASEUTIL_HPP
* \brief Functional rasterization tests.
*//*--------------------------------------------------------------------*/
-#include "vktAmberTestCaseUtil.hpp"
+#include "vktTestGroupUtil.hpp"
+#include "vktAmberTestCase.hpp"
#include "vktRasterizationTests.hpp"
#include "tcuRasterizationVerifier.hpp"
#include "tcuSurface.hpp"
#include "deRandom.hpp"
#include "vktTestCase.hpp"
#include "vktTestCaseUtil.hpp"
-#include "vktTestGroupUtil.hpp"
#include "vkPrograms.hpp"
#include "vkMemUtil.hpp"
#include "vkRefUtil.hpp"
{
tcu::TestCaseGroup* const provokingVertex = new tcu::TestCaseGroup(testCtx, "provoking_vertex", "Test provoking vertex");
- const char* primitiveTypes[] =
- {
- "triangle_list",
- "triangle_list_with_adjacency",
- "triangle_strip",
- "triangle_strip_with_adjacency",
- "triangle_fan",
- "line_list",
- "line_list_with_adjacency",
- "line_strip",
- "line_strip_with_adjacency"
+ struct Params { const char *type; bool requireGeometryShader; };
+ Params primitiveTypes[] =
+ {
+ { "triangle_list", false },
+ { "triangle_list_with_adjacency", true },
+ { "triangle_strip", false },
+ { "triangle_strip_with_adjacency", true },
+ { "triangle_fan", false },
+ { "line_list", false },
+ { "line_list_with_adjacency", true },
+ { "line_strip", false },
+ { "line_strip_with_adjacency", true },
};
rasterizationTests->addChild(provokingVertex);
for (deUint32 primitiveTypeIdx = 0; primitiveTypeIdx < DE_LENGTH_OF_ARRAY(primitiveTypes); primitiveTypeIdx++)
{
- const char* type = primitiveTypes[primitiveTypeIdx];
- const std::string file = std::string(type) + ".amber";
+ Params & params = primitiveTypes[primitiveTypeIdx];
+ const std::string file = std::string(params.type) + ".amber";
- provokingVertex->addChild(cts_amber::createAmberTestCase(testCtx, type, "", "provoking_vertex", file));
+ cts_amber::AmberTestCase* testCase = cts_amber::createAmberTestCase(testCtx, params.type, "", "provoking_vertex", file);
+ if (params.requireGeometryShader)
+ {
+ testCase->addRequirement("Features.geometryShader");
+ }
+ provokingVertex->addChild(testCase);
}
}
}