Mesa (main): freedreno/a5xx: Disable TF when pausing or transitioning to non-TF.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Aug 4 17:39:01 UTC 2021


Module: Mesa
Branch: main
Commit: c20287f8e4d66814cde89a771f843066ad4ead20
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c20287f8e4d66814cde89a771f843066ad4ead20

Author: Emma Anholt <emma at anholt.net>
Date:   Tue Aug  3 12:45:57 2021 -0700

freedreno/a5xx: Disable TF when pausing or transitioning to non-TF.

This is not as clean as on a6xx where we just re-emit the SO state, but it
cleans up our dEQP results a ton.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12192>

---

 src/freedreno/ci/deqp-freedreno-a530-fails.txt | 405 -------------------------
 src/gallium/drivers/freedreno/a5xx/fd5_emit.c  |  15 +
 2 files changed, 15 insertions(+), 405 deletions(-)

diff --git a/src/freedreno/ci/deqp-freedreno-a530-fails.txt b/src/freedreno/ci/deqp-freedreno-a530-fails.txt
index f4d8367d2a2..9b5a94d1d48 100644
--- a/src/freedreno/ci/deqp-freedreno-a530-fails.txt
+++ b/src/freedreno/ci/deqp-freedreno-a530-fails.txt
@@ -157,408 +157,3 @@ dEQP-GLES3.functional.shaders.texture_functions.textureprojgradoffset.sampler3d_
 dEQP-GLES3.functional.shaders.texture_functions.textureprojgradoffset.sampler3d_float_vertex,Fail
 dEQP-GLES3.functional.shaders.texture_functions.textureprojgrad.sampler2dshadow_vertex,Fail
 dEQP-GLES3.functional.texture.specification.texstorage3d.size.3d_2x2x2_2_levels,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.interleaved.lines.highp_float,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.interleaved.lines.highp_ivec2,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.interleaved.lines.highp_ivec4,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.interleaved.lines.highp_mat2,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.interleaved.lines.highp_mat2x4,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.interleaved.lines.highp_uvec2,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.interleaved.lines.highp_uvec4,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.interleaved.lines.highp_vec3,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.interleaved.lines.lowp_float,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.interleaved.lines.lowp_ivec2,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.interleaved.lines.lowp_ivec4,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.interleaved.lines.lowp_mat2,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.interleaved.lines.lowp_mat2x4,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.interleaved.lines.lowp_uvec2,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.interleaved.lines.lowp_uvec4,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.interleaved.lines.lowp_vec3,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.interleaved.lines.mediump_int,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.interleaved.lines.mediump_ivec3,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.interleaved.lines.mediump_mat2x3,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.interleaved.lines.mediump_uint,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.interleaved.lines.mediump_uvec3,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.interleaved.lines.mediump_vec2,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.interleaved.lines.mediump_vec4,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.interleaved.points.highp_int,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.interleaved.points.highp_ivec3,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.interleaved.points.highp_mat2x3,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.interleaved.points.highp_uint,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.interleaved.points.highp_uvec3,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.interleaved.points.highp_vec2,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.interleaved.points.highp_vec4,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.interleaved.points.lowp_int,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.interleaved.points.lowp_ivec3,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.interleaved.points.lowp_mat2x3,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.interleaved.points.lowp_uint,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.interleaved.points.lowp_uvec3,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.interleaved.points.lowp_vec2,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.interleaved.points.lowp_vec4,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.interleaved.points.mediump_float,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.interleaved.points.mediump_ivec2,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.interleaved.points.mediump_ivec4,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.interleaved.points.mediump_mat2,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.interleaved.points.mediump_mat2x4,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.interleaved.points.mediump_uvec2,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.interleaved.points.mediump_uvec4,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.interleaved.points.mediump_vec3,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.lines.highp_int,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.lines.highp_ivec3,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.lines.highp_mat2x3,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.lines.highp_uint,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.lines.highp_uvec3,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.lines.highp_vec2,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.lines.highp_vec4,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.lines.lowp_int,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.lines.lowp_ivec3,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.lines.lowp_mat2x3,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.lines.lowp_uint,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.lines.lowp_uvec3,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.lines.lowp_vec2,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.lines.lowp_vec4,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.lines.mediump_float,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.lines.mediump_ivec2,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.lines.mediump_ivec4,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.lines.mediump_mat2,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.lines.mediump_mat2x4,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.lines.mediump_uvec2,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.lines.mediump_uvec4,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.lines.mediump_vec3,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.points.highp_float,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.points.highp_ivec2,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.points.highp_ivec4,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.points.highp_mat2,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.points.highp_mat2x4,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.points.highp_uvec2,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.points.highp_uvec4,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.points.highp_vec3,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.points.lowp_float,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.points.lowp_ivec2,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.points.lowp_ivec4,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.points.lowp_mat2,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.points.lowp_mat2x4,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.points.lowp_uvec2,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.points.lowp_uvec4,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.points.lowp_vec3,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.points.mediump_int,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.points.mediump_ivec3,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.points.mediump_mat2x3,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.points.mediump_uint,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.points.mediump_uvec3,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.points.mediump_vec2,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.points.mediump_vec4,Fail
