Module: Mesa Branch: master Commit: 30cf07cc8ac1f2432b78336774ee43a7ef8d19e8 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=30cf07cc8ac1f2432b78336774ee43a7ef8d19e8
Author: Erik Faye-Lund <[email protected]> Date: Tue Mar 16 16:00:33 2021 +0100 lavapipe: fix primitive-restart for uint8 indices I forgot to add an implicit primitive-restart index for uint8 while adding support for this initially. But we also have a nice little helper to simplify this, so let's use that instead of open-coding. Fixes: 6526e6d11b8 ("lavapipe: implement VK_EXT_index_type_uint8") Reviewed-By: Mike Blumenkrantz <[email protected]> Reviewed-by: Eric Anholt <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9622> --- src/gallium/drivers/llvmpipe/ci/deqp-lvp-fails.txt | 1 - src/gallium/drivers/zink/ci/deqp-zink-lvp-fails.txt | 13 ------------- src/gallium/drivers/zink/ci/deqp-zink-lvp-flakes.txt | 6 ------ src/gallium/drivers/zink/ci/zink-quick_gl.txt | 9 --------- src/gallium/frontends/lavapipe/lvp_execute.c | 10 ++++------ 5 files changed, 4 insertions(+), 35 deletions(-) diff --git a/src/gallium/drivers/llvmpipe/ci/deqp-lvp-fails.txt b/src/gallium/drivers/llvmpipe/ci/deqp-lvp-fails.txt index 548f184ed77..98b61c2537c 100644 --- a/src/gallium/drivers/llvmpipe/ci/deqp-lvp-fails.txt +++ b/src/gallium/drivers/llvmpipe/ci/deqp-lvp-fails.txt @@ -11,7 +11,6 @@ dEQP-VK.glsl.texture_functions.query.texturequerylod.sampler1dshadow_fragment,Fa dEQP-VK.glsl.texture_functions.query.texturequerylod.sampler2darray_fixed_fragment,Fail dEQP-VK.glsl.texture_functions.query.texturequerylod.sampler2darrayshadow_fragment,Fail dEQP-VK.glsl.texture_functions.query.texturequerylod.sampler2dshadow_fragment,Fail -dEQP-VK.pipeline.input_assembly.primitive_restart.index_type_uint8.line_strip_with_adjacency,Fail dEQP-VK.rasterization.primitives_multisample_4_bit.no_stipple.points,Fail dEQP-VK.tessellation.invariance.outer_triangle_set.quads_fractional_odd_spacing,Timeout dEQP-VK.texture.filtering.2d.combinations.linear_mipmap_linear.linear.clamp_to_edge.repeat,Fail diff --git a/src/gallium/drivers/zink/ci/deqp-zink-lvp-fails.txt b/src/gallium/drivers/zink/ci/deqp-zink-lvp-fails.txt index 2cfd087575f..5e328ff7642 100644 --- a/src/gallium/drivers/zink/ci/deqp-zink-lvp-fails.txt +++ b/src/gallium/drivers/zink/ci/deqp-zink-lvp-fails.txt @@ -245,19 +245,6 @@ dEQP-GLES3.functional.fragment_out.random.94,Fail dEQP-GLES3.functional.fragment_out.random.98,Fail dEQP-GLES3.functional.polygon_offset.fixed16_render_with_units,Fail dEQP-GLES3.functional.polygon_offset.fixed24_displacement_with_units,Fail -dEQP-GLES3.functional.primitive_restart.basic.triangle_fan.unsigned_byte.draw_elements_instanced,Fail -dEQP-GLES3.functional.primitive_restart.basic.triangle_strip.unsigned_byte.draw_range_elements,Fail -dEQP-GLES3.functional.primitive_restart.begin_restart_duplicate_restarts.line_strip.unsigned_byte.draw_range_elements,Fail -dEQP-GLES3.functional.primitive_restart.begin_restart_duplicate_restarts.triangle_fan.unsigned_byte.draw_range_elements,Fail -dEQP-GLES3.functional.primitive_restart.begin_restart_end_restart_duplicate_restarts.line_strip.unsigned_byte.draw_elements,Fail -dEQP-GLES3.functional.primitive_restart.begin_restart_end_restart_duplicate_restarts.triangle_fan.unsigned_byte.draw_elements,Fail -dEQP-GLES3.functional.primitive_restart.begin_restart_end_restart.triangle_strip.unsigned_byte.draw_elements,Fail -dEQP-GLES3.functional.primitive_restart.begin_restart.triangle_fan.unsigned_byte.draw_elements_instanced,Fail -dEQP-GLES3.functional.primitive_restart.begin_restart.triangle_strip.unsigned_byte.draw_range_elements,Fail -dEQP-GLES3.functional.primitive_restart.duplicate_restarts.triangle_fan.unsigned_byte.draw_range_elements,Fail -dEQP-GLES3.functional.primitive_restart.end_restart_duplicate_restarts.line_strip.unsigned_byte.draw_elements,Fail -dEQP-GLES3.functional.primitive_restart.end_restart_duplicate_restarts.triangle_fan.unsigned_byte.draw_elements,Fail -dEQP-GLES3.functional.primitive_restart.end_restart_duplicate_restarts.triangle_strip.unsigned_byte.draw_elements_instanced,Fail dEQP-GLES3.functional.rasterization.flatshading.lines,Fail dEQP-GLES3.functional.shaders.texture_functions.texturegrad.isampler2darray_vertex,Fail dEQP-GLES3.functional.shaders.texture_functions.texturegrad.isampler3d_vertex,Fail diff --git a/src/gallium/drivers/zink/ci/deqp-zink-lvp-flakes.txt b/src/gallium/drivers/zink/ci/deqp-zink-lvp-flakes.txt index 50773b8a7cc..e69de29bb2d 100644 --- a/src/gallium/drivers/zink/ci/deqp-zink-lvp-flakes.txt +++ b/src/gallium/drivers/zink/ci/deqp-zink-lvp-flakes.txt @@ -1,6 +0,0 @@ -dEQP-GLES3.functional.primitive_restart.begin_restart.line_strip.unsigned_byte.draw_elements_instanced -dEQP-GLES3.functional.primitive_restart.duplicate_restarts.line_strip.unsigned_byte.draw_range_elements -dEQP-GLES3.functional.primitive_restart.end_restart.triangle_strip.unsigned_byte.draw_elements -dEQP-GLES3.functional.primitive_restart.end_restart_duplicate_restarts.triangle_strip.unsigned_byte.draw_elements_instanced -dEQP-GLES3.functional.primitive_restart.basic.line_strip.unsigned_byte.draw_elements_instanced -dEQP-GLES3.functional.primitive_restart.begin_restart_end_restart_duplicate_restarts.triangle_strip.unsigned_byte.draw_elements_instanced diff --git a/src/gallium/drivers/zink/ci/zink-quick_gl.txt b/src/gallium/drivers/zink/ci/zink-quick_gl.txt index 43fd8b8a465..c23477525ff 100644 --- a/src/gallium/drivers/zink/ci/zink-quick_gl.txt +++ b/src/gallium/drivers/zink/ci/zink-quick_gl.txt @@ -735,9 +735,6 @@ spec/!opengl 3.0/clearbuffer-depth-cs-probe: skip spec/!opengl 3.0/clearbuffer-stencil: fail spec/!opengl 3.0/sampler-cube-shadow: fail spec/!opengl 3.1/draw-buffers-errors: skip -spec/!opengl 3.1/primitive-restart-xfb flush: fail -spec/!opengl 3.1/primitive-restart-xfb generated: fail -spec/!opengl 3.1/primitive-restart-xfb written: fail spec/!opengl 3.2/gl-3.2-adj-prims cull-back pv-first: fail spec/!opengl 3.2/gl-3.2-adj-prims cull-back pv-last: fail spec/!opengl 3.2/gl-3.2-adj-prims cull-front pv-first: fail @@ -2585,7 +2582,6 @@ spec/ext_window_rectangles/render_gles3: skip spec/glsl-1.50/built-in constants compatibility: skip spec/glsl-1.50/execution/geometry/primitive-id-restart gl_line_loop ffs: fail spec/glsl-1.50/execution/geometry/primitive-id-restart gl_line_loop other: fail -spec/glsl-1.50/execution/geometry/primitive-id-restart gl_line_strip ffs: fail spec/glsl-1.50/execution/geometry/primitive-id-restart gl_line_strip_adjacency ffs: fail spec/glsl-1.50/execution/geometry/primitive-id-restart gl_line_strip_adjacency other: fail spec/glsl-1.50/execution/geometry/primitive-id-restart gl_lines ffs: fail @@ -2594,8 +2590,6 @@ spec/glsl-1.50/execution/geometry/primitive-id-restart gl_lines_adjacency ffs: f spec/glsl-1.50/execution/geometry/primitive-id-restart gl_lines_adjacency other: fail spec/glsl-1.50/execution/geometry/primitive-id-restart gl_points ffs: fail spec/glsl-1.50/execution/geometry/primitive-id-restart gl_points other: fail -spec/glsl-1.50/execution/geometry/primitive-id-restart gl_triangle_fan ffs: fail -spec/glsl-1.50/execution/geometry/primitive-id-restart gl_triangle_strip ffs: fail spec/glsl-1.50/execution/geometry/primitive-id-restart gl_triangle_strip_adjacency ffs: fail spec/glsl-1.50/execution/geometry/primitive-id-restart gl_triangle_strip_adjacency other: fail spec/glsl-1.50/execution/geometry/primitive-id-restart gl_triangles ffs: fail @@ -2708,9 +2702,6 @@ spec/nv_fragment_program_option/fp-set-02: skip spec/nv_fragment_program_option/fp-unpack-01: skip spec/nv_image_formats/nv_image_formats-gles3: skip spec/nv_primitive_restart/primitive-restart-disable_vbo: fail -spec/nv_primitive_restart/primitive-restart-draw-mode-line_strip: fail -spec/nv_primitive_restart/primitive-restart-draw-mode-triangle_fan: fail -spec/nv_primitive_restart/primitive-restart-draw-mode-triangle_strip: fail spec/nv_primitive_restart/primitive-restart-vbo_combined_vertex_and_index: fail spec/nv_primitive_restart/primitive-restart-vbo_index_only: fail spec/nv_primitive_restart/primitive-restart-vbo_separate_vertex_and_index: fail diff --git a/src/gallium/frontends/lavapipe/lvp_execute.c b/src/gallium/frontends/lavapipe/lvp_execute.c index a06dabd7dab..cf29946ceb1 100644 --- a/src/gallium/frontends/lavapipe/lvp_execute.c +++ b/src/gallium/frontends/lavapipe/lvp_execute.c @@ -38,6 +38,7 @@ #include "util/u_sampler.h" #include "util/u_box.h" #include "util/u_inlines.h" +#include "util/u_prim_restart.h" #include "util/format/u_format_zs.h" #include "vk_util.h" @@ -2114,12 +2115,9 @@ static void handle_draw_indexed(struct lvp_cmd_buffer_entry *cmd, state->info.index_bias = cmd->u.draw_indexed.vertex_offset; state->info.view_mask = subpass->view_mask; - if (state->info.primitive_restart) { - if (state->info.index_size == 4) - state->info.restart_index = 0xffffffff; - else - state->info.restart_index = 0xffff; - } + if (state->info.primitive_restart) + state->info.restart_index = util_prim_restart_index_from_size(state->info.index_size); + state->pctx->draw_vbo(state->pctx, &state->info, NULL, &state->draw, 1); } _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
