From: Pyry Haulos Date: Tue, 18 Apr 2017 21:49:12 +0000 (-0700) Subject: VK_KHR_maintenance2: Tessellation domain origin X-Git-Tag: upstream/0.1.0~9^2~50 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;ds=sidebyside;h=07ca20740c08c56131a568bc803c208084d9dd5e;p=platform%2Fupstream%2FVK-GL-CTS.git VK_KHR_maintenance2: Tessellation domain origin This change extends existing dEQP-VK.tessellation.winding tests with variants that supply tessellation domain origin when creating the pipeline. Existing tests in the group have been moved under "default_domain" group. VK-GL-CTS issue: 127 Components: Vulkan Change-Id: Ib3ed3fd32dc66805d139db08a2c0546650d0de5f (cherry picked from commit 333b51b00a943447c0eb921f04b2804af428dfc9) --- diff --git a/android/cts/master/vk-master.txt b/android/cts/master/vk-master.txt index 6d7cca3..3157b26 100644 --- a/android/cts/master/vk-master.txt +++ b/android/cts/master/vk-master.txt @@ -196915,14 +196915,30 @@ dEQP-VK.tessellation.tesscoord.quads_fractional_even_spacing dEQP-VK.tessellation.tesscoord.isolines_equal_spacing dEQP-VK.tessellation.tesscoord.isolines_fractional_odd_spacing dEQP-VK.tessellation.tesscoord.isolines_fractional_even_spacing -dEQP-VK.tessellation.winding.triangles_ccw -dEQP-VK.tessellation.winding.triangles_ccw_yflip -dEQP-VK.tessellation.winding.triangles_cw -dEQP-VK.tessellation.winding.triangles_cw_yflip -dEQP-VK.tessellation.winding.quads_ccw -dEQP-VK.tessellation.winding.quads_ccw_yflip -dEQP-VK.tessellation.winding.quads_cw -dEQP-VK.tessellation.winding.quads_cw_yflip +dEQP-VK.tessellation.winding.default_domain.triangles_ccw +dEQP-VK.tessellation.winding.default_domain.triangles_ccw_yflip +dEQP-VK.tessellation.winding.default_domain.triangles_cw +dEQP-VK.tessellation.winding.default_domain.triangles_cw_yflip +dEQP-VK.tessellation.winding.default_domain.quads_ccw +dEQP-VK.tessellation.winding.default_domain.quads_ccw_yflip +dEQP-VK.tessellation.winding.default_domain.quads_cw +dEQP-VK.tessellation.winding.default_domain.quads_cw_yflip +dEQP-VK.tessellation.winding.lower_left_domain.triangles_ccw +dEQP-VK.tessellation.winding.lower_left_domain.triangles_ccw_yflip +dEQP-VK.tessellation.winding.lower_left_domain.triangles_cw +dEQP-VK.tessellation.winding.lower_left_domain.triangles_cw_yflip +dEQP-VK.tessellation.winding.lower_left_domain.quads_ccw +dEQP-VK.tessellation.winding.lower_left_domain.quads_ccw_yflip +dEQP-VK.tessellation.winding.lower_left_domain.quads_cw +dEQP-VK.tessellation.winding.lower_left_domain.quads_cw_yflip +dEQP-VK.tessellation.winding.upper_left_domain.triangles_ccw +dEQP-VK.tessellation.winding.upper_left_domain.triangles_ccw_yflip +dEQP-VK.tessellation.winding.upper_left_domain.triangles_cw +dEQP-VK.tessellation.winding.upper_left_domain.triangles_cw_yflip +dEQP-VK.tessellation.winding.upper_left_domain.quads_ccw +dEQP-VK.tessellation.winding.upper_left_domain.quads_ccw_yflip +dEQP-VK.tessellation.winding.upper_left_domain.quads_cw +dEQP-VK.tessellation.winding.upper_left_domain.quads_cw_yflip dEQP-VK.tessellation.shader_input_output.patch_vertices_5_in_10_out dEQP-VK.tessellation.shader_input_output.patch_vertices_10_in_5_out dEQP-VK.tessellation.shader_input_output.primitive_id_tcs diff --git a/external/vulkancts/modules/vulkan/tessellation/vktTessellationUtil.cpp b/external/vulkancts/modules/vulkan/tessellation/vktTessellationUtil.cpp index 84ebb4b..c2f70b4 100644 --- a/external/vulkancts/modules/vulkan/tessellation/vktTessellationUtil.cpp +++ b/external/vulkancts/modules/vulkan/tessellation/vktTessellationUtil.cpp @@ -591,10 +591,16 @@ Move GraphicsPipelineBuilder::build (const DeviceInterface& vk, VK_FALSE, // VkBool32 primitiveRestartEnable; }; + const VkPipelineTessellationDomainOriginStateCreateInfoKHR tessellationDomainOriginStateInfo = + { + VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR, + DE_NULL, + (!m_tessellationDomainOrigin ? VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR : *m_tessellationDomainOrigin) + }; const VkPipelineTessellationStateCreateInfo pipelineTessellationStateInfo = { VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO, // VkStructureType sType; - DE_NULL, // const void* pNext; + (!m_tessellationDomainOrigin ? DE_NULL : &tessellationDomainOriginStateInfo), (VkPipelineTessellationStateCreateFlags)0, // VkPipelineTessellationStateCreateFlags flags; m_patchControlPoints, // uint32_t patchControlPoints; }; diff --git a/external/vulkancts/modules/vulkan/tessellation/vktTessellationUtil.hpp b/external/vulkancts/modules/vulkan/tessellation/vktTessellationUtil.hpp index ce120fe..cfc443e 100644 --- a/external/vulkancts/modules/vulkan/tessellation/vktTessellationUtil.hpp +++ b/external/vulkancts/modules/vulkan/tessellation/vktTessellationUtil.hpp @@ -32,6 +32,7 @@ #include "vkQueryUtil.hpp" #include "tcuVector.hpp" +#include "tcuMaybe.hpp" #include "deStringUtil.hpp" @@ -102,13 +103,14 @@ private: class GraphicsPipelineBuilder { public: - GraphicsPipelineBuilder (void) : m_renderSize (0, 0) - , m_shaderStageFlags (0u) - , m_cullModeFlags (vk::VK_CULL_MODE_NONE) - , m_frontFace (vk::VK_FRONT_FACE_COUNTER_CLOCKWISE) - , m_patchControlPoints (1u) - , m_blendEnable (false) - , m_primitiveTopology (vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST) {} + GraphicsPipelineBuilder (void) : m_renderSize (0, 0) + , m_shaderStageFlags (0u) + , m_cullModeFlags (vk::VK_CULL_MODE_NONE) + , m_frontFace (vk::VK_FRONT_FACE_COUNTER_CLOCKWISE) + , m_patchControlPoints (1u) + , m_blendEnable (false) + , m_primitiveTopology (vk::VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST) + , m_tessellationDomainOrigin (tcu::nothing()) {} GraphicsPipelineBuilder& setRenderSize (const tcu::IVec2& size) { m_renderSize = size; return *this; } GraphicsPipelineBuilder& setShader (const vk::DeviceInterface& vk, const vk::VkDevice device, const vk::VkShaderStageFlagBits stage, const vk::ProgramBinary& binary, const vk::VkSpecializationInfo* specInfo); @@ -126,6 +128,10 @@ public: //! Basic vertex input configuration (uses biding 0, location 0, etc.) GraphicsPipelineBuilder& setVertexInputSingleAttribute (const vk::VkFormat vertexFormat, const deUint32 stride); + //! If tessellation domain origin is set, pipeline requires VK_KHR_maintenance2 + GraphicsPipelineBuilder& setTessellationDomainOrigin (const vk::VkTessellationDomainOriginKHR domainOrigin) { return setTessellationDomainOrigin(tcu::just(domainOrigin)); } + GraphicsPipelineBuilder& setTessellationDomainOrigin (const tcu::Maybe& domainOrigin) { m_tessellationDomainOrigin = domainOrigin; return *this; } + vk::Move build (const vk::DeviceInterface& vk, const vk::VkDevice device, const vk::VkPipelineLayout pipelineLayout, const vk::VkRenderPass renderPass); private: @@ -144,6 +150,7 @@ private: deUint32 m_patchControlPoints; bool m_blendEnable; vk::VkPrimitiveTopology m_primitiveTopology; + tcu::Maybe m_tessellationDomainOrigin; GraphicsPipelineBuilder (const GraphicsPipelineBuilder&); // "deleted" GraphicsPipelineBuilder& operator= (const GraphicsPipelineBuilder&); diff --git a/external/vulkancts/modules/vulkan/tessellation/vktTessellationWindingTests.cpp b/external/vulkancts/modules/vulkan/tessellation/vktTessellationWindingTests.cpp index 8d0f730..555832c 100644 --- a/external/vulkancts/modules/vulkan/tessellation/vktTessellationWindingTests.cpp +++ b/external/vulkancts/modules/vulkan/tessellation/vktTessellationWindingTests.cpp @@ -25,9 +25,11 @@ #include "vktTessellationWindingTests.hpp" #include "vktTestCaseUtil.hpp" #include "vktTessellationUtil.hpp" +#include "vktTestGroupUtil.hpp" #include "tcuTestLog.hpp" #include "tcuRGBA.hpp" +#include "tcuMaybe.hpp" #include "vkDefs.hpp" #include "vkQueryUtil.hpp" @@ -73,18 +75,22 @@ inline VkFrontFace mapFrontFace (const Winding winding) bool verifyResultImage (tcu::TestLog& log, const tcu::ConstPixelBufferAccess image, const TessPrimitiveType primitiveType, + const VkTessellationDomainOriginKHR domainOrigin, const Winding winding, bool yFlip, const Winding frontFaceWinding) { - const int totalNumPixels = image.getWidth()*image.getHeight(); - const int badPixelTolerance = (primitiveType == TESSPRIMITIVETYPE_TRIANGLES ? 5*de::max(image.getWidth(), image.getHeight()) : 0); + const bool expectVisiblePrimitive = ((frontFaceWinding == winding) == (domainOrigin == VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR)) != yFlip; - const tcu::Vec4 white = tcu::RGBA::white().toVec(); - const tcu::Vec4 red = tcu::RGBA::red().toVec(); + const int totalNumPixels = image.getWidth()*image.getHeight(); - int numWhitePixels = 0; - int numRedPixels = 0; + const tcu::Vec4 white = tcu::RGBA::white().toVec(); + const tcu::Vec4 red = tcu::RGBA::red().toVec(); + + int numWhitePixels = 0; + int numRedPixels = 0; + + // Count red and white pixels for (int y = 0; y < image.getHeight(); y++) for (int x = 0; x < image.getWidth(); x++) { @@ -96,19 +102,23 @@ bool verifyResultImage (tcu::TestLog& log, log << tcu::TestLog::Message << "Note: got " << numWhitePixels << " white and " << numRedPixels << " red pixels" << tcu::TestLog::EndMessage; - const int otherPixels = totalNumPixels - numWhitePixels - numRedPixels; - if (otherPixels > badPixelTolerance) { - log << tcu::TestLog::Message - << "Failure: Got " << otherPixels << " other than white or red pixels (maximum tolerance " << badPixelTolerance << ")" - << tcu::TestLog::EndMessage; - return false; + const int otherPixels = totalNumPixels - numWhitePixels - numRedPixels; + if (otherPixels > 0) + { + log << tcu::TestLog::Message + << "Failure: Got " << otherPixels << " other than white or red pixels" + << tcu::TestLog::EndMessage; + return false; + } } - if ((frontFaceWinding == winding) != yFlip) + if (expectVisiblePrimitive) { if (primitiveType == TESSPRIMITIVETYPE_TRIANGLES) { + const int badPixelTolerance = (primitiveType == TESSPRIMITIVETYPE_TRIANGLES ? 5*de::max(image.getWidth(), image.getHeight()) : 0); + if (de::abs(numWhitePixels - totalNumPixels/2) > badPixelTolerance) { log << tcu::TestLog::Message << "Failure: wrong number of white pixels; expected approximately " << totalNumPixels/2 << tcu::TestLog::EndMessage; @@ -173,11 +183,14 @@ bool verifyResultImage (tcu::TestLog& log, return true; } +typedef tcu::Maybe MaybeDomainOrigin; + class WindingTest : public TestCase { public: WindingTest (tcu::TestContext& testCtx, const TessPrimitiveType primitiveType, + const MaybeDomainOrigin& domainOrigin, const Winding winding, bool yFlip); @@ -186,16 +199,19 @@ public: private: const TessPrimitiveType m_primitiveType; + const MaybeDomainOrigin m_domainOrigin; const Winding m_winding; const bool m_yFlip; }; WindingTest::WindingTest (tcu::TestContext& testCtx, const TessPrimitiveType primitiveType, + const MaybeDomainOrigin& domainOrigin, const Winding winding, bool yFlip) : TestCase (testCtx, getCaseName(primitiveType, winding, yFlip), "") , m_primitiveType (primitiveType) + , m_domainOrigin (domainOrigin) , m_winding (winding) , m_yFlip (yFlip) { @@ -275,33 +291,47 @@ class WindingTestInstance : public TestInstance public: WindingTestInstance (Context& context, const TessPrimitiveType primitiveType, + const MaybeDomainOrigin& domainOrigin, const Winding winding, bool yFlip); tcu::TestStatus iterate (void); private: + void requireExtension (const char* name) const; + const TessPrimitiveType m_primitiveType; + const MaybeDomainOrigin m_domainOrigin; const Winding m_winding; const bool m_yFlip; }; WindingTestInstance::WindingTestInstance (Context& context, const TessPrimitiveType primitiveType, + const MaybeDomainOrigin& domainOrigin, const Winding winding, bool yFlip) : TestInstance (context) , m_primitiveType (primitiveType) + , m_domainOrigin (domainOrigin) , m_winding (winding) , m_yFlip (yFlip) { + if (m_yFlip) + requireExtension("VK_KHR_maintenance1"); + + if ((bool)m_domainOrigin) + requireExtension("VK_KHR_maintenance2"); } -tcu::TestStatus WindingTestInstance::iterate (void) +void WindingTestInstance::requireExtension (const char* name) const { - if (m_yFlip && !de::contains(m_context.getDeviceExtensions().begin(), m_context.getDeviceExtensions().end(), "VK_KHR_maintenance1")) - TCU_THROW(NotSupportedError, "Extension VK_KHR_maintenance1 not supported"); + if (!de::contains(m_context.getDeviceExtensions().begin(), m_context.getDeviceExtensions().end(), name)) + TCU_THROW(NotSupportedError, (std::string(name) + " is not supported").c_str()); +} +tcu::TestStatus WindingTestInstance::iterate (void) +{ const DeviceInterface& vk = m_context.getDeviceInterface(); const VkDevice device = m_context.getDevice(); const VkQueue queue = m_context.getUniversalQueue(); @@ -334,22 +364,24 @@ tcu::TestStatus WindingTestInstance::iterate (void) // Front face is static state, so we have to create two pipelines. const Unique pipelineCounterClockwise(GraphicsPipelineBuilder() - .setCullModeFlags(cullMode) - .setFrontFace (VK_FRONT_FACE_COUNTER_CLOCKWISE) - .setShader (vk, device, VK_SHADER_STAGE_VERTEX_BIT, m_context.getBinaryCollection().get("vert"), DE_NULL) - .setShader (vk, device, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, m_context.getBinaryCollection().get("tesc"), DE_NULL) - .setShader (vk, device, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, m_context.getBinaryCollection().get("tese"), DE_NULL) - .setShader (vk, device, VK_SHADER_STAGE_FRAGMENT_BIT, m_context.getBinaryCollection().get("frag"), DE_NULL) - .build (vk, device, *pipelineLayout, *renderPass)); + .setCullModeFlags (cullMode) + .setFrontFace (VK_FRONT_FACE_COUNTER_CLOCKWISE) + .setShader (vk, device, VK_SHADER_STAGE_VERTEX_BIT, m_context.getBinaryCollection().get("vert"), DE_NULL) + .setShader (vk, device, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, m_context.getBinaryCollection().get("tesc"), DE_NULL) + .setShader (vk, device, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, m_context.getBinaryCollection().get("tese"), DE_NULL) + .setShader (vk, device, VK_SHADER_STAGE_FRAGMENT_BIT, m_context.getBinaryCollection().get("frag"), DE_NULL) + .setTessellationDomainOrigin (m_domainOrigin) + .build (vk, device, *pipelineLayout, *renderPass)); const Unique pipelineClockwise(GraphicsPipelineBuilder() - .setCullModeFlags(cullMode) - .setFrontFace (VK_FRONT_FACE_CLOCKWISE) - .setShader (vk, device, VK_SHADER_STAGE_VERTEX_BIT, m_context.getBinaryCollection().get("vert"), DE_NULL) - .setShader (vk, device, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, m_context.getBinaryCollection().get("tesc"), DE_NULL) - .setShader (vk, device, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, m_context.getBinaryCollection().get("tese"), DE_NULL) - .setShader (vk, device, VK_SHADER_STAGE_FRAGMENT_BIT, m_context.getBinaryCollection().get("frag"), DE_NULL) - .build (vk, device, *pipelineLayout, *renderPass)); + .setCullModeFlags (cullMode) + .setFrontFace (VK_FRONT_FACE_CLOCKWISE) + .setShader (vk, device, VK_SHADER_STAGE_VERTEX_BIT, m_context.getBinaryCollection().get("vert"), DE_NULL) + .setShader (vk, device, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, m_context.getBinaryCollection().get("tesc"), DE_NULL) + .setShader (vk, device, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, m_context.getBinaryCollection().get("tese"), DE_NULL) + .setShader (vk, device, VK_SHADER_STAGE_FRAGMENT_BIT, m_context.getBinaryCollection().get("frag"), DE_NULL) + .setTessellationDomainOrigin (m_domainOrigin) + .build (vk, device, *pipelineLayout, *renderPass)); const struct // not static { @@ -464,7 +496,13 @@ tcu::TestStatus WindingTestInstance::iterate (void) log << tcu::TestLog::Image("color0", "Rendered image", imagePixelAccess); // Verify case result - success = success && verifyResultImage(log, imagePixelAccess, m_primitiveType, m_winding, m_yFlip, frontFaceWinding); + success = verifyResultImage(log, + imagePixelAccess, + m_primitiveType, + !m_domainOrigin ? VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR : *m_domainOrigin, + m_winding, + m_yFlip, + frontFaceWinding) && success; } } // for windingNdx @@ -475,16 +513,11 @@ TestInstance* WindingTest::createInstance (Context& context) const { requireFeatures(context.getInstanceInterface(), context.getPhysicalDevice(), FEATURE_TESSELLATION_SHADER); - return new WindingTestInstance(context, m_primitiveType, m_winding, m_yFlip); + return new WindingTestInstance(context, m_primitiveType, m_domainOrigin, m_winding, m_yFlip); } -} // anonymous - -//! These tests correspond to dEQP-GLES31.functional.tessellation.winding.* -tcu::TestCaseGroup* createWindingTests (tcu::TestContext& testCtx) +void populateWindingGroup (tcu::TestCaseGroup* group, tcu::Maybe domainOrigin) { - de::MovePtr group (new tcu::TestCaseGroup(testCtx, "winding", "Test the cw and ccw input layout qualifiers")); - static const TessPrimitiveType primitivesNoIsolines[] = { TESSPRIMITIVETYPE_TRIANGLES, @@ -494,9 +527,21 @@ tcu::TestCaseGroup* createWindingTests (tcu::TestContext& testCtx) for (int primitiveTypeNdx = 0; primitiveTypeNdx < DE_LENGTH_OF_ARRAY(primitivesNoIsolines); ++primitiveTypeNdx) for (int windingNdx = 0; windingNdx < WINDING_LAST; ++windingNdx) { - group->addChild(new WindingTest(testCtx, primitivesNoIsolines[primitiveTypeNdx], (Winding)windingNdx, false)); - group->addChild(new WindingTest(testCtx, primitivesNoIsolines[primitiveTypeNdx], (Winding)windingNdx, true)); + group->addChild(new WindingTest(group->getTestContext(), primitivesNoIsolines[primitiveTypeNdx], domainOrigin, (Winding)windingNdx, false)); + group->addChild(new WindingTest(group->getTestContext(), primitivesNoIsolines[primitiveTypeNdx], domainOrigin, (Winding)windingNdx, true)); } +} + +} // anonymous + +//! These tests correspond to dEQP-GLES31.functional.tessellation.winding.* +tcu::TestCaseGroup* createWindingTests (tcu::TestContext& testCtx) +{ + de::MovePtr group (new tcu::TestCaseGroup(testCtx, "winding", "Test the cw and ccw input layout qualifiers")); + + addTestGroup(group.get(), "default_domain", "No tessellation domain specified", populateWindingGroup, tcu::nothing()); + addTestGroup(group.get(), "lower_left_domain", "Lower left tessellation domain", populateWindingGroup, tcu::just(VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR)); + addTestGroup(group.get(), "upper_left_domain", "Upper left tessellation domain", populateWindingGroup, tcu::just(VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR)); return group.release(); } diff --git a/external/vulkancts/mustpass/1.0.1/src/master.txt b/external/vulkancts/mustpass/1.0.1/src/master.txt index 27c7868..dde68eb 100644 --- a/external/vulkancts/mustpass/1.0.1/src/master.txt +++ b/external/vulkancts/mustpass/1.0.1/src/master.txt @@ -108559,10 +108559,10 @@ dEQP-VK.tessellation.tesscoord.quads_fractional_even_spacing dEQP-VK.tessellation.tesscoord.isolines_equal_spacing dEQP-VK.tessellation.tesscoord.isolines_fractional_odd_spacing dEQP-VK.tessellation.tesscoord.isolines_fractional_even_spacing -dEQP-VK.tessellation.winding.triangles_ccw -dEQP-VK.tessellation.winding.triangles_cw -dEQP-VK.tessellation.winding.quads_ccw -dEQP-VK.tessellation.winding.quads_cw +dEQP-VK.tessellation.winding.default_domain.triangles_ccw +dEQP-VK.tessellation.winding.default_domain.triangles_cw +dEQP-VK.tessellation.winding.default_domain.quads_ccw +dEQP-VK.tessellation.winding.default_domain.quads_cw dEQP-VK.tessellation.shader_input_output.patch_vertices_5_in_10_out dEQP-VK.tessellation.shader_input_output.patch_vertices_10_in_5_out dEQP-VK.tessellation.shader_input_output.primitive_id_tcs diff --git a/external/vulkancts/mustpass/1.0.1/vk-default.txt b/external/vulkancts/mustpass/1.0.1/vk-default.txt index e00f93c..dd7742b 100644 --- a/external/vulkancts/mustpass/1.0.1/vk-default.txt +++ b/external/vulkancts/mustpass/1.0.1/vk-default.txt @@ -108559,10 +108559,10 @@ dEQP-VK.tessellation.tesscoord.quads_fractional_even_spacing dEQP-VK.tessellation.tesscoord.isolines_equal_spacing dEQP-VK.tessellation.tesscoord.isolines_fractional_odd_spacing dEQP-VK.tessellation.tesscoord.isolines_fractional_even_spacing -dEQP-VK.tessellation.winding.triangles_ccw -dEQP-VK.tessellation.winding.triangles_cw -dEQP-VK.tessellation.winding.quads_ccw -dEQP-VK.tessellation.winding.quads_cw +dEQP-VK.tessellation.winding.default_domain.triangles_ccw +dEQP-VK.tessellation.winding.default_domain.triangles_cw +dEQP-VK.tessellation.winding.default_domain.quads_ccw +dEQP-VK.tessellation.winding.default_domain.quads_cw dEQP-VK.tessellation.shader_input_output.patch_vertices_5_in_10_out dEQP-VK.tessellation.shader_input_output.patch_vertices_10_in_5_out dEQP-VK.tessellation.shader_input_output.primitive_id_tcs diff --git a/external/vulkancts/mustpass/1.0.2/vk-default.txt b/external/vulkancts/mustpass/1.0.2/vk-default.txt index 90ef627..cee992d 100644 --- a/external/vulkancts/mustpass/1.0.2/vk-default.txt +++ b/external/vulkancts/mustpass/1.0.2/vk-default.txt @@ -197193,14 +197193,30 @@ dEQP-VK.tessellation.tesscoord.quads_fractional_even_spacing dEQP-VK.tessellation.tesscoord.isolines_equal_spacing dEQP-VK.tessellation.tesscoord.isolines_fractional_odd_spacing dEQP-VK.tessellation.tesscoord.isolines_fractional_even_spacing -dEQP-VK.tessellation.winding.triangles_ccw -dEQP-VK.tessellation.winding.triangles_ccw_yflip -dEQP-VK.tessellation.winding.triangles_cw -dEQP-VK.tessellation.winding.triangles_cw_yflip -dEQP-VK.tessellation.winding.quads_ccw -dEQP-VK.tessellation.winding.quads_ccw_yflip -dEQP-VK.tessellation.winding.quads_cw -dEQP-VK.tessellation.winding.quads_cw_yflip +dEQP-VK.tessellation.winding.default_domain.triangles_ccw +dEQP-VK.tessellation.winding.default_domain.triangles_ccw_yflip +dEQP-VK.tessellation.winding.default_domain.triangles_cw +dEQP-VK.tessellation.winding.default_domain.triangles_cw_yflip +dEQP-VK.tessellation.winding.default_domain.quads_ccw +dEQP-VK.tessellation.winding.default_domain.quads_ccw_yflip +dEQP-VK.tessellation.winding.default_domain.quads_cw +dEQP-VK.tessellation.winding.default_domain.quads_cw_yflip +dEQP-VK.tessellation.winding.lower_left_domain.triangles_ccw +dEQP-VK.tessellation.winding.lower_left_domain.triangles_ccw_yflip +dEQP-VK.tessellation.winding.lower_left_domain.triangles_cw +dEQP-VK.tessellation.winding.lower_left_domain.triangles_cw_yflip +dEQP-VK.tessellation.winding.lower_left_domain.quads_ccw +dEQP-VK.tessellation.winding.lower_left_domain.quads_ccw_yflip +dEQP-VK.tessellation.winding.lower_left_domain.quads_cw +dEQP-VK.tessellation.winding.lower_left_domain.quads_cw_yflip +dEQP-VK.tessellation.winding.upper_left_domain.triangles_ccw +dEQP-VK.tessellation.winding.upper_left_domain.triangles_ccw_yflip +dEQP-VK.tessellation.winding.upper_left_domain.triangles_cw +dEQP-VK.tessellation.winding.upper_left_domain.triangles_cw_yflip +dEQP-VK.tessellation.winding.upper_left_domain.quads_ccw +dEQP-VK.tessellation.winding.upper_left_domain.quads_ccw_yflip +dEQP-VK.tessellation.winding.upper_left_domain.quads_cw +dEQP-VK.tessellation.winding.upper_left_domain.quads_cw_yflip dEQP-VK.tessellation.shader_input_output.patch_vertices_5_in_10_out dEQP-VK.tessellation.shader_input_output.patch_vertices_10_in_5_out dEQP-VK.tessellation.shader_input_output.primitive_id_tcs