From 8faa0e2c1b295d271a5ca98ac9c46462a1522524 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Fri, 24 Apr 2020 11:23:19 +1000 Subject: [PATCH] gallivm: fix stencil border Fixes: dEQP-GLES31.functional.texture.border_clamp.unused_channels.depth32f_stencil8_sample_stencil dEQP-GLES31.functional.texture.border_clamp.sampler.uint_stencil Reviewed-by: Roland Scheidegger Part-of: --- .gitlab-ci/deqp-virgl-fails.txt | 2 -- .gitlab-ci/piglit/quick_gl.txt | 6 ++---- src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c | 12 ++++++++++-- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/.gitlab-ci/deqp-virgl-fails.txt b/.gitlab-ci/deqp-virgl-fails.txt index afb05cf55ec..76208e348d7 100644 --- a/.gitlab-ci/deqp-virgl-fails.txt +++ b/.gitlab-ci/deqp-virgl-fails.txt @@ -717,6 +717,4 @@ dEQP-GLES31.functional.tessellation.user_defined_io.per_patch_block_array.vertex dEQP-GLES31.functional.tessellation.user_defined_io.per_vertex.vertex_io_array_size_query.quads_explicit_tcs_out_size dEQP-GLES31.functional.tessellation.user_defined_io.per_vertex.vertex_io_array_size_shader_builtin.triangles dEQP-GLES31.functional.tessellation.user_defined_io.per_vertex_block.vertex_io_array_size_shader_builtin.isolines -dEQP-GLES31.functional.texture.border_clamp.per_axis_wrap_mode.texture_2d.uint_stencil.nearest.s_clamp_to_edge_t_clamp_to_border_pot dEQP-GLES31.functional.texture.border_clamp.range_clamp.nearest_float_depth -dEQP-GLES31.functional.texture.border_clamp.unused_channels.stencil_index8 diff --git a/.gitlab-ci/piglit/quick_gl.txt b/.gitlab-ci/piglit/quick_gl.txt index c083eadcea9..2b6aeb9647e 100644 --- a/.gitlab-ci/piglit/quick_gl.txt +++ b/.gitlab-ci/piglit/quick_gl.txt @@ -1121,8 +1121,6 @@ spec/arb_texture_rg/multisample-formats 8 gl_arb_texture_rg: skip spec/arb_texture_rg/multisample-formats 8 gl_arb_texture_rg-float: skip spec/arb_texture_rg/multisample-formats 8 gl_arb_texture_rg-int: skip spec/arb_texture_stencil8/fbo-clear-formats/gl_stencil_index8 (fbo incomplete): skip -spec/arb_texture_stencil8/texwrap formats bordercolor-swizzled/gl_stencil_index8, swizzled, border color only: fail -spec/arb_texture_stencil8/texwrap formats bordercolor/gl_stencil_index8, border color only: fail spec/arb_texture_view/rendering-formats/clear gl_r8 as gl_r8_snorm: fail spec/arb_texture_view/rendering-formats/clear gl_r8 as gl_r8i: fail spec/arb_texture_view/rendering-formats/clear gl_rg8 as gl_r16_snorm: fail @@ -2083,8 +2081,8 @@ wgl/wgl-sanity: skip summary: name: results ---- -------- - pass: 19537 - fail: 248 + pass: 19539 + fail: 246 crash: 0 skip: 1814 timeout: 0 diff --git a/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c b/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c index a86ece1b0d0..7cc60f25856 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_sample_soa.c @@ -195,9 +195,17 @@ lp_build_sample_texel_soa(struct lp_build_sample_context *bld, for (chan = 0; chan < 4; chan++) { unsigned chan_s; /* reverse-map channel... */ - for (chan_s = 0; chan_s < 4; chan_s++) { - if (chan_s == format_desc->swizzle[chan]) { + if (util_format_has_stencil(format_desc)) { + if (chan == 0) + chan_s = 0; + else break; + } + else { + for (chan_s = 0; chan_s < 4; chan_s++) { + if (chan_s == format_desc->swizzle[chan]) { + break; + } } } if (chan_s <= 3) { -- 2.30.2