From d86e94c2f42539646502e52bf12aab306a85b885 Mon Sep 17 00:00:00 2001 From: David Sodman Date: Tue, 5 Apr 2016 11:07:18 -0700 Subject: [PATCH] Add check for relationship between maxImageDimension2D/maxViewDimension/viewportBoundsRange Partial fix for Vulkan CTS issue _344 Change-Id: Ia1d31ec9f460341819567906ef548db1f94264fe --- .../modules/vulkan/api/vktApiFeatureInfo.cpp | 24 ++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp b/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp index e4d5da9..0106d2f 100644 --- a/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp +++ b/external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp @@ -423,6 +423,30 @@ bool validateFeatureLimits(VkPhysicalDeviceProperties* properties, VkPhysicalDev } } + for (deUint32 ndx = 0; ndx < DE_LENGTH_OF_ARRAY(limits->maxViewportDimensions); ndx++) + { + if (limits->maxImageDimension2D > limits->maxViewportDimensions[ndx]) + { + log << TestLog::Message << "limit validation failed, maxImageDimension2D of " << limits->maxImageDimension2D + << "is larger than maxViewportDimension[" << ndx << "] of " << limits->maxViewportDimensions[ndx] << TestLog::EndMessage; + limitsOk = false; + } + } + + if (limits->viewportBoundsRange[0] > -2 * limits->maxViewportDimensions[0]) + { + log << TestLog::Message << "limit validation failed, viewPortBoundsRange[0] of " << limits->viewportBoundsRange[0] + << "is larger than -2*maxViewportDimension[0] of " << -2*limits->maxViewportDimensions[0] << TestLog::EndMessage; + limitsOk = false; + } + + if (limits->viewportBoundsRange[1] < 2 * limits->maxViewportDimensions[1] - 1) + { + log << TestLog::Message << "limit validation failed, viewportBoundsRange[1] of " << limits->viewportBoundsRange[1] + << "is less than 2*maxViewportDimension[1] of " << 2*limits->maxViewportDimensions[1] << TestLog::EndMessage; + limitsOk = false; + } + return limitsOk; } -- 2.7.4