[regression] KHR-GLES31.core.geometry_shader.api.program_pipeline_vs_gs_capture fails for various drivers
$ MESA_LOADER_DRIVER_OVERRIDE=iris ./glcts -n KHR-GLES31.core.geometry_shader.api.program_pipeline_vs_gs_capture
Writing test log into TestResults.qpa
dEQP Core git-f01854b17d24b1ab06a71bcb668cbe4f55f8ff4c (0xf01854b1) starting..
target implementation = 'Default'
Test case 'KHR-GLES31.core.geometry_shader.api.program_pipeline_vs_gs_capture'..
Mesa: User error: GL_INVALID_OPERATION in glValidateProgramPipeline failed to validate the pipeline
Mesa: User error: GL_INVALID_OPERATION in glBindProgramPipeline(transform feedback active)
Mesa: User error: GL_INVALID_OPERATION in glBindBufferBase(transform feedback active)
Mesa: User error: GL_INVALID_OPERATION in glBindTransformFeedback(transform is active, or not paused)
Fail (glDrawArrays() call(s) failed.: glGetError() returned GL_INVALID_OPERATION at esextcGeometryShaderAPI.cpp:3876)
DONE!
Test run totals:
Passed: 0/1 (0.0%)
Failed: 1/1 (100.0%)
Not supported: 0/1 (0.0%)
Warnings: 0/1 (0.0%)
Test run was ABORTED!
Bisected to this commit:
commit b77907edb554a6505ea59805f5a90791be686b79
Author: Timothy Arceri <tarceri@itsqueeze.com>
Date: Fri Dec 6 21:57:16 2019 +1100
st/glsl_to_nir: use nir based program resource list builder
Here we use the NIR based builder to add everything to the resource
list execpt for SSO packed varyings. Since the details of those
varyings get lost during packing we leave the special handing to
the GLSL IR pass for now. In order to do this we add some bools
to the build resource list functions.
Using the NIR based resource list builder gets us a step closer to
using a native NIR based linker. It should also be faster than the
GLSL IR builder, one because the NIR optimisations should mean we
add less entries due to better optimisations, and two because nir
gives us better lists to work with and we don't need to walk the
entire IR to find the resources.
Ack-by: Alejandro Piñeiro <apinheiro@igalia.com>
At least Iris and V3D are affected (for V3D this requires !2731 (merged)). Presumably all gallium drivers that support geometry shaders are affected.