Lines Matching defs:params
1250 TestParams params);
1265 CopyImageToImage::CopyImageToImage (Context& context, TestParams params)
1266 : CopiesAndBlittingTestInstance(context, params)
1272 if (params.queueSelection == QueueSelectionOptions::TransferOnly)
1606 const TestParams params)
1608 , m_params (params)
1706 TestParams params);
1721 CopyImageToImageMipmap::CopyImageToImageMipmap (Context& context, TestParams params)
1722 : CopiesAndBlittingTestInstance(context, params)
1728 if (params.queueSelection == QueueSelectionOptions::TransferOnly)
1741 params.mipLevels, // deUint32 mipLevels;
1768 params.mipLevels, // deUint32 mipLevels;
2076 const TestParams params)
2078 , m_params (params)
2168 CopyBufferToBuffer (Context& context, TestParams params);
2178 CopyBufferToBuffer::CopyBufferToBuffer (Context& context, TestParams params)
2179 : CopiesAndBlittingTestInstance (context, params)
2185 if (params.queueSelection == QueueSelectionOptions::TransferOnly)
2336 const TestParams params)
2338 , m_params (params)
2549 const TestParams params)
2551 , m_params (params)
2820 const TestParams params)
2822 , m_params (params)
3037 const TestParams params)
3039 , m_params (params)
3455 const TestParams params)
3457 , m_params(params)
3597 TestParams params);
3637 BlittingImages::BlittingImages (Context& context, TestParams params)
3638 : CopiesAndBlittingTestInstance(context, params)
5045 const TestParams params)
5047 , m_params (params)
5130 TestParams params);
5148 BlittingMipmaps::BlittingMipmaps (Context& context, TestParams params)
5149 : CopiesAndBlittingTestInstance (context, params)
5796 const TestParams params)
5798 , m_params (params)
5902 TestParams params,
5953 ResolveImageToImage::ResolveImageToImage (Context& context, TestParams params, const ResolveImageToImageOptions options)
5954 : CopiesAndBlittingTestInstance (context, params)
7410 const TestParams params,
7413 , m_params (params)
7647 // params.src.image is the parameters used to create the copy source image
7655 // params.src.image is the parameters used to create the copy destination image
8731 tcu::TestStatus bufferOffsetTest (Context& ctx, BufferOffsetParams params)
8738 DE_ASSERT(params.srcOffset < kMaxOffset);
8739 DE_ASSERT(params.dstOffset < kMaxOffset);
8774 const auto bufferCopy = makeBufferCopy(params.srcOffset + blockStart, params.dstOffset + blockStart, copySize);
8800 checkZerosAt(dstData, blockStart, params.dstOffset);
8805 const auto& dstVal = dstData[blockStart + params.dstOffset + i];
8806 const auto& srcVal = srcData[blockStart + params.srcOffset + i];
8810 msg << "Unexpected value found at position " << (blockStart + params.dstOffset + i) << ": expected " << static_cast<int>(srcVal) << " but found " << static_cast<int>(dstVal);
8816 checkZerosAt(dstData, blockStart + params.dstOffset + copySize, kBlockSize - (params.dstOffset + copySize));
8861 TestParams params;
8862 params.src.image.imageType = VK_IMAGE_TYPE_2D;
8863 params.src.image.format = VK_FORMAT_R8G8B8A8_UINT;
8864 params.src.image.extent = defaultExtent;
8865 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
8866 params.src.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
8867 params.dst.image.imageType = VK_IMAGE_TYPE_2D;
8868 params.dst.image.format = VK_FORMAT_R8G8B8A8_UINT;
8869 params.dst.image.extent = defaultExtent;
8870 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
8871 params.dst.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
8872 params.allocationKind = testGroupParams->allocationKind;
8873 params.extensionFlags = testGroupParams->extensionFlags;
8874 params.queueSelection = testGroupParams->queueSelection;
8888 params.regions.push_back(imageCopy);
8891 group->addChild(new CopyImageToImageTestCase(testCtx, "whole_image", params));
8895 TestParams params;
8896 params.src.image.imageType = VK_IMAGE_TYPE_2D;
8897 params.src.image.format = VK_FORMAT_R8G8B8A8_UINT;
8898 params.src.image.extent = defaultExtent;
8899 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
8900 params.src.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
8901 params.dst.image.imageType = VK_IMAGE_TYPE_2D;
8902 params.dst.image.format = VK_FORMAT_R32_UINT;
8903 params.dst.image.extent = defaultExtent;
8904 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
8905 params.dst.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
8906 params.allocationKind = testGroupParams->allocationKind;
8907 params.extensionFlags = testGroupParams->extensionFlags;
8908 params.queueSelection = testGroupParams->queueSelection;
8922 params.regions.push_back(imageCopy);
8925 group->addChild(new CopyImageToImageTestCase(testCtx, "whole_image_diff_format", params));
8929 TestParams params;
8930 params.src.image.imageType = VK_IMAGE_TYPE_2D;
8931 params.src.image.format = VK_FORMAT_R8G8B8A8_UINT;
8932 params.src.image.extent = defaultExtent;
8933 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
8934 params.src.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
8935 params.dst.image.imageType = VK_IMAGE_TYPE_2D;
8936 params.dst.image.format = VK_FORMAT_R8G8B8A8_UINT;
8937 params.dst.image.extent = defaultExtent;
8938 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
8939 params.dst.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
8940 params.allocationKind = testGroupParams->allocationKind;
8941 params.extensionFlags = testGroupParams->extensionFlags;
8942 params.queueSelection = testGroupParams->queueSelection;
8956 params.regions.push_back(imageCopy);
8959 group->addChild(new CopyImageToImageTestCase(testCtx, "partial_image", params));
9000 TestParams params;
9001 params.src.image.imageType = VK_IMAGE_TYPE_2D;
9002 params.src.image.format = format.format1;
9003 params.src.image.extent = extent.extent;
9004 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
9005 params.src.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
9006 params.dst.image.imageType = VK_IMAGE_TYPE_2D;
9007 params.dst.image.format = format.format2;
9008 params.dst.image.extent = extent.extent;
9009 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
9010 params.dst.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
9011 params.allocationKind = testGroupParams->allocationKind;
9012 params.extensionFlags = testGroupParams->extensionFlags;
9013 params.queueSelection = testGroupParams->queueSelection;
9014 params.clearDestinationWithRed = clear.clear;
9034 params.regions.push_back(imageCopy);
9040 group->addChild(new CopyImageToImageTestCase(testCtx, testCaseName, params));
9046 TestParams params;
9047 params.src.image.imageType = VK_IMAGE_TYPE_2D;
9048 params.src.image.format = VK_FORMAT_D32_SFLOAT;
9049 params.src.image.extent = defaultExtent;
9050 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
9051 params.src.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
9052 params.dst.image.imageType = VK_IMAGE_TYPE_2D;
9053 params.dst.image.format = VK_FORMAT_D32_SFLOAT;
9054 params.dst.image.extent = defaultExtent;
9055 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
9056 params.dst.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
9057 params.allocationKind = testGroupParams->allocationKind;
9058 params.extensionFlags = testGroupParams->extensionFlags;
9059 params.queueSelection = testGroupParams->queueSelection;
9080 params.regions.push_back(imageCopy);
9083 group->addChild(new CopyImageToImageTestCase(testCtx, "depth", params));
9087 TestParams params;
9088 params.src.image.imageType = VK_IMAGE_TYPE_2D;
9089 params.src.image.format = VK_FORMAT_S8_UINT;
9090 params.src.image.extent = defaultExtent;
9091 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
9092 params.src.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
9093 params.dst.image.imageType = VK_IMAGE_TYPE_2D;
9094 params.dst.image.format = VK_FORMAT_S8_UINT;
9095 params.dst.image.extent = defaultExtent;
9096 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
9097 params.dst.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
9098 params.allocationKind = testGroupParams->allocationKind;
9099 params.extensionFlags = testGroupParams->extensionFlags;
9100 params.queueSelection = testGroupParams->queueSelection;
9121 params.regions.push_back(imageCopy);
9124 group->addChild(new CopyImageToImageTestCase(testCtx, "stencil", params));
9130 TestParams params;
9134 void addImageToImageAllFormatsColorSrcFormatDstFormatTests (tcu::TestCaseGroup* group, TestParams params)
9149 params.src.image.operationLayout = copySrcLayouts[srcLayoutNdx];
9153 params.dst.image.operationLayout = copyDstLayouts[dstLayoutNdx];
9155 const std::string testName = getImageLayoutCaseName(params.src.image.operationLayout) + "_" +
9156 getImageLayoutCaseName(params.dst.image.operationLayout);
9157 const std::string description = "From layout " + getImageLayoutCaseName(params.src.image.operationLayout) +
9158 " to " + getImageLayoutCaseName(params.dst.image.operationLayout);
9159 group->addChild(new CopyImageToImageTestCase(group->getTestContext(), testName, params));
9168 if (testParams.params.allocationKind == ALLOCATION_KIND_DEDICATED)
9173 de::contains(dedicatedAllocationImageToImageFormatsToTestSet, testParams.params.dst.image.format) ||
9174 de::contains(dedicatedAllocationImageToImageFormatsToTestSet, testParams.params.src.image.format);
9183 const VkFormat srcFormatOnly[2] = { testParams.params.src.image.format, VK_FORMAT_UNDEFINED };
9188 testParams.params.dst.image.format = formatList[dstFormatIndex];
9190 const VkFormat srcFormat = testParams.params.src.image.format;
9191 const VkFormat dstFormat = testParams.params.dst.image.format;
9204 addTestGroup(group, getFormatCaseName(dstFormat), addImageToImageAllFormatsColorSrcFormatDstFormatTests, testParams.params);
9749 TestParams params;
9750 params.src.image.imageType = VK_IMAGE_TYPE_1D;
9751 params.dst.image.imageType = VK_IMAGE_TYPE_1D;
9752 params.src.image.extent = default1dExtent;
9753 params.dst.image.extent = default1dExtent;
9754 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
9755 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
9756 params.src.image.fillMode = FILL_MODE_WHITE;
9757 params.dst.image.fillMode = FILL_MODE_GRADIENT;
9758 params.allocationKind = testGroupParams->allocationKind;
9759 params.extensionFlags = testGroupParams->extensionFlags;
9760 params.queueSelection = testGroupParams->queueSelection;
9776 params.regions.push_back(imageCopy);
9785 params.src.image.format = compatibleFormats[srcFormatIndex];
9786 if (!isSupportedByFramework(params.src.image.format) && !isCompressedFormat(params.src.image.format))
9790 testParams.params = params;
9793 const std::string testName = getFormatCaseName(params.src.image.format);
9805 TestParams params;
9806 params.src.image.imageType = VK_IMAGE_TYPE_1D;
9807 params.dst.image.imageType = VK_IMAGE_TYPE_2D;
9808 params.src.image.extent = default1dExtent;
9809 params.dst.image.extent = defaultRootExtent;
9810 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
9811 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
9812 params.src.image.fillMode = FILL_MODE_WHITE;
9813 params.dst.image.fillMode = FILL_MODE_GRADIENT;
9814 params.allocationKind = testGroupParams->allocationKind;
9815 params.extensionFlags = testGroupParams->extensionFlags;
9816 params.queueSelection = testGroupParams->queueSelection;
9817 params.extensionFlags |= MAINTENANCE_5;
9833 params.regions.push_back(imageCopy);
9842 params.src.image.format = compatibleFormats[srcFormatIndex];
9843 if (!isSupportedByFramework(params.src.image.format) && !isCompressedFormat(params.src.image.format))
9847 testParams.params = params;
9850 const std::string testName = getFormatCaseName(params.src.image.format);
9862 TestParams params;
9863 params.src.image.imageType = VK_IMAGE_TYPE_1D;
9864 params.dst.image.imageType = VK_IMAGE_TYPE_3D;
9865 params.src.image.extent = default1dExtent;
9866 params.dst.image.extent = default3dSmallExtent;
9867 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
9868 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
9869 params.src.image.fillMode = FILL_MODE_WHITE;
9870 params.dst.image.fillMode = FILL_MODE_GRADIENT;
9871 params.allocationKind = testGroupParams->allocationKind;
9872 params.extensionFlags = testGroupParams->extensionFlags;
9873 params.queueSelection = testGroupParams->queueSelection;
9874 params.extensionFlags |= MAINTENANCE_5;
9892 params.regions.push_back(imageCopy);
9902 params.src.image.format = compatibleFormats[srcFormatIndex];
9903 if (!isSupportedByFramework(params.src.image.format) && !isCompressedFormat(params.src.image.format))
9907 testParams.params = params;
9910 const std::string testName = getFormatCaseName(params.src.image.format);
9922 TestParams params;
9923 params.src.image.imageType = VK_IMAGE_TYPE_2D;
9924 params.dst.image.imageType = VK_IMAGE_TYPE_1D;
9925 params.src.image.extent = defaultQuarterExtent;
9926 params.dst.image.extent = default1dQuarterSquaredExtent;
9927 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
9928 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
9929 params.src.image.fillMode = FILL_MODE_WHITE;
9930 params.dst.image.fillMode = FILL_MODE_GRADIENT;
9931 params.allocationKind = testGroupParams->allocationKind;
9932 params.extensionFlags = testGroupParams->extensionFlags;
9933 params.queueSelection = testGroupParams->queueSelection;
9934 params.extensionFlags |= MAINTENANCE_5;
9950 params.regions.push_back(imageCopy);
9959 params.src.image.format = compatibleFormats[srcFormatIndex];
9960 if (!isSupportedByFramework(params.src.image.format) && !isCompressedFormat(params.src.image.format))
9964 testParams.params = params;
9967 const std::string testName = getFormatCaseName(params.src.image.format);
9979 TestParams params;
9980 params.src.image.imageType = VK_IMAGE_TYPE_2D;
9981 params.dst.image.imageType = VK_IMAGE_TYPE_2D;
9982 params.src.image.extent = defaultExtent;
9983 params.dst.image.extent = defaultExtent;
9984 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
9985 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
9986 params.src.image.fillMode = FILL_MODE_WHITE;
9987 params.dst.image.fillMode = FILL_MODE_GRADIENT;
9988 params.allocationKind = testGroupParams->allocationKind;
9989 params.extensionFlags = testGroupParams->extensionFlags;
9990 params.queueSelection = testGroupParams->queueSelection;
10006 params.regions.push_back(imageCopy);
10015 params.src.image.format = compatibleFormats[srcFormatIndex];
10016 if (!isSupportedByFramework(params.src.image.format) && !isCompressedFormat(params.src.image.format))
10020 testParams.params = params;
10023 const std::string testName = getFormatCaseName(params.src.image.format);
10035 TestParams params;
10036 params.src.image.imageType = VK_IMAGE_TYPE_2D;
10037 params.dst.image.imageType = VK_IMAGE_TYPE_3D;
10038 params.src.image.extent = defaultExtent;
10039 params.dst.image.extent = default3dSmallExtent;
10040 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
10041 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
10042 params.src.image.fillMode = FILL_MODE_WHITE;
10043 params.dst.image.fillMode = FILL_MODE_GRADIENT;
10044 params.allocationKind = testGroupParams->allocationKind;
10045 params.extensionFlags = testGroupParams->extensionFlags;
10046 params.queueSelection = testGroupParams->queueSelection;
10047 params.extensionFlags |= MAINTENANCE_1;
10063 params.regions.push_back(imageCopy);
10072 params.src.image.format = compatibleFormats[srcFormatIndex];
10073 if (!isSupportedByFramework(params.src.image.format) && !isCompressedFormat(params.src.image.format))
10077 testParams.params = params;
10080 const std::string testName = getFormatCaseName(params.src.image.format);
10092 TestParams params;
10093 params.src.image.imageType = VK_IMAGE_TYPE_3D;
10094 params.dst.image.imageType = VK_IMAGE_TYPE_1D;
10095 params.src.image.extent = default3dSmallExtent;
10096 params.dst.image.extent = default1dExtent;
10097 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
10098 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
10099 params.src.image.fillMode = FILL_MODE_WHITE;
10100 params.dst.image.fillMode = FILL_MODE_GRADIENT;
10101 params.allocationKind = testGroupParams->allocationKind;
10102 params.extensionFlags = testGroupParams->extensionFlags;
10103 params.queueSelection = testGroupParams->queueSelection;
10104 params.extensionFlags |= MAINTENANCE_5;
10122 params.regions.push_back(imageCopy);
10132 params.src.image.format = compatibleFormats[srcFormatIndex];
10133 if (!isSupportedByFramework(params.src.image.format) && !isCompressedFormat(params.src.image.format))
10137 testParams.params = params;
10140 const std::string testName = getFormatCaseName(params.src.image.format);
10152 TestParams params;
10153 params.src.image.imageType = VK_IMAGE_TYPE_3D;
10154 params.dst.image.imageType = VK_IMAGE_TYPE_2D;
10155 params.src.image.extent = default3dExtent;
10156 params.dst.image.extent = defaultExtent;
10157 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
10158 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
10159 params.src.image.fillMode = FILL_MODE_WHITE;
10160 params.dst.image.fillMode = FILL_MODE_GRADIENT;
10161 params.allocationKind = testGroupParams->allocationKind;
10162 params.extensionFlags = testGroupParams->extensionFlags;
10163 params.queueSelection = testGroupParams->queueSelection;
10164 params.extensionFlags |= MAINTENANCE_1;
10182 params.regions.push_back(imageCopy);
10192 params.src.image.format = compatibleFormats[srcFormatIndex];
10193 if (!isSupportedByFramework(params.src.image.format) && !isCompressedFormat(params.src.image.format))
10197 testParams.params = params;
10200 const std::string testName = getFormatCaseName(params.src.image.format);
10212 TestParams params;
10213 params.src.image.imageType = VK_IMAGE_TYPE_3D;
10214 params.dst.image.imageType = VK_IMAGE_TYPE_3D;
10215 params.src.image.extent = default3dExtent;
10216 params.dst.image.extent = default3dExtent;
10217 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
10218 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
10219 params.src.image.fillMode = FILL_MODE_WHITE;
10220 params.dst.image.fillMode = FILL_MODE_GRADIENT;
10221 params.allocationKind = testGroupParams->allocationKind;
10222 params.extensionFlags = testGroupParams->extensionFlags;
10223 params.queueSelection = testGroupParams->queueSelection;
10239 params.regions.push_back(imageCopy);
10248 params.src.image.format = compatibleFormats[srcFormatIndex];
10249 if (!isSupportedByFramework(params.src.image.format) && !isCompressedFormat(params.src.image.format))
10253 testParams.params = params;
10256 const std::string testName = getFormatCaseName(params.src.image.format);
10385 testParams.params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
10386 testParams.params.src.image.imageType = VK_IMAGE_TYPE_2D;
10387 testParams.params.src.image.extent = extent;
10389 testParams.params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
10390 testParams.params.dst.image.imageType = VK_IMAGE_TYPE_2D;
10391 testParams.params.dst.image.extent = extent;
10394 testParams.params.allocationKind = testGroupParams->allocationKind;
10395 testParams.params.extensionFlags = testGroupParams->extensionFlags;
10396 testParams.params.queueSelection = testGroupParams->queueSelection;
10398 testParams.params.regions.push_back(copyRegion);
10400 const std::string dimensionStr = "src" + de::toString(testParams.params.src.image.extent.width) + "x" + de::toString(testParams.params.src.image.extent.height)
10401 + "_dst" + de::toString(testParams.params.dst.image.extent.width) + "x" + de::toString(testParams.params.dst.image.extent.height);
10414 testParams.params.src.image.format = testParams.compatibleFormats[srcFormatIndex];
10416 if (!isSupportedByFramework(testParams.params.src.image.format) && !isCompressedFormat(testParams.params.src.image.format))
10419 tcu::TestCaseGroup* srcFormatGroup = new tcu::TestCaseGroup(testCtx, getFormatCaseName(testParams.params.src.image.format).c_str());
10424 testParams.params.dst.image.format = testParams.compatibleFormats[dstFormatIndex];
10426 if (!isSupportedByFramework(testParams.params.dst.image.format) && !isCompressedFormat(testParams.params.dst.image.format))
10432 if (isCompressedFormat(testParams.params.src.image.format) && isCompressedFormat(testParams.params.dst.image.format))
10434 if ((getBlockWidth(testParams.params.src.image.format) != getBlockWidth(testParams.params.dst.image.format))
10435 || (getBlockHeight(testParams.params.src.image.format) != getBlockHeight(testParams.params.dst.image.format)))
10439 tcu::TestCaseGroup* dstFormatGroup = new tcu::TestCaseGroup(testCtx, getFormatCaseName(testParams.params.dst.image.format).c_str());
10444 testParams.params.src.image.operationLayout = copySrcLayouts[srcLayoutNdx];
10448 testParams.params.dst.image.operationLayout = copyDstLayouts[dstLayoutNdx];
10450 const std::string testName = getImageLayoutCaseName(testParams.params.src.image.operationLayout) + "_" + getImageLayoutCaseName(testParams.params.dst.image.operationLayout);
10451 const TestParams params = testParams.params;
10453 dstFormatGroup->addChild(new CopyImageToImageTestCase(testCtx, testName, params));
10468 void addImageToImageAllFormatsDepthStencilFormatsTests (tcu::TestCaseGroup* group, TestParams params)
10483 params.src.image.operationLayout = copySrcLayouts[srcLayoutNdx];
10486 params.dst.image.operationLayout = copyDstLayouts[dstLayoutNdx];
10488 const std::string testName = getImageLayoutCaseName(params.src.image.operationLayout) + "_" +
10489 getImageLayoutCaseName(params.dst.image.operationLayout);
10490 group->addChild(new CopyImageToImageTestCase(group->getTestContext(), testName, params));
10514 TestParams params;
10515 params.src.image.imageType = VK_IMAGE_TYPE_1D;
10516 params.dst.image.imageType = VK_IMAGE_TYPE_1D;
10517 params.src.image.extent = default1dExtent;
10518 params.dst.image.extent = default1dExtent;
10519 params.src.image.format = depthAndStencilFormats[compatibleFormatsIndex];
10520 params.dst.image.format = params.src.image.format;
10521 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
10522 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
10523 params.allocationKind = testGroupParams->allocationKind;
10524 params.extensionFlags = testGroupParams->extensionFlags;
10525 params.queueSelection = testGroupParams->queueSelection;
10527 bool hasDepth = tcu::hasDepthComponent(mapVkFormat(params.src.image.format).order);
10528 bool hasStencil = tcu::hasStencilComponent(mapVkFormat(params.src.image.format).order);
10552 params.regions.push_back(copyRegion);
10566 params.regions.push_back(copyRegion);
10570 const std::string testName = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format);
10571 addTestGroup(subGroup.get(), testName, addImageToImageAllFormatsDepthStencilFormatsTests, params);
10575 params.extensionFlags |= SEPARATE_DEPTH_STENCIL_LAYOUT;
10576 const std::string testName2 = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format) + "_separate_layouts";
10577 addTestGroup(subGroup.get(), testName2, addImageToImageAllFormatsDepthStencilFormatsTests, params);
10590 TestParams params;
10591 params.src.image.imageType = VK_IMAGE_TYPE_1D;
10592 params.dst.image.imageType = VK_IMAGE_TYPE_2D;
10593 params.src.image.extent = default1dExtent;
10594 params.dst.image.extent = defaultRootExtent;
10595 params.src.image.format = depthAndStencilFormats[compatibleFormatsIndex];
10596 params.dst.image.format = params.src.image.format;
10597 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
10598 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
10599 params.allocationKind = testGroupParams->allocationKind;
10600 params.extensionFlags = testGroupParams->extensionFlags;
10601 params.queueSelection = testGroupParams->queueSelection;
10602 params.extensionFlags |= MAINTENANCE_5;
10604 bool hasDepth = tcu::hasDepthComponent(mapVkFormat(params.src.image.format).order);
10605 bool hasStencil = tcu::hasStencilComponent(mapVkFormat(params.src.image.format).order);
10629 params.regions.push_back(copyRegion);
10643 params.regions.push_back(copyRegion);
10647 const std::string testName = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format);
10648 addTestGroup(subGroup.get(), testName, addImageToImageAllFormatsDepthStencilFormatsTests, params);
10652 params.extensionFlags |= SEPARATE_DEPTH_STENCIL_LAYOUT;
10653 const std::string testName2 = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format) + "_separate_layouts";
10654 addTestGroup(subGroup.get(), testName2, addImageToImageAllFormatsDepthStencilFormatsTests, params);
10667 TestParams params;
10668 params.src.image.imageType = VK_IMAGE_TYPE_1D;
10669 params.dst.image.imageType = VK_IMAGE_TYPE_3D;
10670 params.src.image.extent = default1dExtent;
10671 params.dst.image.extent = default3dSmallExtent;
10672 params.src.image.format = depthAndStencilFormats[compatibleFormatsIndex];
10673 params.dst.image.format = params.src.image.format;
10674 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
10675 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
10676 params.allocationKind = testGroupParams->allocationKind;
10677 params.extensionFlags = testGroupParams->extensionFlags;
10678 params.queueSelection = testGroupParams->queueSelection;
10679 params.extensionFlags |= MAINTENANCE_5;
10681 bool hasDepth = tcu::hasDepthComponent(mapVkFormat(params.src.image.format).order);
10682 bool hasStencil = tcu::hasStencilComponent(mapVkFormat(params.src.image.format).order);
10708 params.regions.push_back(copyRegion);
10722 params.regions.push_back(copyRegion);
10727 const std::string testName = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format);
10728 addTestGroup(subGroup.get(), testName, addImageToImageAllFormatsDepthStencilFormatsTests, params);
10732 params.extensionFlags |= SEPARATE_DEPTH_STENCIL_LAYOUT;
10733 const std::string testName2 = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format) + "_separate_layouts";
10734 addTestGroup(subGroup.get(), testName2, addImageToImageAllFormatsDepthStencilFormatsTests, params);
10747 TestParams params;
10748 params.src.image.imageType = VK_IMAGE_TYPE_2D;
10749 params.dst.image.imageType = VK_IMAGE_TYPE_1D;
10750 params.src.image.extent = defaultQuarterExtent;
10751 params.dst.image.extent = default1dQuarterSquaredExtent;
10752 params.src.image.format = depthAndStencilFormats[compatibleFormatsIndex];
10753 params.dst.image.format = params.src.image.format;
10754 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
10755 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
10756 params.allocationKind = testGroupParams->allocationKind;
10757 params.extensionFlags = testGroupParams->extensionFlags;
10758 params.queueSelection = testGroupParams->queueSelection;
10759 params.extensionFlags |= MAINTENANCE_5;
10761 bool hasDepth = tcu::hasDepthComponent(mapVkFormat(params.src.image.format).order);
10762 bool hasStencil = tcu::hasStencilComponent(mapVkFormat(params.src.image.format).order);
10787 params.regions.push_back(copyRegion);
10801 params.regions.push_back(copyRegion);
10805 const std::string testName = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format);
10806 addTestGroup(subGroup.get(), testName, addImageToImageAllFormatsDepthStencilFormatsTests, params);
10810 params.extensionFlags |= SEPARATE_DEPTH_STENCIL_LAYOUT;
10811 const std::string testName2 = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format) + "_separate_layouts";
10812 addTestGroup(subGroup.get(), testName2, addImageToImageAllFormatsDepthStencilFormatsTests, params);
10816 params.extensionFlags &= ~SEPARATE_DEPTH_STENCIL_LAYOUT;
10818 params.regions.clear();
10837 params.regions.push_back(copyRegion);
10840 const std::string testName3 = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format) + "_depth_stencil_aspects";
10841 addTestGroup(subGroup.get(), testName3, addImageToImageAllFormatsDepthStencilFormatsTests, params);
10855 TestParams params;
10856 params.src.image.imageType = VK_IMAGE_TYPE_2D;
10857 params.dst.image.imageType = VK_IMAGE_TYPE_2D;
10858 params.src.image.extent = defaultExtent;
10859 params.dst.image.extent = defaultExtent;
10860 params.src.image.format = depthAndStencilFormats[compatibleFormatsIndex];
10861 params.dst.image.format = params.src.image.format;
10862 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
10863 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
10864 params.allocationKind = testGroupParams->allocationKind;
10865 params.extensionFlags = testGroupParams->extensionFlags;
10866 params.queueSelection = testGroupParams->queueSelection;
10868 bool hasDepth = tcu::hasDepthComponent(mapVkFormat(params.src.image.format).order);
10869 bool hasStencil = tcu::hasStencilComponent(mapVkFormat(params.src.image.format).order);
10894 params.regions.push_back(copyRegion);
10908 params.regions.push_back(copyRegion);
10912 const std::string testName = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format);
10913 addTestGroup(subGroup.get(), testName, addImageToImageAllFormatsDepthStencilFormatsTests, params);
10917 params.extensionFlags |= SEPARATE_DEPTH_STENCIL_LAYOUT;
10918 const std::string testName2 = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format) + "_separate_layouts";
10919 addTestGroup(subGroup.get(), testName2, addImageToImageAllFormatsDepthStencilFormatsTests, params);
10923 params.extensionFlags &= ~SEPARATE_DEPTH_STENCIL_LAYOUT;
10925 params.regions.clear();
10944 params.regions.push_back(copyRegion);
10947 const std::string testName3 = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format) + "_depth_stencil_aspects";
10948 addTestGroup(subGroup.get(), testName3, addImageToImageAllFormatsDepthStencilFormatsTests, params);
10962 TestParams params;
10963 params.src.image.imageType = VK_IMAGE_TYPE_2D;
10964 params.dst.image.imageType = VK_IMAGE_TYPE_3D;
10965 params.src.image.extent = defaultExtent;
10966 params.dst.image.extent = default3dSmallExtent;
10967 params.src.image.format = depthAndStencilFormats[compatibleFormatsIndex];
10968 params.dst.image.format = params.src.image.format;
10969 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
10970 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
10971 params.allocationKind = testGroupParams->allocationKind;
10972 params.extensionFlags = testGroupParams->extensionFlags;
10973 params.queueSelection = testGroupParams->queueSelection;
10974 params.extensionFlags |= MAINTENANCE_1;
10976 bool hasDepth = tcu::hasDepthComponent(mapVkFormat(params.src.image.format).order);
10977 bool hasStencil = tcu::hasStencilComponent(mapVkFormat(params.src.image.format).order);
11002 params.regions.push_back(copyRegion);
11016 params.regions.push_back(copyRegion);
11020 const std::string testName = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format);
11021 addTestGroup(subGroup.get(), testName, addImageToImageAllFormatsDepthStencilFormatsTests, params);
11025 params.extensionFlags |= SEPARATE_DEPTH_STENCIL_LAYOUT;
11026 const std::string testName2 = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format) + "_separate_layouts";
11027 addTestGroup(subGroup.get(), testName2, addImageToImageAllFormatsDepthStencilFormatsTests, params);
11031 params.extensionFlags &= ~SEPARATE_DEPTH_STENCIL_LAYOUT;
11033 params.regions.clear();
11052 params.regions.push_back(copyRegion);
11055 const std::string testName3 = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format) + "_depth_stencil_aspects";
11056 addTestGroup(subGroup.get(), testName3, addImageToImageAllFormatsDepthStencilFormatsTests, params);
11070 TestParams params;
11071 params.src.image.imageType = VK_IMAGE_TYPE_3D;
11072 params.dst.image.imageType = VK_IMAGE_TYPE_1D;
11073 params.src.image.extent = default3dSmallExtent;
11074 params.dst.image.extent = default1dExtent;
11075 params.src.image.format = depthAndStencilFormats[compatibleFormatsIndex];
11076 params.dst.image.format = params.src.image.format;
11077 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
11078 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
11079 params.allocationKind = testGroupParams->allocationKind;
11080 params.extensionFlags = testGroupParams->extensionFlags;
11081 params.queueSelection = testGroupParams->queueSelection;
11082 params.extensionFlags |= MAINTENANCE_5;
11084 bool hasDepth = tcu::hasDepthComponent(mapVkFormat(params.src.image.format).order);
11085 bool hasStencil = tcu::hasStencilComponent(mapVkFormat(params.src.image.format).order);
11111 params.regions.push_back(copyRegion);
11125 params.regions.push_back(copyRegion);
11130 const std::string testName = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format);
11131 addTestGroup(subGroup.get(), testName, addImageToImageAllFormatsDepthStencilFormatsTests, params);
11135 params.extensionFlags |= SEPARATE_DEPTH_STENCIL_LAYOUT;
11136 const std::string testName2 = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format) + "_separate_layouts";
11137 addTestGroup(subGroup.get(), testName2, addImageToImageAllFormatsDepthStencilFormatsTests, params);
11150 TestParams params;
11151 params.src.image.imageType = VK_IMAGE_TYPE_3D;
11152 params.dst.image.imageType = VK_IMAGE_TYPE_2D;
11153 params.src.image.extent = default3dExtent;
11154 params.dst.image.extent = defaultExtent;
11155 params.src.image.format = depthAndStencilFormats[compatibleFormatsIndex];
11156 params.dst.image.format = params.src.image.format;
11157 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
11158 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
11159 params.allocationKind = testGroupParams->allocationKind;
11160 params.extensionFlags = testGroupParams->extensionFlags;
11161 params.queueSelection = testGroupParams->queueSelection;
11162 params.extensionFlags |= MAINTENANCE_1;
11164 bool hasDepth = tcu::hasDepthComponent(mapVkFormat(params.src.image.format).order);
11165 bool hasStencil = tcu::hasStencilComponent(mapVkFormat(params.src.image.format).order);
11191 params.regions.push_back(copyRegion);
11205 params.regions.push_back(copyRegion);
11210 const std::string testName = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format);
11211 addTestGroup(subGroup.get(), testName, addImageToImageAllFormatsDepthStencilFormatsTests, params);
11215 params.extensionFlags |= SEPARATE_DEPTH_STENCIL_LAYOUT;
11216 const std::string testName2 = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format) + "_separate_layouts";
11217 addTestGroup(subGroup.get(), testName2, addImageToImageAllFormatsDepthStencilFormatsTests, params);
11230 TestParams params;
11231 params.src.image.imageType = VK_IMAGE_TYPE_3D;
11232 params.dst.image.imageType = VK_IMAGE_TYPE_3D;
11233 params.src.image.extent = default3dExtent;
11234 params.dst.image.extent = default3dExtent;
11235 params.src.image.format = depthAndStencilFormats[compatibleFormatsIndex];
11236 params.dst.image.format = params.src.image.format;
11237 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
11238 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
11239 params.allocationKind = testGroupParams->allocationKind;
11240 params.extensionFlags = testGroupParams->extensionFlags;
11241 params.queueSelection = testGroupParams->queueSelection;
11243 bool hasDepth = tcu::hasDepthComponent(mapVkFormat(params.src.image.format).order);
11244 bool hasStencil = tcu::hasStencilComponent(mapVkFormat(params.src.image.format).order);
11268 params.regions.push_back(copyRegion);
11282 params.regions.push_back(copyRegion);
11286 const std::string testName = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format);
11287 addTestGroup(subGroup.get(), testName, addImageToImageAllFormatsDepthStencilFormatsTests, params);
11291 params.extensionFlags |= SEPARATE_DEPTH_STENCIL_LAYOUT;
11292 const std::string testName2 = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format) + "_separate_layouts";
11293 addTestGroup(subGroup.get(), testName2, addImageToImageAllFormatsDepthStencilFormatsTests, params);
12323 TestParams params;
12324 params.src.image.imageType = VK_IMAGE_TYPE_1D;
12325 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
12326 params.src.image.extent = default1dExtent;
12327 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
12328 params.src.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
12329 params.dst.buffer.size = defaultSize;
12330 params.allocationKind = testGroupParams->allocationKind;
12331 params.extensionFlags = testGroupParams->extensionFlags;
12332 params.queueSelection = testGroupParams->queueSelection;
12346 params.regions.push_back(copyRegion);
12348 group->addChild(new CopyImageToBufferTestCase(testCtx, "tightly_sized_buffer", params));
12352 TestParams params;
12354 params.src.image.imageType = VK_IMAGE_TYPE_1D;
12355 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
12356 params.src.image.extent = default1dExtent;
12357 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
12358 params.src.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
12359 params.dst.buffer.size = bufferImageHeight;
12360 params.allocationKind = testGroupParams->allocationKind;
12361 params.extensionFlags = testGroupParams->extensionFlags;
12362 params.queueSelection = testGroupParams->queueSelection;
12376 params.regions.push_back(copyRegion);
12378 group->addChild(new CopyImageToBufferTestCase(testCtx, "larger_buffer", params));
12382 TestParams params;
12384 params.src.image.imageType = VK_IMAGE_TYPE_1D;
12385 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
12386 params.src.image.extent = default1dExtent;
12387 params.src.image.extent.depth = arrayLayers;
12388 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
12389 params.src.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
12390 params.dst.buffer.size = defaultSize * arrayLayers;
12391 params.allocationKind = testGroupParams->allocationKind;
12392 params.extensionFlags = testGroupParams->extensionFlags;
12393 params.queueSelection = testGroupParams->queueSelection;
12395 const int pixelSize = tcu::getPixelSize(mapVkFormat(params.src.image.format));
12416 params.regions.push_back(copyRegion);
12419 group->addChild(new CopyImageToBufferTestCase(testCtx, "array_tightly_sized_buffer", params));
12423 TestParams params;
12426 params.src.image.imageType = VK_IMAGE_TYPE_1D;
12427 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
12428 params.src.image.extent = default1dExtent;
12429 params.src.image.extent.depth = arrayLayers;
12430 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
12431 params.src.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
12432 params.dst.buffer.size = bufferImageHeight * arrayLayers;
12433 params.allocationKind = testGroupParams->allocationKind;
12434 params.extensionFlags = testGroupParams->extensionFlags;
12435 params.queueSelection = testGroupParams->queueSelection;
12437 const int pixelSize = tcu::getPixelSize(mapVkFormat(params.src.image.format));
12458 params.regions.push_back(copyRegion);
12461 group->addChild(new CopyImageToBufferTestCase(testCtx, "array_larger_buffer", params));
12465 TestParams params;
12468 params.src.image.imageType = VK_IMAGE_TYPE_1D;
12469 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
12470 params.src.image.extent = default1dExtent;
12471 params.src.image.extent.depth = layerCount;
12472 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
12473 params.src.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
12474 params.src.image.fillMode = FILL_MODE_RED;
12475 params.dst.buffer.size = defaultSize * layerCount;
12476 params.dst.buffer.fillMode = FILL_MODE_RED;
12477 params.allocationKind = testGroupParams->allocationKind;
12478 params.extensionFlags = testGroupParams->extensionFlags;
12479 params.queueSelection = testGroupParams->queueSelection;
12480 params.extensionFlags |= MAINTENANCE_5;
12503 params.regions.push_back(copyRegion);
12505 group->addChild(new CopyImageToBufferTestCase(testCtx, "array_all_remaining_layers", params));
12509 TestParams params;
12512 params.src.image.imageType = VK_IMAGE_TYPE_1D;
12513 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
12514 params.src.image.extent = default1dExtent;
12515 params.src.image.extent.depth = layerCount;
12516 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
12517 params.src.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
12518 params.src.image.fillMode = FILL_MODE_RED;
12519 params.dst.buffer.size = defaultSize * layerCount;
12520 params.dst.buffer.fillMode = FILL_MODE_RED;
12521 params.allocationKind = testGroupParams->allocationKind;
12522 params.extensionFlags = testGroupParams->extensionFlags;
12523 params.queueSelection = testGroupParams->queueSelection;
12524 params.extensionFlags |= MAINTENANCE_5;
12547 params.regions.push_back(copyRegion);
12549 group->addChild(new CopyImageToBufferTestCase(testCtx, "array_not_all_remaining_layers", params));
12558 TestParams params;
12559 params.src.image.imageType = VK_IMAGE_TYPE_2D;
12560 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
12561 params.src.image.extent = defaultExtent;
12562 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
12563 params.src.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
12564 params.dst.buffer.size = defaultSize * defaultSize;
12565 params.allocationKind = testGroupParams->allocationKind;
12566 params.extensionFlags = testGroupParams->extensionFlags;
12567 params.queueSelection = testGroupParams->queueSelection;
12581 params.regions.push_back(copyRegion);
12583 group->addChild(new CopyImageToBufferTestCase(testCtx, "whole", params));
12587 TestParams params;
12588 params.src.image.imageType = VK_IMAGE_TYPE_2D;
12589 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
12590 params.src.image.extent = defaultExtent;
12591 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
12592 params.src.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
12593 params.dst.buffer.size = defaultSize * defaultSize;
12594 params.allocationKind = testGroupParams->allocationKind;
12595 params.extensionFlags = testGroupParams->extensionFlags;
12596 params.queueSelection = testGroupParams->queueSelection;
12610 params.regions.push_back(copyRegion);
12612 group->addChild(new CopyImageToBufferTestCase(testCtx, "buffer_offset", params));
12617 TestParams params;
12618 params.src.image.imageType = VK_IMAGE_TYPE_2D;
12619 params.src.image.format = VK_FORMAT_R8_UNORM;
12620 params.src.image.extent = defaultExtent;
12621 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
12622 params.src.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
12623 params.dst.buffer.size = defaultSize * defaultSize;
12624 params.allocationKind = testGroupParams->allocationKind;
12625 params.extensionFlags = testGroupParams->extensionFlags;
12626 params.queueSelection = testGroupParams->queueSelection;
12640 params.regions.push_back(copyRegion);
12642 group->addChild(new CopyImageToBufferTestCase(testCtx, "buffer_offset_relaxed", params));
12646 TestParams params;
12647 params.src.image.imageType = VK_IMAGE_TYPE_2D;
12648 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
12649 params.src.image.extent = defaultExtent;
12650 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
12651 params.src.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
12652 params.dst.buffer.size = defaultSize * defaultSize;
12653 params.allocationKind = testGroupParams->allocationKind;
12654 params.extensionFlags = testGroupParams->extensionFlags;
12655 params.queueSelection = testGroupParams->queueSelection;
12657 const int pixelSize = tcu::getPixelSize(mapVkFormat(params.src.image.format));
12658 const VkDeviceSize bufferSize = pixelSize * params.dst.buffer.size;
12681 params.regions.push_back(region);
12684 group->addChild(new CopyImageToBufferTestCase(testCtx, "regions", params));
12688 TestParams params;
12689 params.src.image.imageType = VK_IMAGE_TYPE_2D;
12690 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
12691 params.src.image.extent = defaultExtent;
12692 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
12693 params.src.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
12694 params.dst.buffer.size = (defaultHalfSize - 1u) * defaultSize + defaultHalfSize;
12695 params.allocationKind = testGroupParams->allocationKind;
12696 params.extensionFlags = testGroupParams->extensionFlags;
12697 params.queueSelection = testGroupParams->queueSelection;
12711 params.regions.push_back(copyRegion);
12713 group->addChild(new CopyImageToBufferTestCase(testCtx, "tightly_sized_buffer", params));
12717 TestParams params;
12719 params.src.image.imageType = VK_IMAGE_TYPE_2D;
12720 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
12721 params.src.image.extent = defaultExtent;
12722 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
12723 params.src.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
12724 params.dst.buffer.size = bufferImageHeight * defaultSize;
12725 params.allocationKind = testGroupParams->allocationKind;
12726 params.extensionFlags = testGroupParams->extensionFlags;
12727 params.queueSelection = testGroupParams->queueSelection;
12741 params.regions.push_back(copyRegion);
12743 group->addChild(new CopyImageToBufferTestCase(testCtx, "larger_buffer", params));
12747 TestParams params;
12748 params.src.image.imageType = VK_IMAGE_TYPE_2D;
12749 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
12750 params.src.image.extent = defaultExtent;
12751 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
12752 params.src.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
12753 params.dst.buffer.size = (defaultHalfSize - 1u) * defaultSize + defaultHalfSize + defaultQuarterSize;
12754 params.allocationKind = testGroupParams->allocationKind;
12755 params.extensionFlags = testGroupParams->extensionFlags;
12756 params.queueSelection = testGroupParams->queueSelection;
12770 params.regions.push_back(copyRegion);
12772 group->addChild(new CopyImageToBufferTestCase(testCtx, "tightly_sized_buffer_offset", params));
12776 TestParams params;
12778 params.src.image.imageType = VK_IMAGE_TYPE_2D;
12779 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
12780 params.src.image.extent = defaultHalfExtent;
12781 params.src.image.extent.depth = arrayLayers;
12782 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
12783 params.src.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
12784 params.dst.buffer.size = defaultHalfSize * defaultHalfSize * arrayLayers;
12785 params.allocationKind = testGroupParams->allocationKind;
12786 params.extensionFlags = testGroupParams->extensionFlags;
12787 params.queueSelection = testGroupParams->queueSelection;
12789 const int pixelSize = tcu::getPixelSize(mapVkFormat(params.src.image.format));
12810 params.regions.push_back(copyRegion);
12812 group->addChild(new CopyImageToBufferTestCase(testCtx, "array", params));
12816 TestParams params;
12819 params.src.image.imageType = VK_IMAGE_TYPE_2D;
12820 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
12821 params.src.image.extent = defaultHalfExtent;
12822 params.src.image.extent.depth = arrayLayers;
12823 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
12824 params.src.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
12825 params.dst.buffer.size = defaultHalfSize * imageBufferHeight * arrayLayers;
12826 params.allocationKind = testGroupParams->allocationKind;
12827 params.extensionFlags = testGroupParams->extensionFlags;
12828 params.queueSelection = testGroupParams->queueSelection;
12830 const int pixelSize = tcu::getPixelSize(mapVkFormat(params.src.image.format));
12851 params.regions.push_back(copyRegion);
12853 group->addChild(new CopyImageToBufferTestCase(testCtx, "array_larger_buffer", params));
12857 TestParams params;
12859 params.src.image.imageType = VK_IMAGE_TYPE_2D;
12860 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
12861 params.src.image.extent = defaultHalfExtent;
12862 params.src.image.extent.depth = arrayLayers;
12863 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
12864 params.src.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
12865 params.dst.buffer.size = defaultHalfSize * defaultHalfSize * arrayLayers;
12866 params.allocationKind = testGroupParams->allocationKind;
12867 params.extensionFlags = testGroupParams->extensionFlags;
12868 params.queueSelection = testGroupParams->queueSelection;
12870 const int pixelSize = tcu::getPixelSize(mapVkFormat(params.src.image.format));
12891 params.regions.push_back(copyRegion);
12893 group->addChild(new CopyImageToBufferTestCase(testCtx, "array_tightly_sized_buffer", params));
12897 TestParams params;
12900 params.src.image.imageType = VK_IMAGE_TYPE_2D;
12901 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
12902 params.src.image.extent = defaultHalfExtent;
12903 params.src.image.extent.depth = layerCount;
12904 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
12905 params.src.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
12906 params.src.image.fillMode = FILL_MODE_RED;
12907 params.dst.buffer.size = defaultHalfSize * defaultHalfSize * layerCount;
12908 params.dst.buffer.fillMode = FILL_MODE_RED;
12909 params.allocationKind = testGroupParams->allocationKind;
12910 params.extensionFlags = testGroupParams->extensionFlags;
12911 params.queueSelection = testGroupParams->queueSelection;
12912 params.extensionFlags |= MAINTENANCE_5;
12935 params.regions.push_back(copyRegion);
12937 group->addChild(new CopyImageToBufferTestCase(testCtx, "array_all_remaining_layers", params));
12941 TestParams params;
12944 params.src.image.imageType = VK_IMAGE_TYPE_2D;
12945 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
12946 params.src.image.extent = defaultHalfExtent;
12947 params.src.image.extent.depth = layerCount;
12948 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
12949 params.src.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
12950 params.src.image.fillMode = FILL_MODE_RED;
12951 params.dst.buffer.size = defaultHalfSize * defaultHalfSize * layerCount;
12952 params.dst.buffer.fillMode = FILL_MODE_RED;
12953 params.allocationKind = testGroupParams->allocationKind;
12954 params.extensionFlags = testGroupParams->extensionFlags;
12955 params.queueSelection = testGroupParams->queueSelection;
12956 params.extensionFlags |= MAINTENANCE_5;
12979 params.regions.push_back(copyRegion);
12981 group->addChild(new CopyImageToBufferTestCase(testCtx, "array_not_all_remaining_layers", params));
13008 TestParams params;
13009 params.src.image.imageType = VK_IMAGE_TYPE_2D;
13010 params.src.image.extent = extent;
13011 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
13012 params.src.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
13013 params.allocationKind = testGroupParams->allocationKind;
13014 params.extensionFlags = testGroupParams->extensionFlags;
13015 params.queueSelection = testGroupParams->queueSelection;
13016 params.arrayLayers = numLayers;
13020 params.src.image.format = *format;
13022 params.queueSelection = QueueSelectionOptions::Universal;
13023 group->addChild(new CopyCompressedImageToBufferTestCase(testCtx, getCaseName(*format, params.src.image.extent, numLayers, "universal"), params));
13024 params.queueSelection = QueueSelectionOptions::ComputeOnly;
13025 group->addChild(new CopyCompressedImageToBufferTestCase(testCtx, getCaseName(*format, params.src.image.extent, numLayers, "compute"), params));
13026 params.queueSelection = QueueSelectionOptions::TransferOnly;
13027 group->addChild(new CopyCompressedImageToBufferTestCase(testCtx, getCaseName(*format, params.src.image.extent, numLayers, "transfer"), params));
13125 TestParams params;
13136 params.src.buffer.size = (defaultHalfSize - 1u) * defaultSize + defaultHalfSize + defaultQuarterSize;
13142 params.src.buffer.size = defaultSize * defaultSize;
13145 params.dst.image.imageType = VK_IMAGE_TYPE_2D;
13146 params.dst.image.format = config.format;
13147 params.dst.image.extent = defaultExtent;
13148 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
13149 params.dst.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
13150 params.allocationKind = allocationKind;
13151 params.extensionFlags = extensionFlags;
13155 params.singleCommand = DE_TRUE;
13157 params.regions.push_back(copyDepthRegion);
13158 params.regions.push_back(copyStencilRegion);
13160 group->addChild(new CopyBufferToDepthStencilTestCase(testCtx, testName + "_DS", params));
13162 params.singleCommand = DE_FALSE;
13164 group->addChild(new CopyBufferToDepthStencilTestCase(testCtx, testName + "_D_S", params));
13166 params.regions.clear();
13167 params.regions.push_back(copyStencilRegion);
13168 params.regions.push_back(copyDepthRegion);
13170 group->addChild(new CopyBufferToDepthStencilTestCase(testCtx, testName + "_S_D", params));
13172 params.singleCommand = DE_TRUE;
13173 group->addChild(new CopyBufferToDepthStencilTestCase(testCtx, testName + "_SD", params));
13178 params.regions.clear();
13179 params.regions.push_back(copyStencilRegion);
13181 group->addChild(new CopyBufferToDepthStencilTestCase(testCtx, testName + "_S", params));
13186 params.regions.clear();
13187 params.regions.push_back(copyDepthRegion);
13189 group->addChild(new CopyBufferToDepthStencilTestCase(testCtx, testName + "_D", params));
13199 TestParams params;
13200 params.src.buffer.size = defaultSize;
13201 params.dst.image.imageType = VK_IMAGE_TYPE_1D;
13202 params.dst.image.format = VK_FORMAT_R8G8B8A8_UINT;
13203 params.dst.image.extent = default1dExtent;
13204 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
13205 params.dst.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
13206 params.allocationKind = testGroupParams->allocationKind;
13207 params.extensionFlags = testGroupParams->extensionFlags;
13208 params.queueSelection = testGroupParams->queueSelection;
13222 params.regions.push_back(copyRegion);
13224 group->addChild(new CopyBufferToImageTestCase(testCtx, "tightly_sized_buffer", params));
13228 TestParams params;
13230 params.src.buffer.size = bufferImageHeight;
13231 params.dst.image.imageType = VK_IMAGE_TYPE_1D;
13232 params.dst.image.format = VK_FORMAT_R8G8B8A8_UINT;
13233 params.dst.image.extent = default1dExtent;
13234 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
13235 params.dst.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
13236 params.allocationKind = testGroupParams->allocationKind;
13237 params.extensionFlags = testGroupParams->extensionFlags;
13238 params.queueSelection = testGroupParams->queueSelection;
13252 params.regions.push_back(copyRegion);
13254 group->addChild(new CopyBufferToImageTestCase(testCtx, "larger_buffer", params));
13258 TestParams params;
13260 params.src.buffer.size = defaultSize * arrayLayers;
13261 params.dst.image.imageType = VK_IMAGE_TYPE_1D;
13262 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
13263 params.dst.image.extent = default1dExtent;
13264 params.dst.image.extent.depth = arrayLayers;
13265 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
13266 params.dst.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
13267 params.allocationKind = testGroupParams->allocationKind;
13268 params.extensionFlags = testGroupParams->extensionFlags;
13269 params.queueSelection = testGroupParams->queueSelection;
13271 const int pixelSize = tcu::getPixelSize(mapVkFormat(params.dst.image.format));
13292 params.regions.push_back(copyRegion);
13295 group->addChild(new CopyBufferToImageTestCase(testCtx, "array_tightly_sized_buffer", params));
13299 TestParams params;
13302 params.src.buffer.size = defaultSize * layerCount;
13303 params.src.buffer.fillMode = FILL_MODE_RED;
13304 params.dst.image.imageType = VK_IMAGE_TYPE_1D;
13305 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
13306 params.dst.image.extent = default1dExtent;
13307 params.dst.image.extent.depth = layerCount;
13308 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
13309 params.dst.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
13310 params.dst.image.fillMode = FILL_MODE_RED;
13311 params.allocationKind = testGroupParams->allocationKind;
13312 params.extensionFlags = testGroupParams->extensionFlags;
13313 params.queueSelection = testGroupParams->queueSelection;
13314 params.extensionFlags |= MAINTENANCE_5;
13337 params.regions.push_back(copyRegion);
13339 group->addChild(new CopyBufferToImageTestCase(testCtx, "array_all_remaining_layers", params));
13343 TestParams params;
13346 params.src.buffer.size = defaultSize * layerCount;
13347 params.src.buffer.fillMode = FILL_MODE_RED;
13348 params.dst.image.imageType = VK_IMAGE_TYPE_1D;
13349 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
13350 params.dst.image.extent = default1dExtent;
13351 params.dst.image.extent.depth = layerCount;
13352 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
13353 params.dst.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
13354 params.dst.image.fillMode = FILL_MODE_RED;
13355 params.allocationKind = testGroupParams->allocationKind;
13356 params.extensionFlags = testGroupParams->extensionFlags;
13357 params.queueSelection = testGroupParams->queueSelection;
13358 params.extensionFlags |= MAINTENANCE_5;
13381 params.regions.push_back(copyRegion);
13383 group->addChild(new CopyBufferToImageTestCase(testCtx, "array_not_all_remaining_layers", params));
13387 TestParams params;
13390 params.src.buffer.size = defaultSize * arrayLayers;
13391 params.dst.image.imageType = VK_IMAGE_TYPE_1D;
13392 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
13393 params.dst.image.extent = default1dExtent;
13394 params.dst.image.extent.depth = arrayLayers;
13395 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
13396 params.dst.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
13397 params.allocationKind = testGroupParams->allocationKind;
13398 params.extensionFlags = testGroupParams->extensionFlags;
13399 params.queueSelection = testGroupParams->queueSelection;
13401 const int pixelSize = tcu::getPixelSize(mapVkFormat(params.dst.image.format));
13422 params.regions.push_back(copyRegion);
13425 group->addChild(new CopyBufferToImageTestCase(testCtx, "array_larger_buffer", params));
13434 TestParams params;
13435 params.src.buffer.size = defaultSize * defaultSize;
13436 params.dst.image.imageType = VK_IMAGE_TYPE_2D;
13437 params.dst.image.format = VK_FORMAT_R8G8B8A8_UINT;
13438 params.dst.image.extent = defaultExtent;
13439 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
13440 params.dst.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
13441 params.allocationKind = testGroupParams->allocationKind;
13442 params.extensionFlags = testGroupParams->extensionFlags;
13443 params.queueSelection = testGroupParams->queueSelection;
13457 params.regions.push_back(copyRegion);
13459 group->addChild(new CopyBufferToImageTestCase(testCtx, "whole", params));
13463 TestParams params;
13464 params.src.buffer.size = defaultSize * defaultSize;
13465 params.dst.image.imageType = VK_IMAGE_TYPE_2D;
13466 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
13467 params.dst.image.extent = defaultExtent;
13468 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
13469 params.dst.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
13470 params.allocationKind = testGroupParams->allocationKind;
13471 params.extensionFlags = testGroupParams->extensionFlags;
13472 params.queueSelection = testGroupParams->queueSelection;
13488 params.regions.push_back(region);
13491 group->addChild(new CopyBufferToImageTestCase(testCtx, "regions", params));
13495 TestParams params;
13496 params.src.buffer.size = defaultSize * defaultSize;
13497 params.dst.image.imageType = VK_IMAGE_TYPE_2D;
13498 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
13499 params.dst.image.extent = defaultExtent;
13500 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
13501 params.dst.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
13502 params.allocationKind = testGroupParams->allocationKind;
13503 params.extensionFlags = testGroupParams->extensionFlags;
13504 params.queueSelection = testGroupParams->queueSelection;
13518 params.regions.push_back(copyRegion);
13520 group->addChild(new CopyBufferToImageTestCase(testCtx, "buffer_offset", params));
13525 TestParams params;
13526 params.src.buffer.size = defaultSize * defaultSize;
13527 params.dst.image.imageType = VK_IMAGE_TYPE_2D;
13528 params.dst.image.format = VK_FORMAT_R8_UNORM;
13529 params.dst.image.extent = defaultExtent;
13530 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
13531 params.dst.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
13532 params.allocationKind = testGroupParams->allocationKind;
13533 params.extensionFlags = testGroupParams->extensionFlags;
13534 params.queueSelection = testGroupParams->queueSelection;
13548 params.regions.push_back(copyRegion);
13550 group->addChild(new CopyBufferToImageTestCase(testCtx, "buffer_offset_relaxed", params));
13554 TestParams params;
13555 params.src.buffer.size = (defaultHalfSize - 1u) * defaultSize + defaultHalfSize;
13556 params.dst.image.imageType = VK_IMAGE_TYPE_2D;
13557 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
13558 params.dst.image.extent = defaultExtent;
13559 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
13560 params.dst.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
13561 params.allocationKind = testGroupParams->allocationKind;
13562 params.extensionFlags = testGroupParams->extensionFlags;
13563 params.queueSelection = testGroupParams->queueSelection;
13577 params.regions.push_back(copyRegion);
13579 group->addChild(new CopyBufferToImageTestCase(testCtx, "tightly_sized_buffer", params));
13583 TestParams params;
13585 params.src.buffer.size = defaultSize * bufferImageHeight;
13586 params.dst.image.imageType = VK_IMAGE_TYPE_2D;
13587 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
13588 params.dst.image.extent = defaultExtent;
13589 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
13590 params.dst.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
13591 params.allocationKind = testGroupParams->allocationKind;
13592 params.extensionFlags = testGroupParams->extensionFlags;
13593 params.queueSelection = testGroupParams->queueSelection;
13607 params.regions.push_back(copyRegion);
13609 group->addChild(new CopyBufferToImageTestCase(testCtx, "larger_buffer", params));
13613 TestParams params;
13614 params.src.buffer.size = (defaultHalfSize - 1u) * defaultSize + defaultHalfSize + defaultQuarterSize;
13615 params.dst.image.imageType = VK_IMAGE_TYPE_2D;
13616 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
13617 params.dst.image.extent = defaultExtent;
13618 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
13619 params.dst.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
13620 params.allocationKind = testGroupParams->allocationKind;
13621 params.extensionFlags = testGroupParams->extensionFlags;
13622 params.queueSelection = testGroupParams->queueSelection;
13636 params.regions.push_back(copyRegion);
13638 group->addChild(new CopyBufferToImageTestCase(testCtx, "tightly_sized_buffer_offset", params));
13642 TestParams params;
13644 params.src.buffer.size = defaultHalfSize * defaultHalfSize * arrayLayers;
13645 params.dst.image.imageType = VK_IMAGE_TYPE_2D;
13646 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
13647 params.dst.image.extent = defaultHalfExtent;
13648 params.dst.image.extent.depth = arrayLayers;
13649 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
13650 params.dst.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
13651 params.allocationKind = testGroupParams->allocationKind;
13652 params.extensionFlags = testGroupParams->extensionFlags;
13653 params.queueSelection = testGroupParams->queueSelection;
13655 const int pixelSize = tcu::getPixelSize(mapVkFormat(params.dst.image.format));
13676 params.regions.push_back(copyRegion);
13678 group->addChild(new CopyBufferToImageTestCase(testCtx, "array", params));
13682 TestParams params;
13685 params.src.buffer.size = defaultHalfSize * bufferImageHeight * arrayLayers;
13686 params.dst.image.imageType = VK_IMAGE_TYPE_2D;
13687 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
13688 params.dst.image.extent = defaultHalfExtent;
13689 params.dst.image.extent.depth = arrayLayers;
13690 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
13691 params.dst.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
13692 params.allocationKind = testGroupParams->allocationKind;
13693 params.extensionFlags = testGroupParams->extensionFlags;
13694 params.queueSelection = testGroupParams->queueSelection;
13696 const int pixelSize = tcu::getPixelSize(mapVkFormat(params.dst.image.format));
13717 params.regions.push_back(copyRegion);
13719 group->addChild(new CopyBufferToImageTestCase(testCtx, "array_larger_buffer", params));
13723 TestParams params;
13725 params.src.buffer.size = defaultHalfSize * defaultHalfSize * arrayLayers;
13726 params.dst.image.imageType = VK_IMAGE_TYPE_2D;
13727 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
13728 params.dst.image.extent = defaultHalfExtent;
13729 params.dst.image.extent.depth = arrayLayers;
13730 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
13731 params.dst.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
13732 params.allocationKind = testGroupParams->allocationKind;
13733 params.extensionFlags = testGroupParams->extensionFlags;
13734 params.queueSelection = testGroupParams->queueSelection;
13736 const int pixelSize = tcu::getPixelSize(mapVkFormat(params.dst.image.format));
13757 params.regions.push_back(copyRegion);
13759 group->addChild(new CopyBufferToImageTestCase(testCtx, "array_tightly_sized_buffer", params));
13763 TestParams params;
13766 params.src.buffer.size = defaultHalfSize * defaultHalfSize * layerCount;
13767 params.src.buffer.fillMode = FILL_MODE_RED;
13768 params.dst.image.imageType = VK_IMAGE_TYPE_2D;
13769 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
13770 params.dst.image.extent = defaultHalfExtent;
13771 params.dst.image.extent.depth = layerCount;
13772 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
13773 params.dst.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
13774 params.dst.image.fillMode = FILL_MODE_RED;
13775 params.allocationKind = testGroupParams->allocationKind;
13776 params.extensionFlags = testGroupParams->extensionFlags;
13777 params.queueSelection = testGroupParams->queueSelection;
13778 params.extensionFlags |= MAINTENANCE_5;
13801 params.regions.push_back(copyRegion);
13803 group->addChild(new CopyBufferToImageTestCase(testCtx, "array_all_remaining_layers", params));
13807 TestParams params;
13810 params.src.buffer.size = defaultHalfSize * defaultHalfSize * layerCount;
13811 params.src.buffer.fillMode = FILL_MODE_RED;
13812 params.dst.image.imageType = VK_IMAGE_TYPE_2D;
13813 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
13814 params.dst.image.extent = defaultHalfExtent;
13815 params.dst.image.extent.depth = layerCount;
13816 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
13817 params.dst.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
13818 params.dst.image.fillMode = FILL_MODE_RED;
13819 params.allocationKind = testGroupParams->allocationKind;
13820 params.extensionFlags = testGroupParams->extensionFlags;
13821 params.queueSelection = testGroupParams->queueSelection;
13822 params.extensionFlags |= MAINTENANCE_5;
13845 params.regions.push_back(copyRegion);
13847 group->addChild(new CopyBufferToImageTestCase(testCtx, "array_not_all_remaining_layers", params));
13856 TestParams params;
13857 params.src.buffer.size = defaultSize;
13858 params.dst.buffer.size = defaultSize;
13859 params.allocationKind = testGroupParams->allocationKind;
13860 params.extensionFlags = testGroupParams->extensionFlags;
13861 params.queueSelection = testGroupParams->queueSelection;
13872 params.regions.push_back(copyRegion);
13874 group->addChild(new BufferToBufferTestCase(testCtx, "whole", params));
13879 TestParams params;
13880 params.src.buffer.size = defaultQuarterSize;
13881 params.dst.buffer.size = defaultQuarterSize;
13882 params.allocationKind = testGroupParams->allocationKind;
13883 params.extensionFlags = testGroupParams->extensionFlags;
13884 params.queueSelection = testGroupParams->queueSelection;
13895 params.regions.push_back(copyRegion);
13897 group->addChild(new BufferToBufferTestCase(testCtx, "partial", params));
13902 TestParams params;
13903 params.src.buffer.size = size;
13904 params.dst.buffer.size = size * (size + 1);
13905 params.allocationKind = testGroupParams->allocationKind;
13906 params.extensionFlags = testGroupParams->extensionFlags;
13907 params.queueSelection = testGroupParams->queueSelection;
13921 params.regions.push_back(copyRegion);
13924 group->addChild(new BufferToBufferTestCase(testCtx, "regions", params));
13928 TestParams params;
13929 params.src.buffer.size = 32;
13930 params.dst.buffer.size = 32;
13931 params.allocationKind = testGroupParams->allocationKind;
13932 params.extensionFlags = testGroupParams->extensionFlags;
13933 params.queueSelection = testGroupParams->queueSelection;
13947 params.regions.push_back(copyRegion);
13950 group->addChild(new BufferToBufferTestCase(testCtx, "unaligned_regions", params));
13954 void addBlittingImageSimpleTests (tcu::TestCaseGroup* group, TestParams& params)
13960 params.filter = VK_FILTER_NEAREST;
13962 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
13963 group->addChild(new BlitImageTestCase(testCtx, "nearest", params));
13965 params.dst.image.format = VK_FORMAT_R32_SFLOAT;
13966 group->addChild(new BlitImageTestCase(testCtx, getFormatCaseName(params.dst.image.format) + "_nearest", params));
13968 params.dst.image.format = VK_FORMAT_B8G8R8A8_UNORM;
13969 group->addChild(new BlitImageTestCase(testCtx, getFormatCaseName(params.dst.image.format) + "_nearest", params));
13974 params.filter = VK_FILTER_LINEAR;
13976 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
13977 group->addChild(new BlitImageTestCase(testCtx, "linear", params));
13979 params.dst.image.format = VK_FORMAT_R32_SFLOAT;
13980 group->addChild(new BlitImageTestCase(testCtx, getFormatCaseName(params.dst.image.format) + "_linear", params));
13982 params.dst.image.format = VK_FORMAT_B8G8R8A8_UNORM;
13983 group->addChild(new BlitImageTestCase(testCtx, getFormatCaseName(params.dst.image.format) + "_linear", params));
13988 if (params.dst.image.imageType == VK_IMAGE_TYPE_2D)
13990 params.filter = VK_FILTER_CUBIC_EXT;
13992 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
13993 group->addChild(new BlitImageTestCase(testCtx, "cubic", params));
13995 params.dst.image.format = VK_FORMAT_R32_SFLOAT;
13996 group->addChild(new BlitImageTestCase(testCtx, getFormatCaseName(params.dst.image.format) + "_cubic", params));
13998 params.dst.image.format = VK_FORMAT_B8G8R8A8_UNORM;
13999 group->addChild(new BlitImageTestCase(testCtx, getFormatCaseName(params.dst.image.format) + "_cubic", params));
14003 void addBlittingImageSimpleWholeTests (tcu::TestCaseGroup* group, TestParams params)
14005 DE_ASSERT(params.src.image.imageType == params.dst.image.imageType);
14006 const deInt32 imageDepth = params.src.image.imageType == VK_IMAGE_TYPE_3D ? defaultSize : 1;
14007 params.src.image.extent = defaultExtent;
14008 params.dst.image.extent = defaultExtent;
14009 params.src.image.extent.depth = imageDepth;
14010 params.dst.image.extent.depth = imageDepth;
14030 params.regions.push_back(region);
14033 addBlittingImageSimpleTests(group, params);
14036 void addBlittingImageArrayTests (tcu::TestCaseGroup* group, TestParams params)
14038 DE_ASSERT(params.src.image.imageType == params.dst.image.imageType);
14045 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
14046 params.src.image.extent = defaultExtent;
14047 params.dst.image.extent = defaultExtent;
14048 params.src.image.extent.depth = layerCount;
14049 params.dst.image.extent.depth = layerCount;
14050 params.src.image.fillMode = FILL_MODE_RED;
14051 params.dst.image.fillMode = FILL_MODE_RED;
14052 params.filter = VK_FILTER_NEAREST;
14053 params.extensionFlags |= MAINTENANCE_5;
14081 params.regions.push_back(region);
14083 group->addChild(new BlitImageTestCase(testCtx, "all_remaining_layers", params));
14086 params.regions.clear();
14091 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
14092 params.src.image.extent = defaultExtent;
14093 params.dst.image.extent = defaultExtent;
14094 params.src.image.extent.depth = layerCount;
14095 params.dst.image.extent.depth = layerCount;
14096 params.filter = VK_FILTER_NEAREST;
14097 params.extensionFlags |= MAINTENANCE_5;
14125 params.regions.push_back(region);
14127 group->addChild(new BlitImageTestCase(testCtx, "not_all_remaining_layers", params));
14131 void addBlittingImageSimpleMirrorXYTests (tcu::TestCaseGroup* group, TestParams params)
14133 DE_ASSERT(params.src.image.imageType == params.dst.image.imageType);
14134 const deInt32 imageDepth = params.src.image.imageType == VK_IMAGE_TYPE_3D ? defaultSize : 1;
14135 params.src.image.extent = defaultExtent;
14136 params.dst.image.extent = defaultExtent;
14137 params.src.image.extent.depth = imageDepth;
14138 params.dst.image.extent.depth = imageDepth;
14158 params.regions.push_back(region);
14161 addBlittingImageSimpleTests(group, params);
14164 void addBlittingImageSimpleMirrorXTests (tcu::TestCaseGroup* group, TestParams params)
14166 DE_ASSERT(params.src.image.imageType == params.dst.image.imageType);
14167 const deInt32 imageDepth = params.src.image.imageType == VK_IMAGE_TYPE_3D ? defaultSize : 1;
14168 params.src.image.extent = defaultExtent;
14169 params.dst.image.extent = defaultExtent;
14170 params.src.image.extent.depth = imageDepth;
14171 params.dst.image.extent.depth = imageDepth;
14191 params.regions.push_back(region);
14194 addBlittingImageSimpleTests(group, params);
14197 void addBlittingImageSimpleMirrorYTests (tcu::TestCaseGroup* group, TestParams params)
14199 DE_ASSERT(params.src.image.imageType == params.dst.image.imageType);
14200 const deInt32 imageDepth = params.src.image.imageType == VK_IMAGE_TYPE_3D ? defaultSize : 1;
14201 params.src.image.extent = defaultExtent;
14202 params.dst.image.extent = defaultExtent;
14203 params.src.image.extent.depth = imageDepth;
14204 params.dst.image.extent.depth = imageDepth;
14224 params.regions.push_back(region);
14227 addBlittingImageSimpleTests(group, params);
14230 void addBlittingImageSimpleMirrorZTests (tcu::TestCaseGroup* group, TestParams params)
14232 DE_ASSERT(params.src.image.imageType == params.dst.image.imageType);
14233 DE_ASSERT(params.src.image.imageType == VK_IMAGE_TYPE_3D);
14234 params.src.image.extent = defaultExtent;
14235 params.dst.image.extent = defaultExtent;
14236 params.src.image.extent.depth = defaultSize;
14237 params.dst.image.extent.depth = defaultSize;
14257 params.regions.push_back(region);
14260 addBlittingImageSimpleTests(group, params);
14263 void addBlittingImageSimpleMirrorSubregionsTests (tcu::TestCaseGroup* group, TestParams params)
14265 DE_ASSERT(params.src.image.imageType == params.dst.image.imageType);
14266 const deInt32 imageDepth = params.src.image.imageType == VK_IMAGE_TYPE_3D ? defaultSize : 1;
14267 params.src.image.extent = defaultExtent;
14268 params.dst.image.extent = defaultExtent;
14269 params.src.image.extent.depth = imageDepth;
14270 params.dst.image.extent.depth = imageDepth;
14291 params.regions.push_back(region);
14312 params.regions.push_back(region);
14334 params.regions.push_back(region);
14356 params.regions.push_back(region);
14359 addBlittingImageSimpleTests(group, params);
14362 void addBlittingImageSimpleScalingWhole1Tests (tcu::TestCaseGroup* group, TestParams params)
14364 DE_ASSERT(params.src.image.imageType == params.dst.image.imageType);
14365 const deInt32 imageDepth = params.src.image.imageType == VK_IMAGE_TYPE_3D ? defaultSize : 1;
14366 const deInt32 halfImageDepth = params.src.image.imageType == VK_IMAGE_TYPE_3D ? defaultHalfSize : 1;
14367 params.src.image.extent = defaultExtent;
14368 params.dst.image.extent = defaultHalfExtent;
14369 params.src.image.extent.depth = imageDepth;
14370 params.dst.image.extent.depth = halfImageDepth;
14390 params.regions.push_back(region);
14393 addBlittingImageSimpleTests(group, params);
14396 void addBlittingImageSimpleScalingWhole2Tests (tcu::TestCaseGroup* group, TestParams params)
14398 DE_ASSERT(params.src.image.imageType == params.dst.image.imageType);
14399 const deInt32 imageDepth = params.src.image.imageType == VK_IMAGE_TYPE_3D ? defaultSize : 1;
14400 const deInt32 halfImageDepth = params.src.image.imageType == VK_IMAGE_TYPE_3D ? defaultHalfSize : 1;
14401 params.src.image.extent = defaultHalfExtent;
14402 params.dst.image.extent = defaultExtent;
14403 params.src.image.extent.depth = halfImageDepth;
14404 params.dst.image.extent.depth = imageDepth;
14424 params.regions.push_back(region);
14427 addBlittingImageSimpleTests(group, params);
14430 void addBlittingImageSimpleScalingAndOffsetTests (tcu::TestCaseGroup* group, TestParams params)
14432 DE_ASSERT(params.src.image.imageType == params.dst.image.imageType);
14433 const deInt32 imageDepth = params.src.image.imageType == VK_IMAGE_TYPE_3D ? defaultSize : 1;
14434 const deInt32 srcDepthOffset = params.src.image.imageType == VK_IMAGE_TYPE_3D ? defaultQuarterSize : 0;
14435 const deInt32 srcDepthSize = params.src.image.imageType == VK_IMAGE_TYPE_3D ? defaultQuarterSize * 3 : 1;
14436 params.src.image.extent = defaultExtent;
14437 params.dst.image.extent = defaultExtent;
14438 params.src.image.extent.depth = imageDepth;
14439 params.dst.image.extent.depth = imageDepth;
14459 params.regions.push_back(region);
14462 addBlittingImageSimpleTests(group, params);
14465 void addBlittingImageSimpleWithoutScalingPartialTests (tcu::TestCaseGroup* group, TestParams params)
14467 DE_ASSERT(params.src.image.imageType == params.dst.image.imageType);
14468 const bool is3dBlit = params.src.image.imageType == VK_IMAGE_TYPE_3D;
14469 params.src.image.extent = defaultExtent;
14470 params.dst.image.extent = defaultExtent;
14474 params.src.image.extent.depth = defaultSize;
14475 params.dst.image.extent.depth = defaultSize;
14497 params.regions.push_back(region);
14501 addBlittingImageSimpleTests(group, params);
14506 TestParams params;
14507 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
14508 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
14509 params.src.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
14510 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
14511 params.dst.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
14512 params.allocationKind = allocationKind;
14513 params.extensionFlags = extensionFlags;
14514 params.src.image.imageType = VK_IMAGE_TYPE_2D;
14515 params.dst.image.imageType = VK_IMAGE_TYPE_2D;
14516 addTestGroup(group, "whole", addBlittingImageSimpleWholeTests, params);
14517 addTestGroup(group, "array", addBlittingImageArrayTests, params);
14518 addTestGroup(group, "mirror_xy", addBlittingImageSimpleMirrorXYTests, params);
14519 addTestGroup(group, "mirror_x", addBlittingImageSimpleMirrorXTests, params);
14520 addTestGroup(group, "mirror_y", addBlittingImageSimpleMirrorYTests, params);
14521 addTestGroup(group, "mirror_subregions", addBlittingImageSimpleMirrorSubregionsTests, params);
14522 addTestGroup(group, "scaling_whole1", addBlittingImageSimpleScalingWhole1Tests, params);
14523 addTestGroup(group, "scaling_whole2", addBlittingImageSimpleScalingWhole2Tests, params);
14524 addTestGroup(group, "scaling_and_offset", addBlittingImageSimpleScalingAndOffsetTests, params);
14525 addTestGroup(group, "without_scaling_partial", addBlittingImageSimpleWithoutScalingPartialTests, params);
14527 params.src.image.imageType = VK_IMAGE_TYPE_3D;
14528 params.dst.image.imageType = VK_IMAGE_TYPE_3D;
14529 addTestGroup(group, "whole_3d", addBlittingImageSimpleWholeTests, params);
14530 addTestGroup(group, "mirror_xy_3d", addBlittingImageSimpleMirrorXYTests, params);
14531 addTestGroup(group, "mirror_x_3d", addBlittingImageSimpleMirrorXTests, params);
14532 addTestGroup(group, "mirror_y_3d", addBlittingImageSimpleMirrorYTests, params);
14533 addTestGroup(group, "mirror_z_3d", addBlittingImageSimpleMirrorZTests, params);
14534 addTestGroup(group, "mirror_subregions_3d", addBlittingImageSimpleMirrorSubregionsTests, params);
14535 addTestGroup(group, "scaling_whole1_3d", addBlittingImageSimpleScalingWhole1Tests, params);
14536 addTestGroup(group, "scaling_whole2_3d", addBlittingImageSimpleScalingWhole2Tests, params);
14537 addTestGroup(group, "scaling_and_offset_3d", addBlittingImageSimpleScalingAndOffsetTests, params);
14538 addTestGroup(group, "without_scaling_partial_3d", addBlittingImageSimpleWithoutScalingPartialTests, params);
14566 TestParams params;
14575 if (testParams.params.allocationKind == ALLOCATION_KIND_DEDICATED)
14580 de::contains(dedicatedAllocationBlittingFormatsToTestSet, testParams.params.dst.image.format) ||
14581 de::contains(dedicatedAllocationBlittingFormatsToTestSet, testParams.params.src.image.format);
14676 testParams.params.src.image.tiling = blitSrcTilings[srcTilingNdx];
14680 testParams.params.src.image.operationLayout = blitSrcLayouts[srcLayoutNdx];
14683 if (testParams.params.src.image.tiling == VK_IMAGE_TILING_LINEAR && testParams.params.src.image.operationLayout == VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL)
14688 testParams.params.dst.image.tiling = blitDstTilings[dstTilingNdx];
14692 testParams.params.dst.image.operationLayout = blitDstLayouts[dstLayoutNdx];
14695 if (testParams.params.dst.image.tiling == VK_IMAGE_TILING_LINEAR && testParams.params.dst.image.operationLayout == VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL)
14698 if ((testParams.params.dst.image.tiling == VK_IMAGE_TILING_LINEAR && !de::contains(linearOtherImageFormatsToTestSet, testParams.params.src.image.format)) ||
14699 (testParams.params.src.image.tiling == VK_IMAGE_TILING_LINEAR && !de::contains(linearOtherImageFormatsToTestSet, testParams.params.dst.image.format)))
14702 testParams.params.filter = VK_FILTER_NEAREST;
14703 const std::string testName = getBlitImageTilingLayoutCaseName(testParams.params.src.image.tiling, testParams.params.src.image.operationLayout) + "_" +
14704 getBlitImageTilingLayoutCaseName(testParams.params.dst.image.tiling, testParams.params.dst.image.operationLayout);
14705 group->addChild(new BlitImageTestCase(testCtx, testName + "_nearest", testParams.params));
14709 testParams.params.filter = VK_FILTER_LINEAR;
14710 group->addChild(new BlitImageTestCase(testCtx, testName + "_linear", testParams.params));
14715 testParams.params.filter = VK_FILTER_CUBIC_EXT;
14716 group->addChild(new BlitImageTestCase(testCtx, testName + "_cubic", testParams.params));
14719 if ((testParams.params.src.image.imageType == VK_IMAGE_TYPE_3D) && !isCompressedFormat(testParams.params.src.image.format))
14733 otherParams.params.dst.image.fillMode = FILL_MODE_WHITE;
14737 otherParams.params.src.image.fillMode = modeList[i].mode;
14739 otherParams.params.filter = VK_FILTER_LINEAR;
14740 group->addChild(new BlitImageTestCase(testCtx, testName + "_linear_stripes_" + modeList[i].name, otherParams.params));
14742 otherParams.params.filter = VK_FILTER_NEAREST;
14743 group->addChild(new BlitImageTestCase(testCtx, testName + "_nearest_stripes_" + modeList[i].name, otherParams.params));
14754 VkFormat srcFormat = testParams.params.src.image.format;
14760 testParams.params.dst.image.format = testParams.compatibleFormats[dstFormatIndex];
14761 if (!isSupportedByFramework(testParams.params.dst.image.format))
14767 addTestGroup(group, getFormatCaseName(testParams.params.dst.image.format), addBlittingImageAllFormatsColorSrcFormatDstFormatTests, testParams);
14776 testParams.params.dst.image.format = srcFormat;
14951 TestParams params;
14952 params.src.image.imageType = VK_IMAGE_TYPE_2D;
14953 params.dst.image.imageType = VK_IMAGE_TYPE_2D;
14954 params.src.image.extent = defaultExtent;
14955 params.dst.image.extent = defaultExtent;
14956 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
14957 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
14958 params.allocationKind = allocationKind;
14959 params.extensionFlags = extensionFlags;
14978 params.src.image.format = srcFormat;
14980 const bool onlyNearestAndLinear = de::contains(onlyNearestAndLinearFormatsToTest, params.src.image.format);
14983 params.regions = imageRegions.at(AstcImageSizeType::SIZE_64_64);
14985 params.regions = imageRegions.at(astcSizes.at(srcFormat));
14989 const VkOffset3D& srcImageSize = params.regions[0].imageBlit.srcOffsets[1];
14990 VkExtent3D& srcImageExtent = params.src.image.extent;
14991 VkExtent3D& dstImageExtent = params.dst.image.extent;
14999 params,
15004 addTestGroup(subGroup.get(), getFormatCaseName(params.src.image.format), addBlittingImageAllFormatsColorSrcFormatTests, testParams);
15015 TestParams params;
15016 params.src.image.imageType = VK_IMAGE_TYPE_1D;
15017 params.dst.image.imageType = VK_IMAGE_TYPE_1D;
15018 params.src.image.extent = default1dExtent;
15019 params.dst.image.extent = default1dExtent;
15020 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
15021 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
15022 params.allocationKind = allocationKind;
15023 params.extensionFlags = extensionFlags;
15043 params.regions.push_back(region);
15062 params.regions.push_back(region);
15071 params.src.image.format = sourceFormats[srcFormatIndex];
15072 if (!isSupportedByFramework(params.src.image.format))
15080 params,
15085 addTestGroup(subGroup.get(), getFormatCaseName(params.src.image.format), addBlittingImageAllFormatsColorSrcFormatTests, testParams);
15096 TestParams params;
15097 params.src.image.imageType = VK_IMAGE_TYPE_3D;
15098 params.dst.image.imageType = VK_IMAGE_TYPE_3D;
15099 params.src.image.extent = default3dExtent;
15100 params.dst.image.extent = default3dExtent;
15101 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
15102 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
15103 params.allocationKind = allocationKind;
15104 params.extensionFlags = extensionFlags;
15124 params.regions.push_back(region);
15143 params.regions.push_back(region);
15152 params.src.image.format = sourceFormats[srcFormatIndex];
15153 if (!isSupportedByFramework(params.src.image.format))
15161 params,
15166 addTestGroup(subGroup.get(), getFormatCaseName(params.src.image.format), addBlittingImageAllFormatsColorSrcFormatTests, testParams);
15174 void addBlittingImageAllFormatsDepthStencilFormatsTests (tcu::TestCaseGroup* group, TestParams params)
15189 params.src.image.operationLayout = blitSrcLayouts[srcLayoutNdx];
15193 params.dst.image.operationLayout = blitDstLayouts[dstLayoutNdx];
15194 params.filter = VK_FILTER_NEAREST;
15196 const std::string testName = getImageLayoutCaseName(params.src.image.operationLayout) + "_" +
15197 getImageLayoutCaseName(params.dst.image.operationLayout);
15199 group->addChild(new BlitImageTestCase(group->getTestContext(), testName + "_nearest", params));
15227 TestParams params;
15228 params.src.image.imageType = VK_IMAGE_TYPE_2D;
15229 params.src.image.extent = defaultExtent;
15230 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
15231 params.src.image.format = depthAndStencilFormats[compatibleFormatsIndex];
15232 params.dst.image.extent = defaultExtent;
15233 params.dst.image.imageType = VK_IMAGE_TYPE_2D;
15234 params.dst.image.format = params.src.image.format;
15235 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
15236 params.allocationKind = allocationKind;
15237 params.extensionFlags = extensionFlags;
15239 bool hasDepth = tcu::hasDepthComponent(mapVkFormat(params.src.image.format).order);
15240 bool hasStencil = tcu::hasStencilComponent(mapVkFormat(params.src.image.format).order);
15260 params.regions.push_back(region);
15272 params.regions.push_back(region);
15292 params.regions.push_back(region);
15304 params.regions.push_back(region);
15318 params.regions.push_back(region);
15322 const std::string testName = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format);
15323 addTestGroup(subGroup.get(), testName, addBlittingImageAllFormatsDepthStencilFormatsTests, params);
15327 params.extensionFlags |= SEPARATE_DEPTH_STENCIL_LAYOUT;
15328 const std::string testName2 = getFormatCaseName(params.src.image.format) + "_" +
15329 getFormatCaseName(params.dst.image.format) + "_separate_layouts";
15330 addTestGroup(subGroup.get(), testName2, addBlittingImageAllFormatsDepthStencilFormatsTests, params);
15343 TestParams params;
15344 params.src.image.imageType = VK_IMAGE_TYPE_1D;
15345 params.dst.image.imageType = VK_IMAGE_TYPE_1D;
15346 params.src.image.extent = default1dExtent;
15347 params.dst.image.extent = default1dExtent;
15348 params.src.image.format = depthAndStencilFormats[compatibleFormatsIndex];
15349 params.dst.image.format = params.src.image.format;
15350 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
15351 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
15352 params.allocationKind = allocationKind;
15353 params.extensionFlags = extensionFlags;
15355 bool hasDepth = tcu::hasDepthComponent(mapVkFormat(params.src.image.format).order);
15356 bool hasStencil = tcu::hasStencilComponent(mapVkFormat(params.src.image.format).order);
15376 params.regions.push_back(region);
15388 params.regions.push_back(region);
15408 params.regions.push_back(region);
15420 params.regions.push_back(region);
15434 params.regions.push_back(region);
15438 const std::string testName = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format);
15439 addTestGroup(subGroup.get(), testName, addBlittingImageAllFormatsDepthStencilFormatsTests, params);
15443 params.extensionFlags |= SEPARATE_DEPTH_STENCIL_LAYOUT;
15444 const std::string testName2 = getFormatCaseName(params.src.image.format) + "_" +
15445 getFormatCaseName(params.dst.image.format) + "_separate_layouts";
15446 addTestGroup(subGroup.get(), testName2, addBlittingImageAllFormatsDepthStencilFormatsTests, params);
15459 TestParams params;
15460 params.src.image.imageType = VK_IMAGE_TYPE_3D;
15461 params.dst.image.imageType = VK_IMAGE_TYPE_3D;
15462 params.src.image.extent = default3dExtent;
15463 params.dst.image.extent = default3dExtent;
15464 params.src.image.format = depthAndStencilFormats[compatibleFormatsIndex];
15465 params.dst.image.format = params.src.image.format;
15466 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
15467 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
15468 params.allocationKind = allocationKind;
15469 params.extensionFlags = extensionFlags;
15471 bool hasDepth = tcu::hasDepthComponent(mapVkFormat(params.src.image.format).order);
15472 bool hasStencil = tcu::hasStencilComponent(mapVkFormat(params.src.image.format).order);
15492 params.regions.push_back(region);
15504 params.regions.push_back(region);
15524 params.regions.push_back(region);
15536 params.regions.push_back(region);
15550 params.regions.push_back(region);
15554 const std::string testName = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format);
15555 addTestGroup(subGroup.get(), testName, addBlittingImageAllFormatsDepthStencilFormatsTests, params);
15559 params.extensionFlags |= SEPARATE_DEPTH_STENCIL_LAYOUT;
15560 const std::string testName2 = getFormatCaseName(params.src.image.format) + "_" +
15561 getFormatCaseName(params.dst.image.format) + "_separate_layouts";
15562 addTestGroup(subGroup.get(), testName2, addBlittingImageAllFormatsDepthStencilFormatsTests, params);
15587 testParams.params.src.image.operationLayout = blitSrcLayouts[srcLayoutNdx];
15590 testParams.params.dst.image.operationLayout = blitDstLayouts[dstLayoutNdx];
15592 testParams.params.filter = VK_FILTER_NEAREST;
15593 const std::string testName = getImageLayoutCaseName(testParams.params.src.image.operationLayout) + "_" +
15594 getImageLayoutCaseName(testParams.params.dst.image.operationLayout);
15595 group->addChild(new BlitMipmapTestCase(testCtx, testName + "_nearest", testParams.params));
15599 testParams.params.filter = VK_FILTER_LINEAR;
15600 group->addChild(new BlitMipmapTestCase(testCtx, testName + "_linear", testParams.params));
15605 testParams.params.filter = VK_FILTER_CUBIC_EXT;
15606 group->addChild(new BlitMipmapTestCase(testCtx, testName + "_cubic", testParams.params));
15634 TestParams params;
15635 params.src.image.imageType = VK_IMAGE_TYPE_2D;
15636 params.src.image.extent = defaultExtent;
15637 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
15638 params.dst.image.imageType = VK_IMAGE_TYPE_2D;
15639 params.dst.image.extent = defaultExtent;
15640 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
15641 params.allocationKind = allocationKind;
15642 params.extensionFlags = extensionFlags;
15643 params.mipLevels = deLog2Floor32(deMaxu32(defaultExtent.width, defaultExtent.height)) + 1u;
15644 params.singleCommand = DE_TRUE;
15647 for (deUint32 mipLevelNdx = 0u; mipLevelNdx < params.mipLevels; mipLevelNdx++)
15667 params.regions.push_back(region);
15692 params.src.image.format = compatibleFormats[srcFormatIndex];
15693 params.dst.image.format = compatibleFormats[srcFormatIndex];
15695 if (!isSupportedByFramework(params.src.image.format))
15698 const bool onlyNearestAndLinear = de::contains(onlyNearestAndLinearFormatsToTest, params.src.image.format);
15701 testParams.params = params;
15705 testParams.params.src.image.extent.depth = layerCount;
15706 testParams.params.dst.image.extent.depth = layerCount;
15708 for (size_t regionNdx = 0; regionNdx < testParams.params.regions.size(); regionNdx++)
15710 testParams.params.regions[regionNdx].imageBlit.srcSubresource.layerCount = layerCount;
15711 testParams.params.regions[regionNdx].imageBlit.dstSubresource.layerCount = layerCount;
15714 addTestGroup(layerCountGroup.get(), getFormatCaseName(params.src.image.format), addBlittingImageAllFormatsMipmapFormatTests, testParams);
15743 TestParams params;
15744 params.src.image.imageType = VK_IMAGE_TYPE_2D;
15745 params.src.image.extent = defaultExtent;
15746 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
15747 params.dst.image.imageType = VK_IMAGE_TYPE_2D;
15748 params.dst.image.extent = defaultExtent;
15749 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
15750 params.allocationKind = allocationKind;
15751 params.extensionFlags = extensionFlags;
15752 params.mipLevels = deLog2Floor32(deMaxu32(defaultExtent.width, defaultExtent.height)) + 1u;
15753 params.singleCommand = DE_FALSE;
15756 for (deUint32 mipLevelNdx = 1u; mipLevelNdx < params.mipLevels; mipLevelNdx++)
15779 params.regions.push_back(region);
15804 params.src.image.format = compatibleFormats[srcFormatIndex];
15805 params.dst.image.format = compatibleFormats[srcFormatIndex];
15807 if (!isSupportedByFramework(params.src.image.format))
15810 const bool onlyNearestAndLinear = de::contains(onlyNearestAndLinearFormatsToTest, params.src.image.format);
15813 testParams.params = params;
15817 testParams.params.src.image.extent.depth = layerCount;
15818 testParams.params.dst.image.extent.depth = layerCount;
15820 for (size_t regionNdx = 0; regionNdx < testParams.params.regions.size(); regionNdx++)
15822 testParams.params.regions[regionNdx].imageBlit.srcSubresource.layerCount = layerCount;
15823 testParams.params.regions[regionNdx].imageBlit.dstSubresource.layerCount = layerCount;
15826 addTestGroup(layerCountGroup.get(), getFormatCaseName(params.src.image.format), addBlittingImageAllFormatsMipmapFormatTests, testParams);
15845 params.barrierCount = barrierCount;
15850 params.src.image.format = compatibleFormatsUInts[srcFormatIndex];
15851 params.dst.image.format = compatibleFormatsUInts[srcFormatIndex];
15853 if (!isSupportedByFramework(params.src.image.format))
15857 testParams.params = params;
15861 testParams.params.src.image.extent.depth = layerCount;
15862 testParams.params.dst.image.extent.depth = layerCount;
15864 for (size_t regionNdx = 0; regionNdx < testParams.params.regions.size(); regionNdx++)
15866 testParams.params.regions[regionNdx].imageBlit.srcSubresource.layerCount = layerCount;
15867 testParams.params.regions[regionNdx].imageBlit.dstSubresource.layerCount = layerCount;
15870 addTestGroup(barrierCountGroup.get(), getFormatCaseName(params.src.image.format), addBlittingImageAllFormatsMipmapFormatTests, testParams);
15910 TestParams params;
15911 params.src.image.imageType = VK_IMAGE_TYPE_2D;
15912 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
15913 params.src.image.extent = resolveExtent;
15914 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
15915 params.src.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
15916 params.dst.image.imageType = VK_IMAGE_TYPE_2D;
15917 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
15918 params.dst.image.extent = resolveExtent;
15919 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
15920 params.dst.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
15921 params.allocationKind = allocationKind;
15922 params.extensionFlags = extensionFlags;
15943 params.regions.push_back(imageResolve);
15948 params.imageOffset = false;
15949 params.samples = samples[samplesIndex];
15950 group->addChild(new ResolveImageToImageTestCase(group->getTestContext(), getSampleCountCaseName(samples[samplesIndex]), params));
15951 params.imageOffset = true;
15953 group->addChild(new ResolveImageToImageTestCase(group->getTestContext(), getSampleCountCaseName(samples[samplesIndex]) + "_bind_offset", params));
15960 TestParams params;
15961 params.src.image.imageType = VK_IMAGE_TYPE_2D;
15962 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
15963 params.src.image.extent = resolveExtent;
15964 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
15965 params.src.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
15966 params.dst.image.imageType = VK_IMAGE_TYPE_2D;
15967 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
15968 params.dst.image.extent = resolveExtent;
15969 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
15970 params.dst.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
15971 params.allocationKind = allocationKind;
15972 params.extensionFlags = extensionFlags;
15993 params.regions.push_back(imageResolve);
15998 params.samples = samples[samplesIndex];
15999 params.imageOffset = false;
16000 group->addChild(new ResolveImageToImageTestCase(group->getTestContext(), getSampleCountCaseName(samples[samplesIndex]), params));
16001 params.imageOffset = true;
16003 group->addChild(new ResolveImageToImageTestCase(group->getTestContext(), getSampleCountCaseName(samples[samplesIndex]) + "_bind_offset", params));
16010 TestParams params;
16011 params.src.image.imageType = VK_IMAGE_TYPE_2D;
16012 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16013 params.src.image.extent = resolveExtent;
16014 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
16015 params.src.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
16016 params.dst.image.imageType = VK_IMAGE_TYPE_2D;
16017 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16018 params.dst.image.extent = resolveExtent;
16019 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
16020 params.dst.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
16021 params.allocationKind = allocationKind;
16022 params.extensionFlags = extensionFlags;
16023 params.imageOffset = allocationKind != ALLOCATION_KIND_DEDICATED;
16047 params.regions.push_back(imageResolve);
16053 params.samples = samples[samplesIndex];
16054 group->addChild(new ResolveImageToImageTestCase(group->getTestContext(), getSampleCountCaseName(samples[samplesIndex]), params));
16060 TestParams params;
16061 params.src.image.imageType = VK_IMAGE_TYPE_2D;
16062 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16063 params.src.image.extent = defaultExtent;
16064 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
16065 params.src.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
16066 params.dst.image.imageType = VK_IMAGE_TYPE_2D;
16067 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16068 params.dst.image.extent = defaultExtent;
16069 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
16070 params.dst.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
16071 params.allocationKind = allocationKind;
16072 params.extensionFlags = extensionFlags;
16094 params.regions.push_back(imageResolve);
16099 params.samples = samples[samplesIndex];
16100 params.imageOffset = false;
16101 group->addChild(new ResolveImageToImageTestCase(group->getTestContext(), getSampleCountCaseName(samples[samplesIndex]), params, COPY_MS_IMAGE_TO_MS_IMAGE));
16102 params.imageOffset = true;
16104 group->addChild(new ResolveImageToImageTestCase(group->getTestContext(), getSampleCountCaseName(samples[samplesIndex]) + "_bind_offset", params, COPY_MS_IMAGE_TO_MS_IMAGE));
16114 TestParams params;
16115 params.src.image.imageType = VK_IMAGE_TYPE_2D;
16116 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16117 params.src.image.extent = defaultExtent;
16118 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
16119 params.src.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
16120 params.dst.image.imageType = VK_IMAGE_TYPE_2D;
16121 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16122 params.dst.image.extent = defaultExtent;
16123 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
16124 params.dst.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
16125 params.allocationKind = allocationKind;
16126 params.extensionFlags = extensionFlags;
16148 params.regions.push_back(imageResolve);
16153 params.samples = sample;
16154 computeGroup->addChild(new ResolveImageToImageTestCase(group->getTestContext(), getSampleCountCaseName(sample), params, COPY_MS_IMAGE_TO_MS_IMAGE_COMPUTE));
16155 transferGroup->addChild(new ResolveImageToImageTestCase(group->getTestContext(), getSampleCountCaseName(sample), params, COPY_MS_IMAGE_TO_MS_IMAGE_TRANSFER));
16164 TestParams params;
16165 params.src.image.imageType = VK_IMAGE_TYPE_2D;
16166 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16167 params.src.image.extent = defaultExtent;
16168 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
16169 params.src.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
16170 params.dst.image.imageType = VK_IMAGE_TYPE_2D;
16171 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16172 params.dst.image.extent = defaultExtent;
16173 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
16174 params.dst.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
16175 params.allocationKind = allocationKind;
16176 params.extensionFlags = extensionFlags;
16198 params.regions.push_back(imageResolve);
16203 params.samples = samples[samplesIndex];
16204 params.imageOffset = false;
16205 group->addChild(new ResolveImageToImageTestCase(group->getTestContext(), getSampleCountCaseName(samples[samplesIndex]), params, COPY_MS_IMAGE_TO_MS_IMAGE_NO_CAB));
16206 params.imageOffset = true;
16208 group->addChild(new ResolveImageToImageTestCase(group->getTestContext(), getSampleCountCaseName(samples[samplesIndex]) + "_bind_offset", params, COPY_MS_IMAGE_TO_MS_IMAGE_NO_CAB));
16215 TestParams params;
16216 params.src.image.imageType = VK_IMAGE_TYPE_2D;
16217 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16218 params.src.image.extent = defaultExtent;
16219 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
16220 params.src.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
16221 params.dst.image.imageType = VK_IMAGE_TYPE_2D;
16222 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16223 params.dst.image.extent = defaultExtent;
16224 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
16225 params.dst.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
16226 params.allocationKind = allocationKind;
16227 params.extensionFlags = extensionFlags;
16249 params.regions.push_back(imageResolve);
16267 params.src.image.operationLayout = imageLayouts[srcLayoutIndex].layout;
16268 params.dst.image.operationLayout = imageLayouts[dstLayoutIndex].layout;
16269 if (params.src.image.operationLayout == VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL ||
16270 params.dst.image.operationLayout == VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL)
16272 params.samples = samples[samplesIndex];
16274 params.imageOffset = false;
16275 group->addChild(new ResolveImageToImageTestCase(group->getTestContext(), testName, params, COPY_MS_IMAGE_TO_MS_IMAGE));
16276 params.imageOffset = true;
16278 group->addChild(new ResolveImageToImageTestCase(group->getTestContext(), testName + "_bind_offset", params, COPY_MS_IMAGE_TO_MS_IMAGE));
16285 TestParams params;
16286 params.src.image.imageType = VK_IMAGE_TYPE_2D;
16287 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16288 params.src.image.extent = defaultExtent;
16289 params.src.image.extent.depth = 5u;
16290 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
16291 params.src.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
16292 params.dst.image.imageType = VK_IMAGE_TYPE_2D;
16293 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16294 params.dst.image.extent = defaultExtent;
16295 params.dst.image.extent.depth = 5u;
16296 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
16297 params.dst.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
16298 params.allocationKind = allocationKind;
16299 params.extensionFlags = extensionFlags;
16301 for (deUint32 layerNdx=0; layerNdx < params.src.image.extent.depth; ++layerNdx)
16322 params.regions.push_back(imageResolve);
16327 params.samples = samples[samplesIndex];
16328 params.imageOffset = false;
16329 group->addChild(new ResolveImageToImageTestCase(group->getTestContext(), getSampleCountCaseName(samples[samplesIndex]), params, COPY_MS_IMAGE_LAYER_TO_MS_IMAGE));
16330 params.imageOffset = true;
16332 group->addChild(new ResolveImageToImageTestCase(group->getTestContext(), getSampleCountCaseName(samples[samplesIndex]) + "_bind_offset", params, COPY_MS_IMAGE_LAYER_TO_MS_IMAGE));
16339 TestParams params;
16340 params.src.image.imageType = VK_IMAGE_TYPE_2D;
16341 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16342 params.src.image.extent = resolveExtent;
16343 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
16344 params.src.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
16345 params.dst.image.imageType = VK_IMAGE_TYPE_2D;
16346 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16347 params.dst.image.extent = resolveExtent;
16348 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
16349 params.dst.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
16350 params.allocationKind = allocationKind;
16351 params.extensionFlags = extensionFlags;
16353 int32_t imageHalfWidth = getExtent3D(params.src.image).width / 2;
16354 int32_t imageHalfHeight = getExtent3D(params.src.image).height / 2;
16378 params.regions.push_back(imageResolve);
16402 params.regions.push_back(imageResolve);
16407 params.samples = samples[samplesIndex];
16408 params.imageOffset = false;
16409 group->addChild(new ResolveImageToImageTestCase(group->getTestContext(), getSampleCountCaseName(samples[samplesIndex]), params, COPY_MS_IMAGE_TO_MS_IMAGE_MULTIREGION));
16410 params.imageOffset = true;
16412 group->addChild(new ResolveImageToImageTestCase(group->getTestContext(), getSampleCountCaseName(samples[samplesIndex]) + "_bind_offset", params, COPY_MS_IMAGE_TO_MS_IMAGE_MULTIREGION));
16419 TestParams params;
16420 params.src.image.imageType = VK_IMAGE_TYPE_2D;
16421 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16422 params.src.image.extent = defaultExtent;
16423 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
16424 params.src.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
16425 params.dst.image.imageType = VK_IMAGE_TYPE_2D;
16426 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16427 params.dst.image.extent = defaultExtent;
16428 params.dst.image.extent.depth = 5u;
16429 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
16430 params.dst.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
16431 params.allocationKind = allocationKind;
16432 params.extensionFlags = extensionFlags;
16434 for (deUint32 layerNdx=0; layerNdx < params.dst.image.extent.depth; ++layerNdx)
16455 params.regions.push_back(imageResolve);
16460 params.samples = samples[samplesIndex];
16461 params.imageOffset = false;
16462 group->addChild(new ResolveImageToImageTestCase(group->getTestContext(), getSampleCountCaseName(samples[samplesIndex]), params, COPY_MS_IMAGE_TO_ARRAY_MS_IMAGE));
16463 params.imageOffset = true;
16465 group->addChild(new ResolveImageToImageTestCase(group->getTestContext(), getSampleCountCaseName(samples[samplesIndex]) + "_bind_offset", params, COPY_MS_IMAGE_TO_ARRAY_MS_IMAGE));
16473 TestParams params;
16475 params.src.image.imageType = VK_IMAGE_TYPE_2D;
16476 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16477 params.src.image.extent = defaultExtent;
16478 params.src.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
16479 params.dst.image.imageType = VK_IMAGE_TYPE_2D;
16480 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16481 params.dst.image.extent = defaultExtent;
16482 params.dst.image.extent.depth = layerCount;
16483 params.dst.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
16484 params.allocationKind = allocationKind;
16485 params.extensionFlags = extensionFlags;
16506 params.regions.push_back(imageResolve);
16510 params.samples = samples[samplesIndex];
16511 params.imageOffset = false;
16512 group->addChild(new ResolveImageToImageTestCase(group->getTestContext(), getSampleCountCaseName(samples[samplesIndex]), params, COPY_MS_IMAGE_TO_ARRAY_MS_IMAGE));
16513 params.imageOffset = true;
16515 group->addChild(new ResolveImageToImageTestCase(group->getTestContext(), getSampleCountCaseName(samples[samplesIndex]) + "_bind_offset", params, COPY_MS_IMAGE_TO_ARRAY_MS_IMAGE));
16521 TestParams params;
16524 params.src.image.imageType = VK_IMAGE_TYPE_2D;
16525 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16526 params.src.image.extent = defaultExtent;
16527 params.src.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
16528 params.dst.image.imageType = VK_IMAGE_TYPE_2D;
16529 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16530 params.dst.image.extent = defaultExtent;
16531 params.dst.image.extent.depth = layerCount;
16532 params.dst.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
16533 params.allocationKind = allocationKind;
16534 params.extensionFlags = extensionFlags;
16535 params.extensionFlags |= MAINTENANCE_5;
16556 params.regions.push_back(imageResolve);
16560 params.samples = samples[samplesIndex];
16561 params.imageOffset = false;
16562 group->addChild(new ResolveImageToImageTestCase(group->getTestContext(), getSampleCountCaseName(samples[samplesIndex]) + "_all_remaining_layers", params, COPY_MS_IMAGE_TO_ARRAY_MS_IMAGE));
16563 params.imageOffset = true;
16565 group->addChild(new ResolveImageToImageTestCase(group->getTestContext(), getSampleCountCaseName(samples[samplesIndex]) + "_all_remaining_layers_bind_offset", params, COPY_MS_IMAGE_TO_ARRAY_MS_IMAGE));
16571 TestParams params;
16574 params.src.image.imageType = VK_IMAGE_TYPE_2D;
16575 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16576 params.src.image.extent = defaultExtent;
16577 params.src.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
16578 params.dst.image.imageType = VK_IMAGE_TYPE_2D;
16579 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16580 params.dst.image.extent = defaultExtent;
16581 params.dst.image.extent.depth = layerCount;
16582 params.dst.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
16583 params.allocationKind = allocationKind;
16584 params.extensionFlags = extensionFlags;
16585 params.extensionFlags |= MAINTENANCE_5;
16606 params.regions.push_back(imageResolve);
16610 params.samples = samples[samplesIndex];
16611 params.imageOffset = false;
16612 group->addChild(new ResolveImageToImageTestCase(group->getTestContext(), getSampleCountCaseName(samples[samplesIndex]) + "_not_all_remaining_layers", params, COPY_MS_IMAGE_TO_ARRAY_MS_IMAGE));
16613 params.imageOffset = true;
16615 group->addChild(new ResolveImageToImageTestCase(group->getTestContext(), getSampleCountCaseName(samples[samplesIndex]) + "_not_all_remaining_layers_bind_offset", params, COPY_MS_IMAGE_TO_ARRAY_MS_IMAGE));
16624 TestParams params;
16625 params.src.image.imageType = VK_IMAGE_TYPE_2D;
16626 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16627 params.src.image.tiling = VK_IMAGE_TILING_OPTIMAL;
16628 params.src.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
16629 params.dst.image.imageType = VK_IMAGE_TYPE_2D;
16630 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16631 params.dst.image.tiling = VK_IMAGE_TILING_OPTIMAL;
16632 params.dst.image.operationLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
16633 params.allocationKind = allocationKind;
16634 params.extensionFlags = extensionFlags;
16654 params.regions.push_back(imageResolve);
16667 params.src.image.extent = srcImageSize;
16668 params.dst.image.extent = resolveExtent;
16671 params.samples = samples[samplesIndex];
16675 group->addChild(new ResolveImageToImageTestCase(testCtx, testName.str(), params));
16681 params.src.image.extent = resolveExtent;
16682 params.dst.image.extent = dstImageSize;
16685 params.samples = samples[samplesIndex];
16689 params.imageOffset = false;
16690 group->addChild(new ResolveImageToImageTestCase(testCtx, testName.str(), params));
16691 params.imageOffset = true;
16693 group->addChild(new ResolveImageToImageTestCase(testCtx, testName.str() + "_bind_offset", params));
16802 BufferOffsetParams params{srcOffset, dstOffset};
16803 addFunctionCase(subGroup.get(), de::toString(srcOffset) + "_" + de::toString(dstOffset), bufferOffsetTest, params);