Lines Matching refs:format

264 VkImageAspectFlags getAspectFlags (tcu::TextureFormat format)
267 aspectFlag |= (tcu::hasDepthComponent(format.order)? VK_IMAGE_ASPECT_DEPTH_BIT : 0);
268 aspectFlag |= (tcu::hasStencilComponent(format.order)? VK_IMAGE_ASPECT_STENCIL_BIT : 0);
276 VkImageAspectFlags getAspectFlags (VkFormat format)
278 if (isCompressedFormat(format))
281 return getAspectFlags(mapVkFormat(format));
284 tcu::TextureFormat getSizeCompatibleTcuTextureFormat (VkFormat format)
286 if (isCompressedFormat(format))
287 return (getBlockSizeInBytes(format) == 8) ? mapVkFormat(VK_FORMAT_R16G16B16A16_UINT) : mapVkFormat(VK_FORMAT_R32G32B32A32_UINT);
289 return mapVkFormat(format);
292 // This is effectively same as vk::isFloatFormat(mapTextureFormat(format))
295 // checked separately, and in some cases we construct PBA with a format that
297 bool isFloatFormat (tcu::TextureFormat format)
299 return tcu::getTextureChannelClass(format.type) == tcu::TEXTURECHANNELCLASS_FLOATING_POINT;
314 VkFormat format;
516 const bool isCompressed = isCompressedFormat(parms.format);
517 const deUint32 blockWidth = (isCompressed) ? getBlockWidth(parms.format) : 1u;
518 const deUint32 blockHeight = (isCompressed) ? getBlockHeight(parms.format) : 1u;
534 tcu::TextureFormat format;
539 format = tcu::TextureFormat(tcu::TextureFormat::D, tcu::TextureFormat::UNORM_INT16);
542 format = tcu::TextureFormat(tcu::TextureFormat::D, tcu::TextureFormat::UNSIGNED_INT_24_8_REV);
546 format = tcu::TextureFormat(tcu::TextureFormat::D, tcu::TextureFormat::FLOAT);
552 return format;
634 // In a combined format, fillWithComponentGradients expects stencil in the fourth component.
800 const VkImageAspectFlags formatAspect = (m_params.extensionFlags & SEPARATE_DEPTH_STENCIL_LAYOUT) ? getAspectFlags(imageAccess.getFormat()) : getAspectFlags(parms.format);
853 const bool isCompressed = isCompressedFormat(parms.format);
854 const deUint32 blockWidth = (isCompressed) ? getBlockWidth(parms.format) : 1u;
855 const deUint32 blockHeight = (isCompressed) ? getBlockHeight(parms.format) : 1u;
995 const VkImageAspectFlags formatAspect = getAspectFlags(imageParms.format);
1050 const bool isCompressed = isCompressedFormat(imageParms.format);
1051 const deUint32 blockWidth = (isCompressed) ? getBlockWidth(imageParms.format) : 1u;
1052 const deUint32 blockHeight = (isCompressed) ? getBlockHeight(imageParms.format) : 1u;
1056 // Copy image to buffer - note that there are cases where m_params.dst.image.format is not the same as dst.getFormat()
1057 const VkImageAspectFlags aspect = isCompressedFormat(m_params.dst.image.format) ?
1092 const tcu::TextureFormat imageFormat = getSizeCompatibleTcuTextureFormat(parms.format);
1283 m_params.src.image.format, // VkFormat format;
1310 m_params.dst.image.format, // VkFormat format;
1332 const bool srcCompressed = isCompressedFormat(m_params.src.image.format);
1333 const bool dstCompressed = isCompressedFormat(m_params.dst.image.format);
1335 const tcu::TextureFormat srcTcuFormat = getSizeCompatibleTcuTextureFormat(m_params.src.image.format);
1336 const tcu::TextureFormat dstTcuFormat = getSizeCompatibleTcuTextureFormat(m_params.dst.image.format);
1367 const deUint32 blockWidth = getBlockWidth(m_params.src.image.format);
1368 const deUint32 blockHeight = getBlockHeight(m_params.src.image.format);
1383 const deUint32 blockWidth = getBlockWidth(m_params.dst.image.format);
1384 const deUint32 blockHeight = getBlockHeight(m_params.dst.image.format);
1593 // CopyImage acts like a memcpy. Replace the destination format with the srcformat to use a memcpy.
1625 if (m_params.src.image.format == VK_FORMAT_A8_UNORM_KHR || m_params.dst.image.format == VK_FORMAT_A8_UNORM_KHR ||
1626 m_params.src.image.format == VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR || m_params.dst.image.format == VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR)
1636 m_params.src.image.format,
1643 m_params.dst.image.format,
1739 m_params.src.image.format, // VkFormat format;
1766 m_params.dst.image.format, // VkFormat format;
1788 const bool srcCompressed = isCompressedFormat(m_params.src.image.format);
1789 const bool dstCompressed = isCompressedFormat(m_params.dst.image.format);
1791 const tcu::TextureFormat srcTcuFormat = getSizeCompatibleTcuTextureFormat(m_params.src.image.format);
1792 const tcu::TextureFormat dstTcuFormat = getSizeCompatibleTcuTextureFormat(m_params.dst.image.format);
1822 const deUint32 blockWidth = getBlockWidth(m_params.src.image.format);
1823 const deUint32 blockHeight = getBlockHeight(m_params.src.image.format);
1833 const deUint32 blockWidth = getBlockWidth(m_params.dst.image.format);
1834 const deUint32 blockHeight = getBlockHeight(m_params.dst.image.format);
2063 // CopyImage acts like a memcpy. Replace the destination format with the srcformat to use a memcpy.
2100 m_params.src.image.format,
2107 m_params.dst.image.format,
2229 const int srcLevelWidth = (int)(m_params.src.buffer.size/4); // Here the format is VK_FORMAT_R32_UINT, we need to divide the buffer size by 4
2380 , m_textureFormat(mapVkFormat(testParams.src.image.format))
2398 m_params.src.image.format, // VkFormat format;
2638 , m_texture(TestTexture2DSp(new pipeline::TestTexture2DArray(mapVkCompressedFormat(testParams.src.image.format), testParams.src.image.extent.width, testParams.src.image.extent.height, testParams.arrayLayers)))
2688 m_params.src.image.format, // VkFormat format;
2733 // Barrier to get the source image's selected mip-level / layer in the right format for transfer.
2767 // Transition the selected miplevel to the right format for the transfer.
2842 context.getInstanceInterface().getPhysicalDeviceFormatProperties(context.getPhysicalDevice(), m_params.src.image.format, &formatProps);
2848 m_params.src.image.format,
2886 , m_textureFormat(mapVkFormat(testParams.dst.image.format))
2923 m_params.dst.image.format, // VkFormat format;
3149 bool isSupportedDepthStencilFormat(const InstanceInterface& vki, const VkPhysicalDevice physDevice, const VkFormat format)
3152 vki.getPhysicalDeviceFormatProperties(physDevice, format, &formatProps);
3158 , m_textureFormat(mapVkFormat(testParams.dst.image.format))
3166 const bool hasDepth = tcu::hasDepthComponent(mapVkFormat(m_params.dst.image.format).order);
3167 const bool hasStencil = tcu::hasStencilComponent(mapVkFormat(m_params.dst.image.format).order);
3169 if (!isSupportedDepthStencilFormat(vki, vkPhysDevice, testParams.dst.image.format))
3171 TCU_THROW(NotSupportedError, "Image format not supported.");
3179 // We must have D32F_S8 format, depth must be packed so we only need
3218 m_params.dst.image.format, // VkFormat format;
3568 // random initial values cause assertion during the decompression in case of COMPRESSEDTEXFORMAT_ETC1_RGB8 format
3618 const tcu::CompressedTexFormat format);
3621 const tcu::CompressedTexFormat format);
3654 m_params.src.image.format, // VkFormat format;
3681 m_params.dst.image.format, // VkFormat format;
3735 if (isCompressedFormat(srcImageParams.format))
3738 tcu::CompressedTexFormat compressedFormat = mapVkCompressedFormat(srcImageParams.format);
3745 const tcu::TextureFormat srcTcuFormat = mapVkFormat(srcImageParams.format);
3752 if (isCompressedFormat(dstImageParams.format))
3755 tcu::CompressedTexFormat compressedFormat = mapVkCompressedFormat(dstImageParams.format);
3762 const tcu::TextureFormat dstTcuFormat = mapVkFormat(dstImageParams.format);
3784 getAspectFlags(srcImageParams.format), // VkImageAspectFlags aspectMask;
3802 getAspectFlags(dstImageParams.format), // VkImageAspectFlags aspectMask;
3843 // if blit was done to a compressed format we need to decompress it to be able to verify it
3847 const tcu::CompressedTexFormat dstCompressedFormat (mapVkCompressedFormat(dstImageParams.format));
3873 tcu::Vec4 getFormatThreshold (const tcu::TextureFormat& format)
3877 switch (format.type)
3905 const tcu::IVec4 bits = tcu::getTextureFormatMantissaBitDepth(format);
3912 // Return value matching the channel order specified by the format
3913 if (format.order == tcu::TextureFormat::BGR || format.order == tcu::TextureFormat::BGRA)
3919 tcu::Vec4 getCompressedFormatThreshold(const tcu::CompressedTexFormat& format)
3924 switch (format)
4091 // Calculate threshold depending on channel width of destination format.
4120 const tcu::CompressedTexFormat format)
4129 const tcu::Vec4 srcMaxDiff = getCompressedFormatThreshold(format);
4142 if (((format == tcu::COMPRESSEDTEXFORMAT_BC6H_SFLOAT_BLOCK) ||
4143 (format == tcu::COMPRESSEDTEXFORMAT_BC6H_UFLOAT_BLOCK)))
4150 // a format that accepts large values we can end up with large diferences
4270 tcu::Vec4 getFloatOrFixedPointFormatThreshold (const tcu::TextureFormat& format)
4272 const tcu::TextureChannelClass channelClass = tcu::getTextureChannelClass(format.type);
4273 const tcu::IVec4 bitDepth = tcu::getTextureFormatBitDepth(format);
4277 return getFormatThreshold(format);
4370 // Prepare a source image with a matching (converted) pixel format. Ideally, we would've used a wrapper that
4469 const tcu::CompressedTexFormat format)
4483 const tcu::Vec4 srcMaxDiff (acceptedError + getCompressedFormatThreshold(format));
4503 // for compressed formats source buffer access is not actual compressed format
4504 // but equivalent uncompressed format that is some cases needs additional
4506 if ((format == tcu::COMPRESSEDTEXFORMAT_BC6H_SFLOAT_BLOCK) ||
4507 (format == tcu::COMPRESSEDTEXFORMAT_BC6H_UFLOAT_BLOCK))
4513 // format we need to clamp source to <-1;1> range as this will be done on
4516 // for this format we also need to clamp the result as precision of
4517 // this format is smaller then precision of calculations in framework;
4521 if (format == tcu::COMPRESSEDTEXFORMAT_BC6H_SFLOAT_BLOCK)
4534 // when tested compressed format is signed but the result format
4537 if ((format == tcu::COMPRESSEDTEXFORMAT_EAC_SIGNED_R11) ||
4538 (format == tcu::COMPRESSEDTEXFORMAT_EAC_SIGNED_RG11) ||
4539 (format == tcu::COMPRESSEDTEXFORMAT_BC4_SNORM_BLOCK) ||
4540 (format == tcu::COMPRESSEDTEXFORMAT_BC5_SNORM_BLOCK) ||
4541 (format == tcu::COMPRESSEDTEXFORMAT_BC6H_SFLOAT_BLOCK))
4610 const tcu::TextureFormat sourceFormat = tcu::getEffectiveDepthStencilTextureFormat(mapVkFormat(m_params.src.image.format), mode);
4622 const tcu::TextureFormat sourceFormat = tcu::getEffectiveDepthStencilTextureFormat(mapVkFormat(m_params.src.image.format), mode);
4636 const tcu::TextureFormat sourceFormat = mapVkFormat(m_params.src.image.format);
4680 tcu::Vec4 linearToSRGBIfNeeded (const tcu::TextureFormat& format, const tcu::Vec4& color)
4682 return isSRGB(format) ? linearToSRGB(color) : color;
5059 if (m_params.src.image.format == VK_FORMAT_A8_UNORM_KHR || m_params.dst.image.format == VK_FORMAT_A8_UNORM_KHR ||
5060 m_params.src.image.format == VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR || m_params.dst.image.format == VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR)
5066 m_params.src.image.format,
5073 TCU_THROW(NotSupportedError, "Source format not supported");
5076 m_params.dst.image.format,
5083 TCU_THROW(NotSupportedError, "Destination format not supported");
5089 context.getInstanceInterface().getPhysicalDeviceFormatProperties(context.getPhysicalDevice(), m_params.src.image.format, &srcFormatProperties);
5097 context.getInstanceInterface().getPhysicalDeviceFormatProperties(context.getPhysicalDevice(), m_params.dst.image.format, &dstFormatProperties);
5106 TCU_THROW(NotSupportedError, "Source format feature sampled image filter linear not supported");
5115 TCU_THROW(NotSupportedError, "Source format feature sampled image filter cubic not supported");
5165 m_params.src.image.format, // VkFormat format;
5192 m_params.dst.image.format, // VkFormat format;
5214 const tcu::TextureFormat srcTcuFormat = mapVkFormat(m_params.src.image.format);
5215 const tcu::TextureFormat dstTcuFormat = mapVkFormat(m_params.dst.image.format);
5522 const tcu::TextureFormat srcFormat = tcu::hasDepthComponent(resultAccess.getFormat().order) ? tcu::getEffectiveDepthStencilTextureFormat(mapVkFormat(m_params.src.image.format), mode) :
5523 tcu::hasStencilComponent(resultAccess.getFormat().order) ? tcu::getEffectiveDepthStencilTextureFormat(mapVkFormat(m_params.src.image.format), mode) :
5524 mapVkFormat(m_params.src.image.format);
5556 // Calculate threshold depending on channel width of destination format.
5813 m_params.src.image.format,
5833 m_params.dst.image.format,
5856 const VkFormatProperties srcFormatProperties = getPhysicalDeviceFormatProperties (vki, vkPhysDevice, m_params.src.image.format);
5862 const VkFormatProperties dstFormatProperties = getPhysicalDeviceFormatProperties (vki, vkPhysDevice, m_params.dst.image.format);
5869 TCU_THROW(NotSupportedError, "Source format feature sampled image filter linear not supported");
5877 TCU_THROW(NotSupportedError, "Source format feature sampled image filter cubic not supported");
6025 m_params.src.image.format, // VkFormat format;
6103 m_params.dst.image.format, // VkFormat format;
6202 m_params.src.image.format, // VkFormat format;
6327 m_params.src.image.format, // VkFormat format;
6440 const tcu::TextureFormat srcTcuFormat = mapVkFormat(m_params.src.image.format);
6441 const tcu::TextureFormat dstTcuFormat = mapVkFormat(m_params.dst.image.format);
6686 // CopyImage acts like a memcpy. Replace the destination format with the srcformat to use a memcpy.
6776 m_params.src.image.format, // VkFormat format;
6831 imageViews.push_back(makeImageView(vkd, device, m_multisampledImage.get(), VK_IMAGE_VIEW_TYPE_2D, m_params.src.image.format, makeImageSubresourceRange(VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 2u, 1u)));
6832 imageViews.push_back(makeImageView(vkd, device, m_multisampledCopyImage.get(), VK_IMAGE_VIEW_TYPE_2D, m_params.src.image.format, makeImageSubresourceRange(VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 4u, 1u)));
6836 imageViews.push_back(makeImageView(vkd, device, m_multisampledImage.get(), VK_IMAGE_VIEW_TYPE_2D, m_params.src.image.format, makeImageSubresourceRange(VK_IMAGE_ASPECT_COLOR_BIT, 0u, 1u, 0u, 1u)));
6840 imageViews.push_back(makeImageView(vkd, device, m_multisampledCopyImage.get(), VK_IMAGE_VIEW_TYPE_2D, m_params.dst.image.format, subresourceRange));
6999 const tcu::TextureFormat srcTcuFormat = mapVkFormat(m_params.src.image.format);
7439 m_params.src.image.format,
7445 m_params.dst.image.format,
7649 m_srcImage.format = testParameters.imageFormat;
7657 m_dstImage.format = testParameters.imageFormat;
7777 const tcu::TextureFormat srcTcuFormat = mapVkFormat(m_srcImage.format);
7778 const tcu::TextureFormat dstTcuFormat = mapVkFormat(m_dstImage.format);
7807 m_srcImage.format, // VkFormat format;
7843 m_srcImage.format, // VkFormat format
7951 m_srcImage.format, // VkFormat format;
8050 (getAspectFlags(m_srcImage.format)), // VkImageAspectFlags aspectMask
8298 m_srcImage.format, // VkFormat format;
8354 imageViews.push_back(makeImageView(vkd, device, srcImage, VK_IMAGE_VIEW_TYPE_2D, m_srcImage.format, makeImageSubresourceRange(aspectFlags, 0u, 1u, srcArrayLayer, 1u)));
8358 imageViews.push_back(makeImageView(vkd, device, dstImage, VK_IMAGE_VIEW_TYPE_2D, m_srcImage.format, subresourceRange));
8651 // In array layer copy tests the copied image should be in the layer 3 and other layers should be value of 0 or 0.0 depending on the format.
8827 std::string getFormatCaseName (VkFormat format)
8829 return de::toLower(de::toString(getFormatStr(format)).substr(10));
8863 params.src.image.format = VK_FORMAT_R8G8B8A8_UINT;
8868 params.dst.image.format = VK_FORMAT_R8G8B8A8_UINT;
8897 params.src.image.format = VK_FORMAT_R8G8B8A8_UINT;
8902 params.dst.image.format = VK_FORMAT_R32_UINT;
8931 params.src.image.format = VK_FORMAT_R8G8B8A8_UINT;
8936 params.dst.image.format = VK_FORMAT_R8G8B8A8_UINT;
8991 for (const auto& format : formats)
9002 params.src.image.format = format.format1;
9007 params.dst.image.format = format.format2;
9038 const std::string testCaseName = "partial_image_" + extent.name + "_" + format.name + "_" + clear.name;
9048 params.src.image.format = VK_FORMAT_D32_SFLOAT;
9053 params.dst.image.format = VK_FORMAT_D32_SFLOAT;
9089 params.src.image.format = VK_FORMAT_S8_UINT;
9094 params.dst.image.format = VK_FORMAT_S8_UINT;
9173 de::contains(dedicatedAllocationImageToImageFormatsToTestSet, testParams.params.dst.image.format) ||
9174 de::contains(dedicatedAllocationImageToImageFormatsToTestSet, testParams.params.src.image.format);
9182 // If testParams.compatibleFormats is nullptr, the destination format will be copied from the source 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;
9203 const std::string description = "Copy to destination format " + getFormatCaseName(dstFormat);
9785 params.src.image.format = compatibleFormats[srcFormatIndex];
9786 if (!isSupportedByFramework(params.src.image.format) && !isCompressedFormat(params.src.image.format))
9793 const std::string testName = getFormatCaseName(params.src.image.format);
9842 params.src.image.format = compatibleFormats[srcFormatIndex];
9843 if (!isSupportedByFramework(params.src.image.format) && !isCompressedFormat(params.src.image.format))
9850 const std::string testName = getFormatCaseName(params.src.image.format);
9902 params.src.image.format = compatibleFormats[srcFormatIndex];
9903 if (!isSupportedByFramework(params.src.image.format) && !isCompressedFormat(params.src.image.format))
9910 const std::string testName = getFormatCaseName(params.src.image.format);
9959 params.src.image.format = compatibleFormats[srcFormatIndex];
9960 if (!isSupportedByFramework(params.src.image.format) && !isCompressedFormat(params.src.image.format))
9967 const std::string testName = getFormatCaseName(params.src.image.format);
10015 params.src.image.format = compatibleFormats[srcFormatIndex];
10016 if (!isSupportedByFramework(params.src.image.format) && !isCompressedFormat(params.src.image.format))
10023 const std::string testName = getFormatCaseName(params.src.image.format);
10072 params.src.image.format = compatibleFormats[srcFormatIndex];
10073 if (!isSupportedByFramework(params.src.image.format) && !isCompressedFormat(params.src.image.format))
10080 const std::string testName = getFormatCaseName(params.src.image.format);
10132 params.src.image.format = compatibleFormats[srcFormatIndex];
10133 if (!isSupportedByFramework(params.src.image.format) && !isCompressedFormat(params.src.image.format))
10140 const std::string testName = getFormatCaseName(params.src.image.format);
10192 params.src.image.format = compatibleFormats[srcFormatIndex];
10193 if (!isSupportedByFramework(params.src.image.format) && !isCompressedFormat(params.src.image.format))
10200 const std::string testName = getFormatCaseName(params.src.image.format);
10248 params.src.image.format = compatibleFormats[srcFormatIndex];
10249 if (!isSupportedByFramework(params.src.image.format) && !isCompressedFormat(params.src.image.format))
10256 const std::string testName = getFormatCaseName(params.src.image.format);
10411 // Source image format
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());
10421 // Destination image format
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());
10519 params.src.image.format = depthAndStencilFormats[compatibleFormatsIndex];
10520 params.dst.image.format = params.src.image.format;
10527 bool hasDepth = tcu::hasDepthComponent(mapVkFormat(params.src.image.format).order);
10528 bool hasStencil = tcu::hasStencilComponent(mapVkFormat(params.src.image.format).order);
10570 const std::string testName = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format);
10576 const std::string testName2 = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format) + "_separate_layouts";
10595 params.src.image.format = depthAndStencilFormats[compatibleFormatsIndex];
10596 params.dst.image.format = params.src.image.format;
10604 bool hasDepth = tcu::hasDepthComponent(mapVkFormat(params.src.image.format).order);
10605 bool hasStencil = tcu::hasStencilComponent(mapVkFormat(params.src.image.format).order);
10647 const std::string testName = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format);
10653 const std::string testName2 = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format) + "_separate_layouts";
10672 params.src.image.format = depthAndStencilFormats[compatibleFormatsIndex];
10673 params.dst.image.format = params.src.image.format;
10681 bool hasDepth = tcu::hasDepthComponent(mapVkFormat(params.src.image.format).order);
10682 bool hasStencil = tcu::hasStencilComponent(mapVkFormat(params.src.image.format).order);
10727 const std::string testName = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format);
10733 const std::string testName2 = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format) + "_separate_layouts";
10752 params.src.image.format = depthAndStencilFormats[compatibleFormatsIndex];
10753 params.dst.image.format = params.src.image.format;
10761 bool hasDepth = tcu::hasDepthComponent(mapVkFormat(params.src.image.format).order);
10762 bool hasStencil = tcu::hasStencilComponent(mapVkFormat(params.src.image.format).order);
10805 const std::string testName = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format);
10811 const std::string testName2 = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format) + "_separate_layouts";
10840 const std::string testName3 = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format) + "_depth_stencil_aspects";
10860 params.src.image.format = depthAndStencilFormats[compatibleFormatsIndex];
10861 params.dst.image.format = params.src.image.format;
10868 bool hasDepth = tcu::hasDepthComponent(mapVkFormat(params.src.image.format).order);
10869 bool hasStencil = tcu::hasStencilComponent(mapVkFormat(params.src.image.format).order);
10912 const std::string testName = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format);
10918 const std::string testName2 = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format) + "_separate_layouts";
10947 const std::string testName3 = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format) + "_depth_stencil_aspects";
10967 params.src.image.format = depthAndStencilFormats[compatibleFormatsIndex];
10968 params.dst.image.format = params.src.image.format;
10976 bool hasDepth = tcu::hasDepthComponent(mapVkFormat(params.src.image.format).order);
10977 bool hasStencil = tcu::hasStencilComponent(mapVkFormat(params.src.image.format).order);
11020 const std::string testName = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format);
11026 const std::string testName2 = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format) + "_separate_layouts";
11055 const std::string testName3 = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format) + "_depth_stencil_aspects";
11075 params.src.image.format = depthAndStencilFormats[compatibleFormatsIndex];
11076 params.dst.image.format = params.src.image.format;
11084 bool hasDepth = tcu::hasDepthComponent(mapVkFormat(params.src.image.format).order);
11085 bool hasStencil = tcu::hasStencilComponent(mapVkFormat(params.src.image.format).order);
11130 const std::string testName = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format);
11136 const std::string testName2 = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format) + "_separate_layouts";
11155 params.src.image.format = depthAndStencilFormats[compatibleFormatsIndex];
11156 params.dst.image.format = params.src.image.format;
11164 bool hasDepth = tcu::hasDepthComponent(mapVkFormat(params.src.image.format).order);
11165 bool hasStencil = tcu::hasStencilComponent(mapVkFormat(params.src.image.format).order);
11210 const std::string testName = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format);
11216 const std::string testName2 = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format) + "_separate_layouts";
11235 params.src.image.format = depthAndStencilFormats[compatibleFormatsIndex];
11236 params.dst.image.format = params.src.image.format;
11243 bool hasDepth = tcu::hasDepthComponent(mapVkFormat(params.src.image.format).order);
11244 bool hasStencil = tcu::hasStencilComponent(mapVkFormat(params.src.image.format).order);
11286 const std::string testName = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format);
11292 const std::string testName2 = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format) + "_separate_layouts";
11316 params3DTo2D.src.image.format = VK_FORMAT_R8G8B8A8_UINT;
11322 params3DTo2D.dst.image.format = VK_FORMAT_R8G8B8A8_UINT;
11370 params2DTo3D.src.image.format = VK_FORMAT_R8G8B8A8_UINT;
11376 params2DTo3D.dst.image.format = VK_FORMAT_R8G8B8A8_UINT;
11425 params3DTo2D.src.image.format = VK_FORMAT_R8G8B8A8_UINT;
11431 params3DTo2D.dst.image.format = VK_FORMAT_R8G8B8A8_UINT;
11478 params2DTo3D.src.image.format = VK_FORMAT_R8G8B8A8_UINT;
11484 params2DTo3D.dst.image.format = VK_FORMAT_R8G8B8A8_UINT;
11532 params3DTo2D.src.image.format = VK_FORMAT_R8G8B8A8_UINT;
11538 params3DTo2D.dst.image.format = VK_FORMAT_R8G8B8A8_UINT;
11593 params2DTo3D.src.image.format = VK_FORMAT_R8G8B8A8_UINT;
11599 params2DTo3D.dst.image.format = VK_FORMAT_R8G8B8A8_UINT;
11661 paramsCubeToArray.src.image.format = VK_FORMAT_R8G8B8A8_UINT;
11668 paramsCubeToArray.dst.image.format = VK_FORMAT_R8G8B8A8_UINT;
11719 paramsCubeToArray.src.image.format = VK_FORMAT_R8G8B8A8_UINT;
11726 paramsCubeToArray.dst.image.format = VK_FORMAT_R8G8B8A8_UINT;
11776 paramsArrayToCube.src.image.format = VK_FORMAT_R8G8B8A8_UINT;
11783 paramsArrayToCube.dst.image.format = VK_FORMAT_R8G8B8A8_UINT;
11834 paramsArrayToCube.src.image.format = VK_FORMAT_R8G8B8A8_UINT;
11841 paramsArrayToCube.dst.image.format = VK_FORMAT_R8G8B8A8_UINT;
11891 paramsCubeToArray.src.image.format = VK_FORMAT_R8G8B8A8_UINT;
11898 paramsCubeToArray.dst.image.format = VK_FORMAT_R8G8B8A8_UINT;
11949 paramsCubeToCube.src.image.format = VK_FORMAT_R8G8B8A8_UINT;
11956 paramsCubeToCube.dst.image.format = VK_FORMAT_R8G8B8A8_UINT;
12010 paramsArrayToArray.src.image.format = VK_FORMAT_R8G8B8A8_UINT;
12016 paramsArrayToArray.dst.image.format = VK_FORMAT_R8G8B8A8_UINT;
12066 paramsArrayToArray.src.image.format = VK_FORMAT_R8G8B8A8_UINT;
12072 paramsArrayToArray.dst.image.format = VK_FORMAT_R8G8B8A8_UINT;
12122 paramsArrayToArray.src.image.format = VK_FORMAT_R8G8B8A8_UINT;
12128 paramsArrayToArray.dst.image.format = VK_FORMAT_R8G8B8A8_UINT;
12178 paramsArrayToArray.src.image.format = VK_FORMAT_R8G8B8A8_UINT;
12184 paramsArrayToArray.dst.image.format = VK_FORMAT_R8G8B8A8_UINT;
12293 paramsArrayToArray.src.image.format = imageFormats[imageFormatsNdx];
12294 paramsArrayToArray.dst.image.format = imageFormats[imageFormatsNdx];
12325 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
12355 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
12385 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
12395 const int pixelSize = tcu::getPixelSize(mapVkFormat(params.src.image.format));
12427 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
12437 const int pixelSize = tcu::getPixelSize(mapVkFormat(params.src.image.format));
12469 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
12513 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
12560 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
12589 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
12619 params.src.image.format = VK_FORMAT_R8_UNORM;
12648 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
12657 const int pixelSize = tcu::getPixelSize(mapVkFormat(params.src.image.format));
12690 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
12720 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
12749 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
12779 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
12789 const int pixelSize = tcu::getPixelSize(mapVkFormat(params.src.image.format));
12820 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
12830 const int pixelSize = tcu::getPixelSize(mapVkFormat(params.src.image.format));
12860 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
12870 const int pixelSize = tcu::getPixelSize(mapVkFormat(params.src.image.format));
12901 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
12945 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
12997 auto getCaseName = [](VkFormat format, VkExtent3D extent, deUint32 numLayers, std::string queueName) {
12998 std::string caseName = "mip_copies_" + getFormatCaseName(format) + "_" + std::to_string(extent.width) + "x" + std::to_string(extent.height);
13018 for (const VkFormat *format = compressedFormatsFloats; *format != VK_FORMAT_UNDEFINED; format++)
13020 params.src.image.format = *format;
13023 group->addChild(new CopyCompressedImageToBufferTestCase(testCtx, getCaseName(*format, params.src.image.extent, numLayers, "universal"), params));
13025 group->addChild(new CopyCompressedImageToBufferTestCase(testCtx, getCaseName(*format, params.src.image.extent, numLayers, "compute"), params));
13027 group->addChild(new CopyCompressedImageToBufferTestCase(testCtx, getCaseName(*format, params.src.image.extent, numLayers, "transfer"), params));
13041 const VkFormat format;
13120 // TODO: Check that this format is supported before creating tests?
13126 const tcu::TextureFormat format = mapVkFormat(config.format);
13127 const bool hasDepth = tcu::hasDepthComponent(format.order);
13128 const bool hasStencil = tcu::hasStencilComponent(format.order);
13146 params.dst.image.format = config.format;
13202 params.dst.image.format = VK_FORMAT_R8G8B8A8_UINT;
13232 params.dst.image.format = VK_FORMAT_R8G8B8A8_UINT;
13262 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
13271 const int pixelSize = tcu::getPixelSize(mapVkFormat(params.dst.image.format));
13305 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
13349 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
13392 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
13401 const int pixelSize = tcu::getPixelSize(mapVkFormat(params.dst.image.format));
13437 params.dst.image.format = VK_FORMAT_R8G8B8A8_UINT;
13466 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
13498 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
13528 params.dst.image.format = VK_FORMAT_R8_UNORM;
13557 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
13587 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
13616 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
13646 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
13655 const int pixelSize = tcu::getPixelSize(mapVkFormat(params.dst.image.format));
13687 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
13696 const int pixelSize = tcu::getPixelSize(mapVkFormat(params.dst.image.format));
13727 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
13736 const int pixelSize = tcu::getPixelSize(mapVkFormat(params.dst.image.format));
13769 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
13813 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
13962 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
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));
13976 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
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));
13992 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
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));
14045 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
14091 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
14507 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
14580 de::contains(dedicatedAllocationBlittingFormatsToTestSet, testParams.params.dst.image.format) ||
14581 de::contains(dedicatedAllocationBlittingFormatsToTestSet, testParams.params.src.image.format);
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)))
14719 if ((testParams.params.src.image.imageType == VK_IMAGE_TYPE_3D) && !isCompressedFormat(testParams.params.src.image.format))
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);
14771 // If testParams.compatibleFormats is nullptr, the destination format will be copied from the source format
14772 // When testParams.compatibleFormats is not nullptr but format is compressed we also need to add that format
14776 testParams.params.dst.image.format = srcFormat;
14978 params.src.image.format = srcFormat;
14980 const bool onlyNearestAndLinear = de::contains(onlyNearestAndLinearFormatsToTest, params.src.image.format);
15004 addTestGroup(subGroup.get(), getFormatCaseName(params.src.image.format), addBlittingImageAllFormatsColorSrcFormatTests, testParams);
15071 params.src.image.format = sourceFormats[srcFormatIndex];
15072 if (!isSupportedByFramework(params.src.image.format))
15085 addTestGroup(subGroup.get(), getFormatCaseName(params.src.image.format), addBlittingImageAllFormatsColorSrcFormatTests, testParams);
15152 params.src.image.format = sourceFormats[srcFormatIndex];
15153 if (!isSupportedByFramework(params.src.image.format))
15166 addTestGroup(subGroup.get(), getFormatCaseName(params.src.image.format), addBlittingImageAllFormatsColorSrcFormatTests, testParams);
15231 params.src.image.format = depthAndStencilFormats[compatibleFormatsIndex];
15234 params.dst.image.format = params.src.image.format;
15239 bool hasDepth = tcu::hasDepthComponent(mapVkFormat(params.src.image.format).order);
15240 bool hasStencil = tcu::hasStencilComponent(mapVkFormat(params.src.image.format).order);
15322 const std::string testName = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format);
15328 const std::string testName2 = getFormatCaseName(params.src.image.format) + "_" +
15329 getFormatCaseName(params.dst.image.format) + "_separate_layouts";
15348 params.src.image.format = depthAndStencilFormats[compatibleFormatsIndex];
15349 params.dst.image.format = params.src.image.format;
15355 bool hasDepth = tcu::hasDepthComponent(mapVkFormat(params.src.image.format).order);
15356 bool hasStencil = tcu::hasStencilComponent(mapVkFormat(params.src.image.format).order);
15438 const std::string testName = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format);
15444 const std::string testName2 = getFormatCaseName(params.src.image.format) + "_" +
15445 getFormatCaseName(params.dst.image.format) + "_separate_layouts";
15464 params.src.image.format = depthAndStencilFormats[compatibleFormatsIndex];
15465 params.dst.image.format = params.src.image.format;
15471 bool hasDepth = tcu::hasDepthComponent(mapVkFormat(params.src.image.format).order);
15472 bool hasStencil = tcu::hasStencilComponent(mapVkFormat(params.src.image.format).order);
15554 const std::string testName = getFormatCaseName(params.src.image.format) + "_" + getFormatCaseName(params.dst.image.format);
15560 const std::string testName2 = getFormatCaseName(params.src.image.format) + "_" +
15561 getFormatCaseName(params.dst.image.format) + "_separate_layouts";
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);
15714 addTestGroup(layerCountGroup.get(), getFormatCaseName(params.src.image.format), addBlittingImageAllFormatsMipmapFormatTests, testParams);
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);
15826 addTestGroup(layerCountGroup.get(), getFormatCaseName(params.src.image.format), addBlittingImageAllFormatsMipmapFormatTests, testParams);
15850 params.src.image.format = compatibleFormatsUInts[srcFormatIndex];
15851 params.dst.image.format = compatibleFormatsUInts[srcFormatIndex];
15853 if (!isSupportedByFramework(params.src.image.format))
15870 addTestGroup(barrierCountGroup.get(), getFormatCaseName(params.src.image.format), addBlittingImageAllFormatsMipmapFormatTests, testParams);
15912 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
15917 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
15962 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
15967 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16012 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16017 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16062 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16067 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16116 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16121 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16166 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16171 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16217 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16222 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16287 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16293 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16341 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16346 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16421 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16426 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16476 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16480 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16525 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16529 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16575 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16579 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16626 params.src.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16630 params.dst.image.format = VK_FORMAT_R8G8B8A8_UNORM;
16701 // Run all the tests with one of the bare depth format and one bare stencil format + mandatory combined formats.
16732 for (const auto &format : depthAndStencilFormats)
16734 testCreateParams.imageFormat = format.vkFormat;
16735 const auto textureFormat = mapVkFormat(format.vkFormat);
16738 std::string testNameBase = format.name + "_" + (testCreateParams.copyOptions == DepthStencilMSAA::COPY_WHOLE_IMAGE ? getImageLayoutCaseName(srcLayout) + "_" + getImageLayoutCaseName(dstLayout) + "_": "");