X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=external%2Fvulkancts%2Fmodules%2Fvulkan%2Fwsi%2FvktWsiSurfaceTests.cpp;h=2501d3901e9160a08f8cadcf110a2622bea19c9c;hb=c8880acbecd98aa207676dd777f5b50724cfbec6;hp=aab4da21b0089289ca4f1c9cfbe282b79372d8e5;hpb=af3e986b0758524eb06eff05f882e5ef1c9220d6;p=platform%2Fupstream%2FVK-GL-CTS.git diff --git a/external/vulkancts/modules/vulkan/wsi/vktWsiSurfaceTests.cpp b/external/vulkancts/modules/vulkan/wsi/vktWsiSurfaceTests.cpp index aab4da2..2501d39 100644 --- a/external/vulkancts/modules/vulkan/wsi/vktWsiSurfaceTests.cpp +++ b/external/vulkancts/modules/vulkan/wsi/vktWsiSurfaceTests.cpp @@ -615,9 +615,26 @@ tcu::TestStatus querySurfaceFormatsTest (Context& context, Type wsiType) { if (isSupportedByAnyQueue(instHelper.vki, physicalDevices[deviceNdx], *surface)) { - const vector formats = getPhysicalDeviceSurfaceFormats(instHelper.vki, - physicalDevices[deviceNdx], - *surface); + deUint32 numFormats = 0; + + VK_CHECK(instHelper.vki.getPhysicalDeviceSurfaceFormatsKHR(physicalDevices[deviceNdx], *surface, &numFormats, DE_NULL)); + + std::vector formats (numFormats + 1); + + if (numFormats > 0) + { + const deUint32 numFormatsOrig = numFormats; + + // check if below call properly overwrites formats count + numFormats++; + + VK_CHECK(instHelper.vki.getPhysicalDeviceSurfaceFormatsKHR(physicalDevices[deviceNdx], *surface, &numFormats, &formats[0])); + + if (numFormats != numFormatsOrig) + results.fail("Format count changed between calls"); + } + + formats.pop_back(); log << TestLog::Message << "Device " << deviceNdx << ": " << tcu::formatArray(formats.begin(), formats.end()) << TestLog::EndMessage; @@ -662,7 +679,7 @@ tcu::TestStatus querySurfaceFormats2Test (Context& context, Type wsiType) if (numFormats > 0) { - vector formats (numFormats); + vector formats (numFormats + 1); for (size_t ndx = 0; ndx < formats.size(); ++ndx) { @@ -670,11 +687,18 @@ tcu::TestStatus querySurfaceFormats2Test (Context& context, Type wsiType) formats[ndx].pNext = DE_NULL; } + const deUint32 numFormatsOrig = numFormats; + + // check if below call properly overwrites formats count + numFormats++; + VK_CHECK(instHelper.vki.getPhysicalDeviceSurfaceFormats2KHR(physicalDevices[deviceNdx], &surfaceInfo, &numFormats, &formats[0])); - if ((size_t)numFormats != formats.size()) + if ((size_t)numFormats != numFormatsOrig) results.fail("Format count changed between calls"); + formats.pop_back(); + { vector extFormats (formats.size()); @@ -747,7 +771,26 @@ tcu::TestStatus querySurfacePresentModesTest (Context& context, Type wsiType) { if (isSupportedByAnyQueue(instHelper.vki, physicalDevices[deviceNdx], *surface)) { - const vector modes = getPhysicalDeviceSurfacePresentModes(instHelper.vki, physicalDevices[deviceNdx], *surface); + deUint32 numModes = 0; + + VK_CHECK(instHelper.vki.getPhysicalDeviceSurfacePresentModesKHR(physicalDevices[deviceNdx], *surface, &numModes, DE_NULL)); + + vector modes (numModes + 1); + + if (numModes > 0) + { + const deUint32 numModesOrig = numModes; + + // check if below call properly overwrites mode count + numModes++; + + VK_CHECK(instHelper.vki.getPhysicalDeviceSurfacePresentModesKHR(physicalDevices[deviceNdx], *surface, &numModes, &modes[0])); + + if ((size_t)numModes != numModesOrig) + TCU_FAIL("Mode count changed between calls"); + } + + modes.pop_back(); log << TestLog::Message << "Device " << deviceNdx << ": " << tcu::formatArray(modes.begin(), modes.end()) << TestLog::EndMessage;