Temporarily fix pipelineStageCreationFeedbackCount = 0 issue
An existing VK-GL-CTS issue to add coverage for
pipelineStageCreationFeedbackCount = 0:
https://gitlab.khronos.org/Tracker/vk-gl-cts/-/issues/3736
caused an issue, which is fixed here:
https://gerrit.khronos.org/c/vk-gl-cts/+/10291
This was exposed by:
https://swiftshader-review.googlesource.com/c/SwiftShader/+/68028
This CL adds the fix to Regres runs.
Tests: dEQP-VK.pipeline.fast_linked_library.creation_feedback.graphics_tests.vertex_stage_fragment_stage_no_cache_zero_out_feedback_cout
Bug: b/245568070
Change-Id: I9610c5d3aac7223b425b2104f179bd9a5502e4d2
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/68568
Presubmit-Ready: Alexis Hétu <sugoi@google.com>
Tested-by: Alexis Hétu <sugoi@google.com>
Commit-Queue: Alexis Hétu <sugoi@google.com>
Reviewed-by: Shahbaz Youssefi <syoussefi@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Kokoro-Result: kokoro <noreply+kokoro@google.com>
diff --git a/tests/regres/deqp-patches/deqp-zero-feedback-count.patch b/tests/regres/deqp-patches/deqp-zero-feedback-count.patch
new file mode 100644
index 0000000..81fc8d8
--- /dev/null
+++ b/tests/regres/deqp-patches/deqp-zero-feedback-count.patch
@@ -0,0 +1,25 @@
+ .../modules/vulkan/pipeline/vktPipelineCreationFeedbackTests.cpp | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/external/vulkancts/modules/vulkan/pipeline/vktPipelineCreationFeedbackTests.cpp b/external/vulkancts/modules/vulkan/pipeline/vktPipelineCreationFeedbackTests.cpp
+index d9d89387f..1c6ae0605 100644
+--- a/external/vulkancts/modules/vulkan/pipeline/vktPipelineCreationFeedbackTests.cpp
++++ b/external/vulkancts/modules/vulkan/pipeline/vktPipelineCreationFeedbackTests.cpp
+@@ -625,14 +625,14 @@ void GraphicsCacheTestInstance::preparePipelineWrapper (GraphicsPipelineWrapper&
+ {
+ // setup proper stages count for CreationFeedback structures
+ // that will be passed to pre-rasterization and fragment shader states
+- pipelineCreationFeedbackCreateInfo[1].pipelineStageCreationFeedbackCount = geometryStages;
++ pipelineCreationFeedbackCreateInfo[1].pipelineStageCreationFeedbackCount = zeroOutFeedbackCount ? 0u : geometryStages;
+ pipelineCreationFeedbackCreateInfo[1].pPipelineStageCreationFeedbacks = pipelineStageCreationFeedbacks;
+- pipelineCreationFeedbackCreateInfo[2].pipelineStageCreationFeedbackCount = 1u;
++ pipelineCreationFeedbackCreateInfo[2].pipelineStageCreationFeedbackCount = zeroOutFeedbackCount ? 0u : 1u;
+ pipelineCreationFeedbackCreateInfo[2].pPipelineStageCreationFeedbacks = pipelineStageCreationFeedbacks + geometryStages;
+
+ if (m_param->getPipelineConstructionType() == PIPELINE_CONSTRUCTION_TYPE_LINK_TIME_OPTIMIZED_LIBRARY)
+ {
+- pipelineCreationFeedbackCreateInfo[4].pipelineStageCreationFeedbackCount = 1u + geometryStages;
++ pipelineCreationFeedbackCreateInfo[4].pipelineStageCreationFeedbackCount = zeroOutFeedbackCount ? 0u : (1u + geometryStages);
+ pipelineCreationFeedbackCreateInfo[4].pPipelineStageCreationFeedbacks = pipelineStageCreationFeedbacks;
+ }
+ }
diff --git a/tests/regres/deqp.json b/tests/regres/deqp.json
index 91de37a..bd8830d 100644
--- a/tests/regres/deqp.json
+++ b/tests/regres/deqp.json
@@ -4,6 +4,7 @@
"sha": "7bbdc916a41493523c9f28d8bce725ca9a2fdc6b",
"patches": [
"tests/regres/deqp-patches/deqp-x11.patch",
- "tests/regres/deqp-patches/deqp-oob-read-fix.patch"
+ "tests/regres/deqp-patches/deqp-oob-read-fix.patch",
+ "tests/regres/deqp-patches/deqp-zero-feedback-count.patch"
]
}