Add alpha to one tests with single sample.
The current multisample alpha to one tests all use multiple sample but
it should work for single sample too.
New tests:
dEQP-VK.pipeline.*.multisample.alpha_to_one.samples_1*
Affects:
dEQP-VK.pipeline.*.multisample.alpha_to_one.*
Components: Vulkan
VK-GL-CTS issue: 3834
Change-Id: Idf434335f0ef4651543b74860ec4c0a0781eea02
diff --git a/android/cts/main/vk-master-2022-03-01/pipeline.txt b/android/cts/main/vk-master-2022-03-01/pipeline.txt
index b40ce34..bb4e932 100644
--- a/android/cts/main/vk-master-2022-03-01/pipeline.txt
+++ b/android/cts/main/vk-master-2022-03-01/pipeline.txt
Binary files differ
diff --git a/android/cts/main/vk-master/pipeline/fast-linked-library.txt b/android/cts/main/vk-master/pipeline/fast-linked-library.txt
index bf9fa8f..1008a00 100644
--- a/android/cts/main/vk-master/pipeline/fast-linked-library.txt
+++ b/android/cts/main/vk-master/pipeline/fast-linked-library.txt
@@ -188610,6 +188610,8 @@
dEQP-VK.pipeline.fast_linked_library.multisample.sample_mask.mask_random.samples_64.primitive_line_sparse
dEQP-VK.pipeline.fast_linked_library.multisample.sample_mask.mask_random.samples_64.primitive_point_1px_sparse
dEQP-VK.pipeline.fast_linked_library.multisample.sample_mask.mask_random.samples_64.primitive_point_sparse
+dEQP-VK.pipeline.fast_linked_library.multisample.alpha_to_one.samples_1
+dEQP-VK.pipeline.fast_linked_library.multisample.alpha_to_one.samples_1_sparse
dEQP-VK.pipeline.fast_linked_library.multisample.alpha_to_one.samples_2
dEQP-VK.pipeline.fast_linked_library.multisample.alpha_to_one.samples_2_sparse
dEQP-VK.pipeline.fast_linked_library.multisample.alpha_to_one.samples_4
@@ -196678,6 +196680,8 @@
dEQP-VK.pipeline.fast_linked_library.multisample_with_fragment_shading_rate.sample_mask.mask_random.samples_64.primitive_line_sparse
dEQP-VK.pipeline.fast_linked_library.multisample_with_fragment_shading_rate.sample_mask.mask_random.samples_64.primitive_point_1px_sparse
dEQP-VK.pipeline.fast_linked_library.multisample_with_fragment_shading_rate.sample_mask.mask_random.samples_64.primitive_point_sparse
+dEQP-VK.pipeline.fast_linked_library.multisample_with_fragment_shading_rate.alpha_to_one.samples_1
+dEQP-VK.pipeline.fast_linked_library.multisample_with_fragment_shading_rate.alpha_to_one.samples_1_sparse
dEQP-VK.pipeline.fast_linked_library.multisample_with_fragment_shading_rate.alpha_to_one.samples_2
dEQP-VK.pipeline.fast_linked_library.multisample_with_fragment_shading_rate.alpha_to_one.samples_2_sparse
dEQP-VK.pipeline.fast_linked_library.multisample_with_fragment_shading_rate.alpha_to_one.samples_4
diff --git a/android/cts/main/vk-master/pipeline/monolithic.txt b/android/cts/main/vk-master/pipeline/monolithic.txt
index 6376f6b..53bdcc4 100644
--- a/android/cts/main/vk-master/pipeline/monolithic.txt
+++ b/android/cts/main/vk-master/pipeline/monolithic.txt
@@ -189178,6 +189178,8 @@
dEQP-VK.pipeline.monolithic.multisample.sample_mask.mask_random.samples_64.primitive_line_sparse
dEQP-VK.pipeline.monolithic.multisample.sample_mask.mask_random.samples_64.primitive_point_1px_sparse
dEQP-VK.pipeline.monolithic.multisample.sample_mask.mask_random.samples_64.primitive_point_sparse
+dEQP-VK.pipeline.monolithic.multisample.alpha_to_one.samples_1
+dEQP-VK.pipeline.monolithic.multisample.alpha_to_one.samples_1_sparse
dEQP-VK.pipeline.monolithic.multisample.alpha_to_one.samples_2
dEQP-VK.pipeline.monolithic.multisample.alpha_to_one.samples_2_sparse
dEQP-VK.pipeline.monolithic.multisample.alpha_to_one.samples_4
@@ -197256,6 +197258,8 @@
dEQP-VK.pipeline.monolithic.multisample_with_fragment_shading_rate.sample_mask.mask_random.samples_64.primitive_line_sparse
dEQP-VK.pipeline.monolithic.multisample_with_fragment_shading_rate.sample_mask.mask_random.samples_64.primitive_point_1px_sparse
dEQP-VK.pipeline.monolithic.multisample_with_fragment_shading_rate.sample_mask.mask_random.samples_64.primitive_point_sparse
+dEQP-VK.pipeline.monolithic.multisample_with_fragment_shading_rate.alpha_to_one.samples_1
+dEQP-VK.pipeline.monolithic.multisample_with_fragment_shading_rate.alpha_to_one.samples_1_sparse
dEQP-VK.pipeline.monolithic.multisample_with_fragment_shading_rate.alpha_to_one.samples_2
dEQP-VK.pipeline.monolithic.multisample_with_fragment_shading_rate.alpha_to_one.samples_2_sparse
dEQP-VK.pipeline.monolithic.multisample_with_fragment_shading_rate.alpha_to_one.samples_4
diff --git a/android/cts/main/vk-master/pipeline/pipeline-library.txt b/android/cts/main/vk-master/pipeline/pipeline-library.txt
index 5198991..76e2352 100644
--- a/android/cts/main/vk-master/pipeline/pipeline-library.txt
+++ b/android/cts/main/vk-master/pipeline/pipeline-library.txt
@@ -188610,6 +188610,8 @@
dEQP-VK.pipeline.pipeline_library.multisample.sample_mask.mask_random.samples_64.primitive_line_sparse
dEQP-VK.pipeline.pipeline_library.multisample.sample_mask.mask_random.samples_64.primitive_point_1px_sparse
dEQP-VK.pipeline.pipeline_library.multisample.sample_mask.mask_random.samples_64.primitive_point_sparse
+dEQP-VK.pipeline.pipeline_library.multisample.alpha_to_one.samples_1
+dEQP-VK.pipeline.pipeline_library.multisample.alpha_to_one.samples_1_sparse
dEQP-VK.pipeline.pipeline_library.multisample.alpha_to_one.samples_2
dEQP-VK.pipeline.pipeline_library.multisample.alpha_to_one.samples_2_sparse
dEQP-VK.pipeline.pipeline_library.multisample.alpha_to_one.samples_4
@@ -196678,6 +196680,8 @@
dEQP-VK.pipeline.pipeline_library.multisample_with_fragment_shading_rate.sample_mask.mask_random.samples_64.primitive_line_sparse
dEQP-VK.pipeline.pipeline_library.multisample_with_fragment_shading_rate.sample_mask.mask_random.samples_64.primitive_point_1px_sparse
dEQP-VK.pipeline.pipeline_library.multisample_with_fragment_shading_rate.sample_mask.mask_random.samples_64.primitive_point_sparse
+dEQP-VK.pipeline.pipeline_library.multisample_with_fragment_shading_rate.alpha_to_one.samples_1
+dEQP-VK.pipeline.pipeline_library.multisample_with_fragment_shading_rate.alpha_to_one.samples_1_sparse
dEQP-VK.pipeline.pipeline_library.multisample_with_fragment_shading_rate.alpha_to_one.samples_2
dEQP-VK.pipeline.pipeline_library.multisample_with_fragment_shading_rate.alpha_to_one.samples_2_sparse
dEQP-VK.pipeline.pipeline_library.multisample_with_fragment_shading_rate.alpha_to_one.samples_4
diff --git a/android/cts/main/vksc-main/pipeline.txt b/android/cts/main/vksc-main/pipeline.txt
index 5de6a0e..a06162a 100644
--- a/android/cts/main/vksc-main/pipeline.txt
+++ b/android/cts/main/vksc-main/pipeline.txt
Binary files differ
diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleTests.cpp
index 970c53b..1c0863f 100644
--- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleTests.cpp
+++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineMultisampleTests.cpp
@@ -106,7 +106,10 @@
RENDER_TYPE_DEPTHSTENCIL_ONLY = 2u,
// render using color attachment at location 1 and location 0 set as unused
- RENDER_TYPE_UNUSED_ATTACHMENT = 3u
+ RENDER_TYPE_UNUSED_ATTACHMENT = 3u,
+
+ // render using color attachment with single sample, required by alpha_to_one tests.
+ RENDER_TYPE_SINGLE_SAMPLE = 4u
};
enum ImageBackingMode
@@ -2503,9 +2506,11 @@
de::MovePtr<tcu::TextureLevel> alphaOneImage;
de::MovePtr<tcu::TextureLevel> noAlphaOneImage;
+ RenderType renderType = m_multisampleStateParams.rasterizationSamples == vk::VK_SAMPLE_COUNT_1_BIT ? RENDER_TYPE_SINGLE_SAMPLE : RENDER_TYPE_RESOLVE;
+
// Render with blend enabled and alpha to one on
{
- MultisampleRenderer renderer (m_context, m_pipelineConstructionType, m_colorFormat, m_renderSize, m_primitiveTopology, m_vertices, m_multisampleStateParams, m_colorBlendState, RENDER_TYPE_RESOLVE, m_backingMode, m_useFragmentShadingRate);
+ MultisampleRenderer renderer (m_context, m_pipelineConstructionType, m_colorFormat, m_renderSize, m_primitiveTopology, m_vertices, m_multisampleStateParams, m_colorBlendState, renderType, m_backingMode, m_useFragmentShadingRate);
alphaOneImage = renderer.render();
}
@@ -2514,7 +2519,7 @@
VkPipelineMultisampleStateCreateInfo multisampleParams = m_multisampleStateParams;
multisampleParams.alphaToOneEnable = false;
- MultisampleRenderer renderer (m_context, m_pipelineConstructionType, m_colorFormat, m_renderSize, m_primitiveTopology, m_vertices, multisampleParams, m_colorBlendState, RENDER_TYPE_RESOLVE, m_backingMode, m_useFragmentShadingRate);
+ MultisampleRenderer renderer (m_context, m_pipelineConstructionType, m_colorFormat, m_renderSize, m_primitiveTopology, m_vertices, multisampleParams, m_colorBlendState, renderType, m_backingMode, m_useFragmentShadingRate);
noAlphaOneImage = renderer.render();
}
@@ -3378,6 +3383,9 @@
bool sparseSamplesSupported = false;
switch(m_multisampleStateParams.rasterizationSamples)
{
+ case VK_SAMPLE_COUNT_1_BIT:
+ sparseSamplesSupported = features.sparseResidencyImage2D;
+ break;
case VK_SAMPLE_COUNT_2_BIT:
sparseSamplesSupported = features.sparseResidency2Samples;
break;
@@ -4508,6 +4516,10 @@
{
return readColorAttachment(vk, vkDevice, queue, queueFamilyIndex, m_context.getDefaultAllocator(), *m_resolveImage, m_colorFormat, m_renderSize.cast<deUint32>());
}
+ else if(m_renderType == RENDER_TYPE_SINGLE_SAMPLE)
+ {
+ return readColorAttachment(vk, vkDevice, queue, queueFamilyIndex, m_context.getDefaultAllocator(), *m_colorImage, m_colorFormat, m_renderSize.cast<deUint32>());
+ }
else
{
return de::MovePtr<tcu::TextureLevel>();
@@ -5387,17 +5399,27 @@
// AlphaToOne tests
{
+ const VkSampleCountFlagBits samplesForAlphaToOne[] =
+ {
+ VK_SAMPLE_COUNT_1_BIT,
+ VK_SAMPLE_COUNT_2_BIT,
+ VK_SAMPLE_COUNT_4_BIT,
+ VK_SAMPLE_COUNT_8_BIT,
+ VK_SAMPLE_COUNT_16_BIT,
+ VK_SAMPLE_COUNT_32_BIT,
+ VK_SAMPLE_COUNT_64_BIT
+ };
de::MovePtr<tcu::TestCaseGroup> alphaToOneTests(new tcu::TestCaseGroup(testCtx, "alpha_to_one", ""));
- for (int samplesNdx = 0; samplesNdx < DE_LENGTH_OF_ARRAY(samples); samplesNdx++)
+ for (int samplesNdx = 0; samplesNdx < DE_LENGTH_OF_ARRAY(samplesForAlphaToOne); samplesNdx++)
{
std::ostringstream caseName;
- caseName << "samples_" << samples[samplesNdx];
+ caseName << "samples_" << samplesForAlphaToOne[samplesNdx];
- alphaToOneTests->addChild(new AlphaToOneTest(testCtx, caseName.str(), "", pipelineConstructionType, samples[samplesNdx], IMAGE_BACKING_MODE_REGULAR, useFragmentShadingRate));
+ alphaToOneTests->addChild(new AlphaToOneTest(testCtx, caseName.str(), "", pipelineConstructionType, samplesForAlphaToOne[samplesNdx], IMAGE_BACKING_MODE_REGULAR, useFragmentShadingRate));
#ifndef CTS_USES_VULKANSC
caseName << "_sparse";
- alphaToOneTests->addChild(new AlphaToOneTest(testCtx, caseName.str(), "", pipelineConstructionType, samples[samplesNdx], IMAGE_BACKING_MODE_SPARSE, useFragmentShadingRate));
+ alphaToOneTests->addChild(new AlphaToOneTest(testCtx, caseName.str(), "", pipelineConstructionType, samplesForAlphaToOne[samplesNdx], IMAGE_BACKING_MODE_SPARSE, useFragmentShadingRate));
#endif // CTS_USES_VULKANSC
}
diff --git a/external/vulkancts/mustpass/main/vk-default/pipeline/fast-linked-library.txt b/external/vulkancts/mustpass/main/vk-default/pipeline/fast-linked-library.txt
index 8428843..b613e1e 100644
--- a/external/vulkancts/mustpass/main/vk-default/pipeline/fast-linked-library.txt
+++ b/external/vulkancts/mustpass/main/vk-default/pipeline/fast-linked-library.txt
@@ -188651,6 +188651,8 @@
dEQP-VK.pipeline.fast_linked_library.multisample.sample_mask.mask_random.samples_64.primitive_line_sparse
dEQP-VK.pipeline.fast_linked_library.multisample.sample_mask.mask_random.samples_64.primitive_point_1px_sparse
dEQP-VK.pipeline.fast_linked_library.multisample.sample_mask.mask_random.samples_64.primitive_point_sparse
+dEQP-VK.pipeline.fast_linked_library.multisample.alpha_to_one.samples_1
+dEQP-VK.pipeline.fast_linked_library.multisample.alpha_to_one.samples_1_sparse
dEQP-VK.pipeline.fast_linked_library.multisample.alpha_to_one.samples_2
dEQP-VK.pipeline.fast_linked_library.multisample.alpha_to_one.samples_2_sparse
dEQP-VK.pipeline.fast_linked_library.multisample.alpha_to_one.samples_4
@@ -196719,6 +196721,8 @@
dEQP-VK.pipeline.fast_linked_library.multisample_with_fragment_shading_rate.sample_mask.mask_random.samples_64.primitive_line_sparse
dEQP-VK.pipeline.fast_linked_library.multisample_with_fragment_shading_rate.sample_mask.mask_random.samples_64.primitive_point_1px_sparse
dEQP-VK.pipeline.fast_linked_library.multisample_with_fragment_shading_rate.sample_mask.mask_random.samples_64.primitive_point_sparse
+dEQP-VK.pipeline.fast_linked_library.multisample_with_fragment_shading_rate.alpha_to_one.samples_1
+dEQP-VK.pipeline.fast_linked_library.multisample_with_fragment_shading_rate.alpha_to_one.samples_1_sparse
dEQP-VK.pipeline.fast_linked_library.multisample_with_fragment_shading_rate.alpha_to_one.samples_2
dEQP-VK.pipeline.fast_linked_library.multisample_with_fragment_shading_rate.alpha_to_one.samples_2_sparse
dEQP-VK.pipeline.fast_linked_library.multisample_with_fragment_shading_rate.alpha_to_one.samples_4
diff --git a/external/vulkancts/mustpass/main/vk-default/pipeline/monolithic.txt b/external/vulkancts/mustpass/main/vk-default/pipeline/monolithic.txt
index 7d2b067..6394483 100644
--- a/external/vulkancts/mustpass/main/vk-default/pipeline/monolithic.txt
+++ b/external/vulkancts/mustpass/main/vk-default/pipeline/monolithic.txt
@@ -189219,6 +189219,8 @@
dEQP-VK.pipeline.monolithic.multisample.sample_mask.mask_random.samples_64.primitive_line_sparse
dEQP-VK.pipeline.monolithic.multisample.sample_mask.mask_random.samples_64.primitive_point_1px_sparse
dEQP-VK.pipeline.monolithic.multisample.sample_mask.mask_random.samples_64.primitive_point_sparse
+dEQP-VK.pipeline.monolithic.multisample.alpha_to_one.samples_1
+dEQP-VK.pipeline.monolithic.multisample.alpha_to_one.samples_1_sparse
dEQP-VK.pipeline.monolithic.multisample.alpha_to_one.samples_2
dEQP-VK.pipeline.monolithic.multisample.alpha_to_one.samples_2_sparse
dEQP-VK.pipeline.monolithic.multisample.alpha_to_one.samples_4
@@ -197297,6 +197299,8 @@
dEQP-VK.pipeline.monolithic.multisample_with_fragment_shading_rate.sample_mask.mask_random.samples_64.primitive_line_sparse
dEQP-VK.pipeline.monolithic.multisample_with_fragment_shading_rate.sample_mask.mask_random.samples_64.primitive_point_1px_sparse
dEQP-VK.pipeline.monolithic.multisample_with_fragment_shading_rate.sample_mask.mask_random.samples_64.primitive_point_sparse
+dEQP-VK.pipeline.monolithic.multisample_with_fragment_shading_rate.alpha_to_one.samples_1
+dEQP-VK.pipeline.monolithic.multisample_with_fragment_shading_rate.alpha_to_one.samples_1_sparse
dEQP-VK.pipeline.monolithic.multisample_with_fragment_shading_rate.alpha_to_one.samples_2
dEQP-VK.pipeline.monolithic.multisample_with_fragment_shading_rate.alpha_to_one.samples_2_sparse
dEQP-VK.pipeline.monolithic.multisample_with_fragment_shading_rate.alpha_to_one.samples_4
diff --git a/external/vulkancts/mustpass/main/vk-default/pipeline/pipeline-library.txt b/external/vulkancts/mustpass/main/vk-default/pipeline/pipeline-library.txt
index 5e21c69..5b34af4 100644
--- a/external/vulkancts/mustpass/main/vk-default/pipeline/pipeline-library.txt
+++ b/external/vulkancts/mustpass/main/vk-default/pipeline/pipeline-library.txt
@@ -188651,6 +188651,8 @@
dEQP-VK.pipeline.pipeline_library.multisample.sample_mask.mask_random.samples_64.primitive_line_sparse
dEQP-VK.pipeline.pipeline_library.multisample.sample_mask.mask_random.samples_64.primitive_point_1px_sparse
dEQP-VK.pipeline.pipeline_library.multisample.sample_mask.mask_random.samples_64.primitive_point_sparse
+dEQP-VK.pipeline.pipeline_library.multisample.alpha_to_one.samples_1
+dEQP-VK.pipeline.pipeline_library.multisample.alpha_to_one.samples_1_sparse
dEQP-VK.pipeline.pipeline_library.multisample.alpha_to_one.samples_2
dEQP-VK.pipeline.pipeline_library.multisample.alpha_to_one.samples_2_sparse
dEQP-VK.pipeline.pipeline_library.multisample.alpha_to_one.samples_4
@@ -196719,6 +196721,8 @@
dEQP-VK.pipeline.pipeline_library.multisample_with_fragment_shading_rate.sample_mask.mask_random.samples_64.primitive_line_sparse
dEQP-VK.pipeline.pipeline_library.multisample_with_fragment_shading_rate.sample_mask.mask_random.samples_64.primitive_point_1px_sparse
dEQP-VK.pipeline.pipeline_library.multisample_with_fragment_shading_rate.sample_mask.mask_random.samples_64.primitive_point_sparse
+dEQP-VK.pipeline.pipeline_library.multisample_with_fragment_shading_rate.alpha_to_one.samples_1
+dEQP-VK.pipeline.pipeline_library.multisample_with_fragment_shading_rate.alpha_to_one.samples_1_sparse
dEQP-VK.pipeline.pipeline_library.multisample_with_fragment_shading_rate.alpha_to_one.samples_2
dEQP-VK.pipeline.pipeline_library.multisample_with_fragment_shading_rate.alpha_to_one.samples_2_sparse
dEQP-VK.pipeline.pipeline_library.multisample_with_fragment_shading_rate.alpha_to_one.samples_4
diff --git a/external/vulkancts/mustpass/main/vksc-default/pipeline.txt b/external/vulkancts/mustpass/main/vksc-default/pipeline.txt
index 5de6a0e..a06162a 100644
--- a/external/vulkancts/mustpass/main/vksc-default/pipeline.txt
+++ b/external/vulkancts/mustpass/main/vksc-default/pipeline.txt
Binary files differ