-dEQP-GLES3.functional.transform_feedback.array_element.separate.triangles.mediump_vec4,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.lines.highp_float,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.lines.highp_ivec2,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.lines.highp_ivec4,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.lines.highp_mat2,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.lines.highp_mat2x4,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.lines.highp_mat3,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.lines.highp_mat4,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.lines.highp_mat4x2,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.lines.highp_uvec2,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.lines.highp_uvec4,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.lines.highp_vec3,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.lines.lowp_float,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.lines.lowp_ivec2,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.lines.lowp_ivec4,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.lines.lowp_mat2,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.lines.lowp_mat2x4,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.lines.lowp_mat3,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.lines.lowp_mat4,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.lines.lowp_mat4x2,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.lines.lowp_uvec2,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.lines.lowp_uvec4,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.lines.lowp_vec3,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.lines.mediump_int,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.lines.mediump_ivec3,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.lines.mediump_mat2x3,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.lines.mediump_mat3x2,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.lines.mediump_mat3x4,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.lines.mediump_mat4x3,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.lines.mediump_uint,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.lines.mediump_uvec3,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.lines.mediump_vec2,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.lines.mediump_vec4,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.points.highp_int,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.points.highp_ivec3,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.points.highp_mat2x3,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.points.highp_mat3x2,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.points.highp_mat3x4,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.points.highp_mat4x3,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.points.highp_uint,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.points.highp_uvec3,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.points.highp_vec2,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.points.highp_vec4,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.points.lowp_int,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.points.lowp_ivec3,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.points.lowp_mat2x3,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.points.lowp_mat3x2,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.points.lowp_mat3x4,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.points.lowp_mat4x3,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.points.lowp_uint,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.points.lowp_uvec3,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.points.lowp_vec2,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.points.lowp_vec4,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.points.mediump_float,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.points.mediump_ivec2,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.points.mediump_ivec4,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.points.mediump_mat2,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.points.mediump_mat2x4,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.points.mediump_mat3,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.points.mediump_mat4,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.points.mediump_mat4x2,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.points.mediump_uvec2,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.points.mediump_uvec4,Fail
-dEQP-GLES3.functional.transform_feedback.array.interleaved.points.mediump_vec3,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.lines.highp_int,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.lines.highp_ivec3,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.lines.highp_mat2x3,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.lines.highp_mat3x2,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.lines.highp_mat3x4,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.lines.highp_mat4x3,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.lines.highp_uint,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.lines.highp_uvec3,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.lines.highp_vec2,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.lines.highp_vec4,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.lines.lowp_int,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.lines.lowp_ivec3,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.lines.lowp_mat2x3,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.lines.lowp_mat3x2,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.lines.lowp_mat3x4,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.lines.lowp_mat4x3,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.lines.lowp_uint,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.lines.lowp_uvec3,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.lines.lowp_vec2,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.lines.lowp_vec4,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.lines.mediump_float,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.lines.mediump_ivec2,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.lines.mediump_ivec4,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.lines.mediump_mat2,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.lines.mediump_mat2x4,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.lines.mediump_mat3,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.lines.mediump_mat4,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.lines.mediump_mat4x2,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.lines.mediump_uvec2,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.lines.mediump_uvec4,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.lines.mediump_vec3,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.points.highp_float,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.points.highp_ivec2,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.points.highp_ivec4,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.points.highp_mat2,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.points.highp_mat2x4,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.points.highp_mat3,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.points.highp_mat4,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.points.highp_mat4x2,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.points.highp_uvec2,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.points.highp_uvec4,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.points.highp_vec3,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.points.lowp_float,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.points.lowp_ivec2,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.points.lowp_ivec4,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.points.lowp_mat2,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.points.lowp_mat2x4,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.points.lowp_mat3,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.points.lowp_mat4,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.points.lowp_mat4x2,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.points.lowp_uvec2,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.points.lowp_uvec4,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.points.lowp_vec3,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.points.mediump_int,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.points.mediump_ivec3,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.points.mediump_mat2x3,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.points.mediump_mat3x2,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.points.mediump_mat3x4,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.points.mediump_mat4x3,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.points.mediump_uint,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.points.mediump_uvec3,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.points.mediump_vec2,Fail
-dEQP-GLES3.functional.transform_feedback.array.separate.points.mediump_vec4,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.lines.highp_float,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.lines.highp_ivec2,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.lines.highp_ivec4,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.lines.highp_mat2,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.lines.highp_mat2x4,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.lines.highp_mat3,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.lines.highp_mat4,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.lines.highp_mat4x2,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.lines.highp_uvec2,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.lines.highp_uvec4,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.lines.highp_vec3,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.lines.lowp_float,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.lines.lowp_ivec2,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.lines.lowp_ivec4,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.lines.lowp_mat2,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.lines.lowp_mat2x4,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.lines.lowp_mat3,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.lines.lowp_mat4,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.lines.lowp_mat4x2,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.lines.lowp_uvec2,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.lines.lowp_uvec4,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.lines.lowp_vec3,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.lines.mediump_int,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.lines.mediump_ivec3,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.lines.mediump_mat2x3,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.lines.mediump_mat3x2,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.lines.mediump_mat3x4,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.lines.mediump_mat4x3,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.lines.mediump_uint,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.lines.mediump_uvec3,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.lines.mediump_vec2,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.lines.mediump_vec4,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.points.highp_int,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.points.highp_ivec3,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.points.highp_mat2x3,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.points.highp_mat3x2,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.points.highp_mat3x4,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.points.highp_mat4x3,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.points.highp_uint,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.points.highp_uvec3,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.points.highp_vec2,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.points.highp_vec4,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.points.lowp_int,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.points.lowp_ivec3,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.points.lowp_mat2x3,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.points.lowp_mat3x2,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.points.lowp_mat3x4,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.points.lowp_mat4x3,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.points.lowp_uint,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.points.lowp_uvec3,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.points.lowp_vec2,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.points.lowp_vec4,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.points.mediump_float,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.points.mediump_ivec2,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.points.mediump_ivec4,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.points.mediump_mat2,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.points.mediump_mat2x4,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.points.mediump_mat3,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.points.mediump_mat4,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.points.mediump_mat4x2,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.points.mediump_uvec2,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.points.mediump_uvec4,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.interleaved.points.mediump_vec3,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.lines.highp_int,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.lines.highp_ivec3,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.lines.highp_mat2x3,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.lines.highp_mat3x2,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.lines.highp_mat3x4,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.lines.highp_mat4x3,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.lines.highp_uint,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.lines.highp_uvec3,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.lines.highp_vec2,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.lines.highp_vec4,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.lines.lowp_int,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.lines.lowp_ivec3,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.lines.lowp_mat2x3,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.lines.lowp_mat3x2,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.lines.lowp_mat3x4,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.lines.lowp_mat4x3,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.lines.lowp_uint,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.lines.lowp_uvec3,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.lines.lowp_vec2,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.lines.lowp_vec4,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.lines.mediump_float,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.lines.mediump_ivec2,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.lines.mediump_ivec4,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.lines.mediump_mat2,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.lines.mediump_mat2x4,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.lines.mediump_mat3,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.lines.mediump_mat4,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.lines.mediump_mat4x2,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.lines.mediump_uvec2,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.lines.mediump_uvec4,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.lines.mediump_vec3,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.points.highp_float,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.points.highp_ivec2,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.points.highp_ivec4,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.points.highp_mat2,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.points.highp_mat2x4,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.points.highp_mat3,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.points.highp_mat4,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.points.highp_mat4x2,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.points.highp_uvec2,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.points.highp_uvec4,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.points.highp_vec3,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.points.lowp_float,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.points.lowp_ivec2,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.points.lowp_ivec4,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.points.lowp_mat2,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.points.lowp_mat2x4,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.points.lowp_mat3,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.points.lowp_mat4,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.points.lowp_mat4x2,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.points.lowp_uvec2,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.points.lowp_uvec4,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.points.lowp_vec3,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.points.mediump_int,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.points.mediump_ivec3,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.points.mediump_mat2x3,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.points.mediump_mat3x2,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.points.mediump_mat3x4,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.points.mediump_mat4x3,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.points.mediump_uint,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.points.mediump_uvec3,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.points.mediump_vec2,Fail
-dEQP-GLES3.functional.transform_feedback.basic_types.separate.points.mediump_vec4,Fail
-dEQP-GLES3.functional.transform_feedback.interpolation.centroid.highp_vec4_lines_separate,Fail
-dEQP-GLES3.functional.transform_feedback.interpolation.centroid.highp_vec4_points_separate,Fail
-dEQP-GLES3.functional.transform_feedback.interpolation.centroid.lowp_vec4_lines_separate,Fail
-dEQP-GLES3.functional.transform_feedback.interpolation.centroid.lowp_vec4_points_separate,Fail
-dEQP-GLES3.functional.transform_feedback.interpolation.centroid.mediump_vec4_lines_separate,Fail
-dEQP-GLES3.functional.transform_feedback.interpolation.centroid.mediump_vec4_points_separate,Fail
-dEQP-GLES3.functional.transform_feedback.interpolation.flat.highp_vec4_lines_separate,Fail
-dEQP-GLES3.functional.transform_feedback.interpolation.flat.highp_vec4_points_separate,Fail
-dEQP-GLES3.functional.transform_feedback.interpolation.flat.lowp_vec4_lines_separate,Fail
-dEQP-GLES3.functional.transform_feedback.interpolation.flat.lowp_vec4_points_separate,Fail
-dEQP-GLES3.functional.transform_feedback.interpolation.flat.mediump_vec4_lines_separate,Fail
-dEQP-GLES3.functional.transform_feedback.interpolation.flat.mediump_vec4_points_separate,Fail
-dEQP-GLES3.functional.transform_feedback.interpolation.smooth.highp_vec4_lines_separate,Fail
-dEQP-GLES3.functional.transform_feedback.interpolation.smooth.highp_vec4_points_separate,Fail
-dEQP-GLES3.functional.transform_feedback.interpolation.smooth.lowp_vec4_lines_separate,Fail
-dEQP-GLES3.functional.transform_feedback.interpolation.smooth.lowp_vec4_points_separate,Fail
-dEQP-GLES3.functional.transform_feedback.interpolation.smooth.mediump_vec4_lines_separate,Fail
-dEQP-GLES3.functional.transform_feedback.interpolation.smooth.mediump_vec4_points_separate,Fail
-dEQP-GLES3.functional.transform_feedback.point_size.lines_separate,Fail
-dEQP-GLES3.functional.transform_feedback.point_size.points_separate,Fail
-dEQP-GLES3.functional.transform_feedback.position.lines_separate,Fail
-dEQP-GLES3.functional.transform_feedback.position.points_separate,Fail
-dEQP-GLES3.functional.transform_feedback.random_full_array_capture.interleaved.lines.1,Fail
-dEQP-GLES3.functional.transform_feedback.random_full_array_capture.interleaved.lines.3,Fail
-dEQP-GLES3.functional.transform_feedback.random_full_array_capture.interleaved.lines.5,Fail
-dEQP-GLES3.functional.transform_feedback.random_full_array_capture.interleaved.lines.7,Fail
-dEQP-GLES3.functional.transform_feedback.random_full_array_capture.interleaved.lines.9,Fail
-dEQP-GLES3.functional.transform_feedback.random_full_array_capture.interleaved.points.1,Fail
-dEQP-GLES3.functional.transform_feedback.random_full_array_capture.interleaved.points.3,Fail
-dEQP-GLES3.functional.transform_feedback.random_full_array_capture.interleaved.points.5,Fail
-dEQP-GLES3.functional.transform_feedback.random_full_array_capture.interleaved.points.7,Fail
-dEQP-GLES3.functional.transform_feedback.random_full_array_capture.interleaved.points.9,Fail
-dEQP-GLES3.functional.transform_feedback.random_full_array_capture.separate.lines.1,Fail
-dEQP-GLES3.functional.transform_feedback.random_full_array_capture.separate.lines.3,Fail
-dEQP-GLES3.functional.transform_feedback.random_full_array_capture.separate.lines.5,Fail
-dEQP-GLES3.functional.transform_feedback.random_full_array_capture.separate.lines.7,Fail
-dEQP-GLES3.functional.transform_feedback.random_full_array_capture.separate.lines.9,Fail
-dEQP-GLES3.functional.transform_feedback.random_full_array_capture.separate.points.1,Fail
-dEQP-GLES3.functional.transform_feedback.random_full_array_capture.separate.points.3,Fail
-dEQP-GLES3.functional.transform_feedback.random_full_array_capture.separate.points.5,Fail
-dEQP-GLES3.functional.transform_feedback.random_full_array_capture.separate.points.7,Fail
-dEQP-GLES3.functional.transform_feedback.random_full_array_capture.separate.points.9,Fail
-dEQP-GLES3.functional.transform_feedback.random.interleaved.lines.1,Fail
-dEQP-GLES3.functional.transform_feedback.random.interleaved.lines.3,Fail
-dEQP-GLES3.functional.transform_feedback.random.interleaved.lines.5,Fail
-dEQP-GLES3.functional.transform_feedback.random.interleaved.lines.7,Fail
-dEQP-GLES3.functional.transform_feedback.random.interleaved.lines.9,Fail
-dEQP-GLES3.functional.transform_feedback.random.interleaved.points.1,Fail
-dEQP-GLES3.functional.transform_feedback.random.interleaved.points.3,Fail
-dEQP-GLES3.functional.transform_feedback.random.interleaved.points.5,Fail
-dEQP-GLES3.functional.transform_feedback.random.interleaved.points.7,Fail
-dEQP-GLES3.functional.transform_feedback.random.interleaved.points.9,Fail
-dEQP-GLES3.functional.transform_feedback.random.separate.lines.1,Fail
-dEQP-GLES3.functional.transform_feedback.random.separate.lines.3,Fail
-dEQP-GLES3.functional.transform_feedback.random.separate.lines.5,Fail
-dEQP-GLES3.functional.transform_feedback.random.separate.lines.7,Fail
-dEQP-GLES3.functional.transform_feedback.random.separate.lines.9,Fail
-dEQP-GLES3.functional.transform_feedback.random.separate.points.1,Fail
-dEQP-GLES3.functional.transform_feedback.random.separate.points.3,Fail
-dEQP-GLES3.functional.transform_feedback.random.separate.points.5,Fail
-dEQP-GLES3.functional.transform_feedback.random.separate.points.7,Fail
-dEQP-GLES3.functional.transform_feedback.random.separate.points.9,Fail
diff --git a/src/gallium/drivers/freedreno/a5xx/fd5_emit.c b/src/gallium/drivers/freedreno/a5xx/fd5_emit.c
index 8f41504e520..5476f5bd3a4 100644
--- a/src/gallium/drivers/freedreno/a5xx/fd5_emit.c
+++ b/src/gallium/drivers/freedreno/a5xx/fd5_emit.c
@@ -775,6 +775,21 @@ fd5_emit_state(struct fd_context *ctx, struct fd_ringbuffer *ring,
       }
    }
 
+   if (!emit->streamout_mask && info->num_outputs) {
+      OUT_PKT7(ring, CP_CONTEXT_REG_BUNCH, 4);
+      OUT_RING(ring, REG_A5XX_VPC_SO_CNTL);
+      OUT_RING(ring, 0);
+      OUT_RING(ring, REG_A5XX_VPC_SO_BUF_CNTL);
+      OUT_RING(ring, 0);
+   } else if (emit->streamout_mask && !(dirty & FD_DIRTY_PROG)) {
+      /* reemit the program (if we haven't already) to re-enable streamout.  We
+       * really should switch to setting up program state at compile time so we
+       * can separate the SO state from the rest, and not recompute all the
+       * time.
+       */
+      fd5_program_emit(ctx, ring, emit);
+   }
+
    if (dirty & FD_DIRTY_BLEND) {
       struct fd5_blend_stateobj *blend = fd5_blend_stateobj(ctx->blend);
       uint32_t i;



More information about the mesa-commit mailing list