From 79574b765d8b0eba8b0492a32fa4c732dbefbe3f Mon Sep 17 00:00:00 2001 From: Ari Suonpaa Date: Mon, 16 Oct 2017 09:29:08 +0300 Subject: [PATCH] Add tests for sparse compressed textures. Extended compressed texture test to include sparse images used as textures. Affects: dEQP-VK.texture.compressed.* Components: Vulkan VK-GL-CTS issue: 101 Change-Id: If317985fa8ff1c9a83040a77209c90172834968d --- android/cts/master/vk-master.txt | 20 +++++++++++++++++ .../texture/vktTextureCompressedFormatTests.cpp | 26 ++++++++++++++++++---- .../mustpass/1.0.4/vk-default-no-waivers.txt | 20 +++++++++++++++++ external/vulkancts/mustpass/1.0.4/vk-default.txt | 20 +++++++++++++++++ 4 files changed, 82 insertions(+), 4 deletions(-) diff --git a/android/cts/master/vk-master.txt b/android/cts/master/vk-master.txt index e5dfeb5..4db4fa2 100644 --- a/android/cts/master/vk-master.txt +++ b/android/cts/master/vk-master.txt @@ -273953,25 +273953,45 @@ dEQP-VK.texture.filtering_anisotropy.mipmap.anisotropy_max.mag_linear_min_linear dEQP-VK.texture.filtering_anisotropy.mipmap.anisotropy_max.mag_nearest_min_linear_mipmap_linear dEQP-VK.texture.filtering_anisotropy.mipmap.anisotropy_max.mag_linear_min_linear_mipmap_linear dEQP-VK.texture.compressed.etc2_r8g8b8_unorm_block_2d_pot +dEQP-VK.texture.compressed.etc2_r8g8b8_unorm_block_2d_pot_sparse dEQP-VK.texture.compressed.etc2_r8g8b8_srgb_block_2d_pot +dEQP-VK.texture.compressed.etc2_r8g8b8_srgb_block_2d_pot_sparse dEQP-VK.texture.compressed.etc2_r8g8b8a1_unorm_block_2d_pot +dEQP-VK.texture.compressed.etc2_r8g8b8a1_unorm_block_2d_pot_sparse dEQP-VK.texture.compressed.etc2_r8g8b8a1_srgb_block_2d_pot +dEQP-VK.texture.compressed.etc2_r8g8b8a1_srgb_block_2d_pot_sparse dEQP-VK.texture.compressed.etc2_r8g8b8a8_unorm_block_2d_pot +dEQP-VK.texture.compressed.etc2_r8g8b8a8_unorm_block_2d_pot_sparse dEQP-VK.texture.compressed.etc2_r8g8b8a8_srgb_block_2d_pot +dEQP-VK.texture.compressed.etc2_r8g8b8a8_srgb_block_2d_pot_sparse dEQP-VK.texture.compressed.eac_r11_unorm_block_2d_pot +dEQP-VK.texture.compressed.eac_r11_unorm_block_2d_pot_sparse dEQP-VK.texture.compressed.eac_r11_snorm_block_2d_pot +dEQP-VK.texture.compressed.eac_r11_snorm_block_2d_pot_sparse dEQP-VK.texture.compressed.eac_r11g11_unorm_block_2d_pot +dEQP-VK.texture.compressed.eac_r11g11_unorm_block_2d_pot_sparse dEQP-VK.texture.compressed.eac_r11g11_snorm_block_2d_pot +dEQP-VK.texture.compressed.eac_r11g11_snorm_block_2d_pot_sparse dEQP-VK.texture.compressed.etc2_r8g8b8_unorm_block_2d_npot +dEQP-VK.texture.compressed.etc2_r8g8b8_unorm_block_2d_npot_sparse dEQP-VK.texture.compressed.etc2_r8g8b8_srgb_block_2d_npot +dEQP-VK.texture.compressed.etc2_r8g8b8_srgb_block_2d_npot_sparse dEQP-VK.texture.compressed.etc2_r8g8b8a1_unorm_block_2d_npot +dEQP-VK.texture.compressed.etc2_r8g8b8a1_unorm_block_2d_npot_sparse dEQP-VK.texture.compressed.etc2_r8g8b8a1_srgb_block_2d_npot +dEQP-VK.texture.compressed.etc2_r8g8b8a1_srgb_block_2d_npot_sparse dEQP-VK.texture.compressed.etc2_r8g8b8a8_unorm_block_2d_npot +dEQP-VK.texture.compressed.etc2_r8g8b8a8_unorm_block_2d_npot_sparse dEQP-VK.texture.compressed.etc2_r8g8b8a8_srgb_block_2d_npot +dEQP-VK.texture.compressed.etc2_r8g8b8a8_srgb_block_2d_npot_sparse dEQP-VK.texture.compressed.eac_r11_unorm_block_2d_npot +dEQP-VK.texture.compressed.eac_r11_unorm_block_2d_npot_sparse dEQP-VK.texture.compressed.eac_r11_snorm_block_2d_npot +dEQP-VK.texture.compressed.eac_r11_snorm_block_2d_npot_sparse dEQP-VK.texture.compressed.eac_r11g11_unorm_block_2d_npot +dEQP-VK.texture.compressed.eac_r11g11_unorm_block_2d_npot_sparse dEQP-VK.texture.compressed.eac_r11g11_snorm_block_2d_npot +dEQP-VK.texture.compressed.eac_r11g11_snorm_block_2d_npot_sparse dEQP-VK.geometry.input.basic_primitive.points dEQP-VK.geometry.input.basic_primitive.lines dEQP-VK.geometry.input.basic_primitive.line_strip diff --git a/external/vulkancts/modules/vulkan/texture/vktTextureCompressedFormatTests.cpp b/external/vulkancts/modules/vulkan/texture/vktTextureCompressedFormatTests.cpp index ce39927..12e88fa 100644 --- a/external/vulkancts/modules/vulkan/texture/vktTextureCompressedFormatTests.cpp +++ b/external/vulkancts/modules/vulkan/texture/vktTextureCompressedFormatTests.cpp @@ -54,8 +54,15 @@ using tcu::TestLog; struct Compressed2DTestParameters : public Texture2DTestCaseParameters { + Compressed2DTestParameters (void); + TextureBinding::ImageBackingMode backingMode; }; +Compressed2DTestParameters::Compressed2DTestParameters (void) + : backingMode(TextureBinding::IMAGE_BACKING_MODE_REGULAR) +{ +} + class Compressed2DTestInstance : public TestInstance { public: @@ -83,7 +90,7 @@ Compressed2DTestInstance::Compressed2DTestInstance (Context& context, , m_texture (TestTexture2DSp(new pipeline::TestTexture2D(m_compressedFormat, testParameters.width, testParameters.height))) , m_renderer (context, testParameters.sampleCount, testParameters.width, testParameters.height) { - m_renderer.add2DTexture(m_texture); + m_renderer.add2DTexture(m_texture, testParameters.backingMode); } tcu::TestStatus Compressed2DTestInstance::iterate (void) @@ -128,7 +135,7 @@ void populateTextureCompressedFormatTests (tcu::TestCaseGroup* compressedTexture tcu::TestContext& testCtx = compressedTextureTests->getTestContext(); // ETC2 and EAC compressed formats. - const struct { + static const struct { const VkFormat format; } etc2Formats[] = { @@ -145,7 +152,7 @@ void populateTextureCompressedFormatTests (tcu::TestCaseGroup* compressedTexture { VK_FORMAT_EAC_R11G11_SNORM_BLOCK }, }; - const struct { + static const struct { const int width; const int height; const char* name; @@ -155,21 +162,32 @@ void populateTextureCompressedFormatTests (tcu::TestCaseGroup* compressedTexture { 51, 65, "npot" }, }; + static const struct { + const char* name; + const TextureBinding::ImageBackingMode backingMode; + } backingModes[] = + { + { "", TextureBinding::IMAGE_BACKING_MODE_REGULAR }, + { "_sparse", TextureBinding::IMAGE_BACKING_MODE_SPARSE } + }; + for (int sizeNdx = 0; sizeNdx < DE_LENGTH_OF_ARRAY(sizes); sizeNdx++) for (int formatNdx = 0; formatNdx < DE_LENGTH_OF_ARRAY(etc2Formats); formatNdx++) + for (int backingNdx = 0; backingNdx < DE_LENGTH_OF_ARRAY(backingModes); backingNdx++) { const string formatStr = de::toString(getFormatStr(etc2Formats[formatNdx].format)); const string nameBase = de::toLower(formatStr.substr(10)); Compressed2DTestParameters testParameters; testParameters.format = etc2Formats[formatNdx].format; + testParameters.backingMode = backingModes[backingNdx].backingMode; testParameters.width = sizes[sizeNdx].width; testParameters.height = sizes[sizeNdx].height; testParameters.minFilter = tcu::Sampler::NEAREST; testParameters.magFilter = tcu::Sampler::NEAREST; testParameters.programs.push_back(PROGRAM_2D_FLOAT); - compressedTextureTests->addChild(new TextureTestCase(testCtx, (nameBase + "_2d_" + sizes[sizeNdx].name).c_str(), (formatStr + ", TEXTURETYPE_2D").c_str(), testParameters)); + compressedTextureTests->addChild(new TextureTestCase(testCtx, (nameBase + "_2d_" + sizes[sizeNdx].name + backingModes[backingNdx].name).c_str(), (formatStr + ", TEXTURETYPE_2D").c_str(), testParameters)); } } diff --git a/external/vulkancts/mustpass/1.0.4/vk-default-no-waivers.txt b/external/vulkancts/mustpass/1.0.4/vk-default-no-waivers.txt index 2e2adf7..d00224e 100644 --- a/external/vulkancts/mustpass/1.0.4/vk-default-no-waivers.txt +++ b/external/vulkancts/mustpass/1.0.4/vk-default-no-waivers.txt @@ -274272,25 +274272,45 @@ dEQP-VK.texture.filtering_anisotropy.mipmap.anisotropy_max.mag_linear_min_linear dEQP-VK.texture.filtering_anisotropy.mipmap.anisotropy_max.mag_nearest_min_linear_mipmap_linear dEQP-VK.texture.filtering_anisotropy.mipmap.anisotropy_max.mag_linear_min_linear_mipmap_linear dEQP-VK.texture.compressed.etc2_r8g8b8_unorm_block_2d_pot +dEQP-VK.texture.compressed.etc2_r8g8b8_unorm_block_2d_pot_sparse dEQP-VK.texture.compressed.etc2_r8g8b8_srgb_block_2d_pot +dEQP-VK.texture.compressed.etc2_r8g8b8_srgb_block_2d_pot_sparse dEQP-VK.texture.compressed.etc2_r8g8b8a1_unorm_block_2d_pot +dEQP-VK.texture.compressed.etc2_r8g8b8a1_unorm_block_2d_pot_sparse dEQP-VK.texture.compressed.etc2_r8g8b8a1_srgb_block_2d_pot +dEQP-VK.texture.compressed.etc2_r8g8b8a1_srgb_block_2d_pot_sparse dEQP-VK.texture.compressed.etc2_r8g8b8a8_unorm_block_2d_pot +dEQP-VK.texture.compressed.etc2_r8g8b8a8_unorm_block_2d_pot_sparse dEQP-VK.texture.compressed.etc2_r8g8b8a8_srgb_block_2d_pot +dEQP-VK.texture.compressed.etc2_r8g8b8a8_srgb_block_2d_pot_sparse dEQP-VK.texture.compressed.eac_r11_unorm_block_2d_pot +dEQP-VK.texture.compressed.eac_r11_unorm_block_2d_pot_sparse dEQP-VK.texture.compressed.eac_r11_snorm_block_2d_pot +dEQP-VK.texture.compressed.eac_r11_snorm_block_2d_pot_sparse dEQP-VK.texture.compressed.eac_r11g11_unorm_block_2d_pot +dEQP-VK.texture.compressed.eac_r11g11_unorm_block_2d_pot_sparse dEQP-VK.texture.compressed.eac_r11g11_snorm_block_2d_pot +dEQP-VK.texture.compressed.eac_r11g11_snorm_block_2d_pot_sparse dEQP-VK.texture.compressed.etc2_r8g8b8_unorm_block_2d_npot +dEQP-VK.texture.compressed.etc2_r8g8b8_unorm_block_2d_npot_sparse dEQP-VK.texture.compressed.etc2_r8g8b8_srgb_block_2d_npot +dEQP-VK.texture.compressed.etc2_r8g8b8_srgb_block_2d_npot_sparse dEQP-VK.texture.compressed.etc2_r8g8b8a1_unorm_block_2d_npot +dEQP-VK.texture.compressed.etc2_r8g8b8a1_unorm_block_2d_npot_sparse dEQP-VK.texture.compressed.etc2_r8g8b8a1_srgb_block_2d_npot +dEQP-VK.texture.compressed.etc2_r8g8b8a1_srgb_block_2d_npot_sparse dEQP-VK.texture.compressed.etc2_r8g8b8a8_unorm_block_2d_npot +dEQP-VK.texture.compressed.etc2_r8g8b8a8_unorm_block_2d_npot_sparse dEQP-VK.texture.compressed.etc2_r8g8b8a8_srgb_block_2d_npot +dEQP-VK.texture.compressed.etc2_r8g8b8a8_srgb_block_2d_npot_sparse dEQP-VK.texture.compressed.eac_r11_unorm_block_2d_npot +dEQP-VK.texture.compressed.eac_r11_unorm_block_2d_npot_sparse dEQP-VK.texture.compressed.eac_r11_snorm_block_2d_npot +dEQP-VK.texture.compressed.eac_r11_snorm_block_2d_npot_sparse dEQP-VK.texture.compressed.eac_r11g11_unorm_block_2d_npot +dEQP-VK.texture.compressed.eac_r11g11_unorm_block_2d_npot_sparse dEQP-VK.texture.compressed.eac_r11g11_snorm_block_2d_npot +dEQP-VK.texture.compressed.eac_r11g11_snorm_block_2d_npot_sparse dEQP-VK.geometry.input.basic_primitive.points dEQP-VK.geometry.input.basic_primitive.lines dEQP-VK.geometry.input.basic_primitive.line_strip diff --git a/external/vulkancts/mustpass/1.0.4/vk-default.txt b/external/vulkancts/mustpass/1.0.4/vk-default.txt index e3ae9da..aa1ecdf 100644 --- a/external/vulkancts/mustpass/1.0.4/vk-default.txt +++ b/external/vulkancts/mustpass/1.0.4/vk-default.txt @@ -274233,25 +274233,45 @@ dEQP-VK.texture.filtering_anisotropy.mipmap.anisotropy_max.mag_linear_min_linear dEQP-VK.texture.filtering_anisotropy.mipmap.anisotropy_max.mag_nearest_min_linear_mipmap_linear dEQP-VK.texture.filtering_anisotropy.mipmap.anisotropy_max.mag_linear_min_linear_mipmap_linear dEQP-VK.texture.compressed.etc2_r8g8b8_unorm_block_2d_pot +dEQP-VK.texture.compressed.etc2_r8g8b8_unorm_block_2d_pot_sparse dEQP-VK.texture.compressed.etc2_r8g8b8_srgb_block_2d_pot +dEQP-VK.texture.compressed.etc2_r8g8b8_srgb_block_2d_pot_sparse dEQP-VK.texture.compressed.etc2_r8g8b8a1_unorm_block_2d_pot +dEQP-VK.texture.compressed.etc2_r8g8b8a1_unorm_block_2d_pot_sparse dEQP-VK.texture.compressed.etc2_r8g8b8a1_srgb_block_2d_pot +dEQP-VK.texture.compressed.etc2_r8g8b8a1_srgb_block_2d_pot_sparse dEQP-VK.texture.compressed.etc2_r8g8b8a8_unorm_block_2d_pot +dEQP-VK.texture.compressed.etc2_r8g8b8a8_unorm_block_2d_pot_sparse dEQP-VK.texture.compressed.etc2_r8g8b8a8_srgb_block_2d_pot +dEQP-VK.texture.compressed.etc2_r8g8b8a8_srgb_block_2d_pot_sparse dEQP-VK.texture.compressed.eac_r11_unorm_block_2d_pot +dEQP-VK.texture.compressed.eac_r11_unorm_block_2d_pot_sparse dEQP-VK.texture.compressed.eac_r11_snorm_block_2d_pot +dEQP-VK.texture.compressed.eac_r11_snorm_block_2d_pot_sparse dEQP-VK.texture.compressed.eac_r11g11_unorm_block_2d_pot +dEQP-VK.texture.compressed.eac_r11g11_unorm_block_2d_pot_sparse dEQP-VK.texture.compressed.eac_r11g11_snorm_block_2d_pot +dEQP-VK.texture.compressed.eac_r11g11_snorm_block_2d_pot_sparse dEQP-VK.texture.compressed.etc2_r8g8b8_unorm_block_2d_npot +dEQP-VK.texture.compressed.etc2_r8g8b8_unorm_block_2d_npot_sparse dEQP-VK.texture.compressed.etc2_r8g8b8_srgb_block_2d_npot +dEQP-VK.texture.compressed.etc2_r8g8b8_srgb_block_2d_npot_sparse dEQP-VK.texture.compressed.etc2_r8g8b8a1_unorm_block_2d_npot +dEQP-VK.texture.compressed.etc2_r8g8b8a1_unorm_block_2d_npot_sparse dEQP-VK.texture.compressed.etc2_r8g8b8a1_srgb_block_2d_npot +dEQP-VK.texture.compressed.etc2_r8g8b8a1_srgb_block_2d_npot_sparse dEQP-VK.texture.compressed.etc2_r8g8b8a8_unorm_block_2d_npot +dEQP-VK.texture.compressed.etc2_r8g8b8a8_unorm_block_2d_npot_sparse dEQP-VK.texture.compressed.etc2_r8g8b8a8_srgb_block_2d_npot +dEQP-VK.texture.compressed.etc2_r8g8b8a8_srgb_block_2d_npot_sparse dEQP-VK.texture.compressed.eac_r11_unorm_block_2d_npot +dEQP-VK.texture.compressed.eac_r11_unorm_block_2d_npot_sparse dEQP-VK.texture.compressed.eac_r11_snorm_block_2d_npot +dEQP-VK.texture.compressed.eac_r11_snorm_block_2d_npot_sparse dEQP-VK.texture.compressed.eac_r11g11_unorm_block_2d_npot +dEQP-VK.texture.compressed.eac_r11g11_unorm_block_2d_npot_sparse dEQP-VK.texture.compressed.eac_r11g11_snorm_block_2d_npot +dEQP-VK.texture.compressed.eac_r11g11_snorm_block_2d_npot_sparse dEQP-VK.geometry.input.basic_primitive.points dEQP-VK.geometry.input.basic_primitive.lines dEQP-VK.geometry.input.basic_primitive.line_strip -- 2.7.4