Mesa (main): panfrost: Lower user clip planes
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Mon May 2 14:14:35 UTC 2022
Module: Mesa
Branch: main
Commit: 5bab8e6cbefc2a22dc4a782a2128fba8bf301853
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5bab8e6cbefc2a22dc4a782a2128fba8bf301853
Author: Alyssa Rosenzweig <alyssa at collabora.com>
Date: Tue Apr 26 16:32:01 2022 -0400
panfrost: Lower user clip planes
Since we don't export the relevant CAP, the state tracker calls
nir_lower_clip_vs for us. However, for some reason we're still responsible for
calling nir_lower_clip_fs. Now that we have sane shader key infrastructure,
let's do so.
Fixes the floor rendering wrong in the title screen of Neverball.
Signed-off-by: Alyssa Rosenzweig <alyssa at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16173>
---
src/gallium/drivers/panfrost/pan_assemble.c | 6 ++++++
src/gallium/drivers/panfrost/pan_context.c | 5 +++++
src/gallium/drivers/panfrost/pan_context.h | 3 +++
src/panfrost/ci/panfrost-g52-fails.txt | 6 ------
4 files changed, 14 insertions(+), 6 deletions(-)
diff --git a/src/gallium/drivers/panfrost/pan_assemble.c b/src/gallium/drivers/panfrost/pan_assemble.c
index ac34c46e463..43b28465193 100644
--- a/src/gallium/drivers/panfrost/pan_assemble.c
+++ b/src/gallium/drivers/panfrost/pan_assemble.c
@@ -57,6 +57,12 @@ panfrost_shader_compile(struct pipe_screen *pscreen,
true /* point coord is sysval */,
false /* Y-invert */);
}
+
+ if (state->key.fs.clip_plane_enable) {
+ NIR_PASS_V(s, nir_lower_clip_fs,
+ state->key.fs.clip_plane_enable,
+ false);
+ }
}
/* Call out to Midgard compiler given the above NIR */
diff --git a/src/gallium/drivers/panfrost/pan_context.c b/src/gallium/drivers/panfrost/pan_context.c
index 4f52ae0b4f2..b1044c0206d 100644
--- a/src/gallium/drivers/panfrost/pan_context.c
+++ b/src/gallium/drivers/panfrost/pan_context.c
@@ -380,6 +380,11 @@ panfrost_build_key(struct panfrost_context *ctx,
key->fs.sprite_coord_enable = rast->sprite_coord_enable;
}
+ /* User clip plane lowering needed everywhere */
+ if (rast) {
+ key->fs.clip_plane_enable = rast->clip_plane_enable;
+ }
+
if (dev->arch <= 5) {
u_foreach_bit(i, (nir->info.outputs_read >> FRAG_RESULT_DATA0)) {
enum pipe_format fmt = PIPE_FORMAT_R8G8B8A8_UNORM;
diff --git a/src/gallium/drivers/panfrost/pan_context.h b/src/gallium/drivers/panfrost/pan_context.h
index ee6268af504..737ed78c802 100644
--- a/src/gallium/drivers/panfrost/pan_context.h
+++ b/src/gallium/drivers/panfrost/pan_context.h
@@ -266,6 +266,9 @@ struct panfrost_fs_key {
/* From rasterize state, to lower point sprites */
uint16_t sprite_coord_enable;
+
+ /* User clip plane lowering */
+ uint8_t clip_plane_enable;
};
struct panfrost_shader_key {
diff --git a/src/panfrost/ci/panfrost-g52-fails.txt b/src/panfrost/ci/panfrost-g52-fails.txt
index e4650e4bdb8..b522c6fba26 100644
--- a/src/panfrost/ci/panfrost-g52-fails.txt
+++ b/src/panfrost/ci/panfrost-g52-fails.txt
@@ -169,7 +169,6 @@ spec at arb_texture_view@sampling-2d-array-as-cubemap,Crash
spec at arb_transform_feedback_instanced@draw-auto instanced,Fail
spec at arb_uniform_buffer_object@rendering-dsa-offset,Fail
spec at arb_uniform_buffer_object@rendering-offset,Fail
-spec at arb_vertex_program@clip-plane-transformation arb,Fail
spec at egl 1.4 at eglterminate then unbind context,Fail
spec at egl_chromium_sync_control@conformance at eglGetSyncValuesCHROMIUM_msc_and_sbc_test,Fail
spec at egl_chromium_sync_control@conformance,Fail
@@ -337,9 +336,6 @@ spec at ext_transform_feedback@tessellation triangle_strip flat_last,Fail
spec at ext_transform_feedback@tessellation triangle_strip monochrome,Fail
spec at ext_transform_feedback@tessellation triangle_strip smooth,Fail
spec at ext_transform_feedback@tessellation triangle_strip wireframe,Fail
-spec at glsl-1.10@execution at clipping@clip-plane-transformation clipvert_pos,Fail
-spec at glsl-1.10@execution at clipping@clip-plane-transformation fixed,Fail
-spec at glsl-1.10@execution at clipping@clip-plane-transformation pos_clipvert,Fail
spec at glsl-1.10@execution at varying-packing@simple float array,Fail
spec at glsl-1.10@execution at varying-packing@simple float arrays_of_arrays,Fail
spec at glsl-1.10@execution at varying-packing@simple int array,Fail
@@ -394,7 +390,6 @@ spec at glsl-1.10@execution at varying-packing@simple vec3 arrays_of_arrays,Fail
spec at glsl-1.10@execution at varying-packing@simple vec3 separate,Fail
spec at glsl-1.10@execution at varying-packing@simple vec4 array,Fail
spec at glsl-1.10@execution at varying-packing@simple vec4 arrays_of_arrays,Fail
-spec at glsl-1.30@execution at clipping@clip-plane-transformation pos,Fail
spec at glsl-1.30@execution at tex-miplevel-selection texture() 2drect,Crash
spec at glsl-1.30@execution at tex-miplevel-selection texture() 2drectshadow,Crash
spec at glsl-1.30@execution at tex-miplevel-selection texturegrad 2drect,Crash
@@ -534,7 +529,6 @@ spec@!opengl 1.0 at gl-1.0-edgeflag,Fail
spec@!opengl 1.0 at gl-1.0-edgeflag-quads,Fail
spec@!opengl 1.0 at gl-1.0-no-op-paths,Fail
spec@!opengl 1.0 at gl-1.0-spot-light,Fail
-spec@!opengl 1.0 at gl-1.0-user-clip-all-planes,Fail
spec@!opengl 1.0 at rasterpos,Crash
spec@!opengl 1.1 at dlist-fdo3129-01,Crash
spec@!opengl 1.1 at getteximage-formats,Fail
More information about the mesa-commit
mailing list