diff --git a/src/compiler/nir/nir_lower_pntc_ytransform.c b/src/compiler/nir/nir_lower_pntc_ytransform.c index 91dda527d1b..e7b12b4ec65 100644 --- a/src/compiler/nir/nir_lower_pntc_ytransform.c +++ b/src/compiler/nir/nir_lower_pntc_ytransform.c @@ -94,8 +94,10 @@ lower_pntc_ytransform_block(lower_pntc_ytransform_state *state, nir_deref_instr *deref = nir_src_as_deref(intr->src[0]); nir_variable *var = nir_deref_instr_get_variable(deref); - if (var->data.mode == nir_var_shader_in && - var->data.location == VARYING_SLOT_PNTC) { + if ((var->data.mode == nir_var_shader_in && + var->data.location == VARYING_SLOT_PNTC) || + (var->data.mode == nir_var_system_value && + var->data.location == SYSTEM_VALUE_POINT_COORD)) { lower_load_pointcoord(state, intr); } } diff --git a/src/panfrost/ci/panfrost-g52-fails.txt b/src/panfrost/ci/panfrost-g52-fails.txt index 4b15631fb9a..de573803020 100644 --- a/src/panfrost/ci/panfrost-g52-fails.txt +++ b/src/panfrost/ci/panfrost-g52-fails.txt @@ -18,7 +18,6 @@ glx@glx-swap-pixmap-bad,Fail glx@glx-visuals-depth -pixmap,Crash glx@glx-visuals-stencil -pixmap,Crash shaders@glsl-bug-110796,Fail -shaders@glsl-fs-pointcoord,Fail shaders@glsl-uniform-interstage-limits@subdivide 5,Crash shaders@glsl-uniform-interstage-limits@subdivide 5- statechanges,Crash shaders@glsl-vs-if-bool,Fail @@ -101,7 +100,6 @@ spec@arb_fragment_program@sparse-samplers,Crash spec@arb_framebuffer_object@arb_framebuffer_object-depth-stencil-blit depth gl_depth32f_stencil8,Fail spec@arb_framebuffer_object@arb_framebuffer_object-depth-stencil-blit depth_stencil gl_depth32f_stencil8,Fail spec@arb_framebuffer_object@arb_framebuffer_object-depth-stencil-blit stencil gl_depth32f_stencil8,Fail -spec@arb_framebuffer_object@fbo-gl_pointcoord,Fail spec@arb_framebuffer_object@fbo-luminance-alpha,Fail spec@arb_framebuffer_srgb@fbo-fast-clear,Fail spec@arb_get_program_binary@restore-sso-program,Fail @@ -1282,6 +1280,5 @@ spec@!opengl 3.1@primitive-restart-xfb generated,Fail spec@!opengl 3.1@primitive-restart-xfb written,Fail spec@!opengl 3.1@required-texture-attachment-formats,Fail spec@!opengl 3.2@coord-replace-doesnt-eliminate-frag-tex-coords,Fail -spec@!opengl es 2.0@glsl-fs-pointcoord,Fail spec@!opengl es 3.0@ext_texture_array-compressed_gles3 texsubimage,Fail spec@!opengl es 3.0@gles-3.0-transform-feedback-uniform-buffer-object,Fail diff --git a/src/panfrost/lib/pan_shader.h b/src/panfrost/lib/pan_shader.h index 50867c46053..b975698be5c 100644 --- a/src/panfrost/lib/pan_shader.h +++ b/src/panfrost/lib/pan_shader.h @@ -142,6 +142,10 @@ pan_shader_prepare_bifrost_rsd(const struct pan_shader_info *info, rsd->properties.shader_wait_dependency_7 = info->bifrost.wait_7; #endif + /* Match the mesa/st convention. If this needs to be flipped, + * nir_lower_pntc_ytransform will do so. */ + rsd->properties.point_sprite_coord_origin_max_y = true; + rsd->properties.allow_forward_pixel_to_be_killed = !info->fs.sidefx;