nir: mark XFB varyings as unmoveable to prevent them to be remapped

XFB varyings are considered as always active IO to prevent them to
be removed or compacted. Though, if the NIR linker doesn't mark XFB
varyings as unmoveable it still possible to remap other varyings to
the same location/component.

Fixes KHR-Single-GL46.enhanced_layouts.xfb_override_qualifiers_with_api
with Zink and a bunch of other dEQP XFB tests.

Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6301
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timothy Arceri  <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16092>
(cherry picked from commit 4ebb5391ac)

Conflicts:
	src/gallium/drivers/zink/ci/zink-radv-fails.txt
This commit is contained in:
Samuel Pitoiset 2022-04-22 10:13:56 +02:00 committed by Dylan Baker
parent 20d9687931
commit 2bd9b5c318
3 changed files with 49 additions and 2 deletions

View file

@ -572,7 +572,7 @@
"description": "nir: mark XFB varyings as unmoveable to prevent them to be remapped",
"nominated": true,
"nomination_type": 0,
"resolution": 0,
"resolution": 1,
"because_sha": null
},
{

View file

@ -308,7 +308,8 @@ get_unmoveable_components_masks(nir_shader *shader,
/* If we can pack this varying then don't mark the components as
* used.
*/
if (is_packing_supported_for_type(type))
if (is_packing_supported_for_type(type) &&
!var->data.always_active_io)
continue;
unsigned location = var->data.location - VARYING_SLOT_VAR0;

View file

@ -441,6 +441,7 @@ dEQP-GLES31.functional.texture.border_clamp.unused_channels.depth24_stencil8_sam
dEQP-GLES31.functional.texture.border_clamp.unused_channels.depth24_stencil8_sample_stencil,Fail
dEQP-GLES31.functional.texture.border_clamp.unused_channels.depth32f_stencil8_sample_stencil,Fail
dEQP-GLES31.functional.texture.border_clamp.unused_channels.stencil_index8,Fail
<<<<<<< HEAD
dEQP-GLES31.functional.texture.format.sized.cube_array.depth24_stencil8_npot,Fail
dEQP-GLES31.functional.texture.format.sized.cube_array.depth24_stencil8_pot,Fail
dEQP-GLES31.functional.texture.format.sized.cube_array.depth_component24_npot,Fail
@ -540,6 +541,51 @@ KHR-GL46.shader_image_load_store.non-layered_binding,Fail
KHR-GL46.shader_storage_buffer_object.advanced-readWrite-case1-cs,Fail
KHR-GL46.shader_storage_buffer_object.basic-operations-case1-cs,Fail
KHR-GL46.shader_storage_buffer_object.basic-operations-case1-vs,Fail
=======
dEQP-GLES3.functional.clipping.line.wide_line_clip_viewport_center,Fail
dEQP-GLES3.functional.clipping.line.wide_line_clip_viewport_corner,Fail
dEQP-GLES3.functional.clipping.point.wide_point_clip,Fail
dEQP-GLES3.functional.clipping.point.wide_point_clip_viewport_center,Fail
dEQP-GLES3.functional.clipping.point.wide_point_clip_viewport_corner,Fail
dEQP-GLES3.functional.draw_buffers_indexed.overwrite_common.common_advanced_blend_eq_buffer_advanced_blend_eq,Fail
dEQP-GLES3.functional.draw_buffers_indexed.overwrite_common.common_blend_eq_buffer_advanced_blend_eq,Fail
dEQP-GLES3.functional.draw_buffers_indexed.overwrite_common.common_separate_blend_eq_buffer_advanced_blend_eq,Fail
dEQP-GLES3.functional.draw_buffers_indexed.overwrite_indexed.common_advanced_blend_eq_buffer_advanced_blend_eq,Fail
dEQP-GLES3.functional.draw_buffers_indexed.overwrite_indexed.common_advanced_blend_eq_buffer_blend_eq,Fail
dEQP-GLES3.functional.draw_buffers_indexed.overwrite_indexed.common_advanced_blend_eq_buffer_separate_blend_eq,Fail
dEQP-GLES3.functional.fbo.depth.depth_test_clamp.depth24_stencil8,Fail
dEQP-GLES3.functional.fbo.depth.depth_test_clamp.depth32f_stencil8,Fail
dEQP-GLES3.functional.fbo.depth.depth_test_clamp.depth_component24,Fail
dEQP-GLES3.functional.fbo.depth.depth_test_clamp.depth_component32f,Fail
dEQP-GLES3.functional.fbo.depth.depth_write_clamp.depth24_stencil8,Fail
dEQP-GLES3.functional.fbo.depth.depth_write_clamp.depth32f_stencil8,Fail
dEQP-GLES3.functional.fbo.depth.depth_write_clamp.depth_component24,Fail
dEQP-GLES3.functional.fbo.depth.depth_write_clamp.depth_component32f,Fail
dEQP-GLES3.functional.polygon_offset.fixed16_render_with_units,Fail
dEQP-GLES3.functional.rasterization.primitives.line_loop_wide,Fail
dEQP-GLES3.functional.rasterization.primitives.line_strip_wide,Fail
dEQP-GLES3.functional.shaders.metamorphic.bubblesort_flag.variant_1,Fail
dEQP-GLES3.functional.shaders.metamorphic.bubblesort_flag.variant_2,Fail
dEQP-GLES3.functional.shaders.texture_functions.textureprojlodoffset.sampler2dshadow_vertex,Fail
dEQP-GLES3.functional.shaders.texture_functions.textureprojoffset.sampler2dshadow_vertex,Fail
# cubes are hard #6270
spec@glsl-1.20@execution@tex-miplevel-selection gl2:texture() cube,Fail
spec@glsl-1.30@execution@tex-miplevel-selection texture() cube,Fail
spec@glsl-1.30@execution@tex-miplevel-selection texture() cubearray,Fail
spec@glsl-1.30@execution@tex-miplevel-selection texture() cubearrayshadow,Fail
spec@glsl-1.30@execution@tex-miplevel-selection texture() cubeshadow,Fail
spec@glsl-1.30@execution@tex-miplevel-selection texture(bias) cubeshadow,Fail
spec@glsl-1.30@execution@tex-miplevel-selection texturegrad cube,Fail
spec@glsl-1.30@execution@tex-miplevel-selection texturegrad cubearray,Fail
spec@glsl-1.30@execution@tex-miplevel-selection texturegrad cubeshadow,Fail
spec@arb_shader_texture_lod@execution@tex-miplevel-selection *gradarb cube,Fail
# kopper
glx@glx-multi-window-single-context,Crash
spec@ext_image_dma_buf_import@ext_image_dma_buf_import-export-tex,Crash
spec@egl_chromium_sync_control@conformance@eglGetSyncValuesCHROMIUM_ust_test,Fail
>>>>>>> 4ebb5391acf (nir: mark XFB varyings as unmoveable to prevent them to be remapped)
# 3D isn't supported by radv yet
KHR-GL46.sparse_texture_tests.InternalFormatQueries,Fail