Mesa (master): llvmpipe: simple texture barrier implementation.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed May 6 05:34:08 UTC 2020


Module: Mesa
Branch: master
Commit: 99fce3a6d71ee9970183b3545a4fbb8234b7fa35
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=99fce3a6d71ee9970183b3545a4fbb8234b7fa35

Author: Dave Airlie <airlied at redhat.com>
Date:   Thu Mar 26 12:06:34 2020 +1000

llvmpipe: simple texture barrier implementation.

Just flush.

Reviewed-by: Roland Scheidegger <sroland at vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4774>

---

 .gitlab-ci/piglit/quick_gl.txt            | 150 +-----------------------------
 docs/features.txt                         |   2 +-
 src/gallium/drivers/llvmpipe/lp_context.c |   7 ++
 src/gallium/drivers/llvmpipe/lp_screen.c  |   3 +-
 4 files changed, 11 insertions(+), 151 deletions(-)

diff --git a/.gitlab-ci/piglit/quick_gl.txt b/.gitlab-ci/piglit/quick_gl.txt
index 2b6aeb9647e..e66ac5a3833 100644
--- a/.gitlab-ci/piglit/quick_gl.txt
+++ b/.gitlab-ci/piglit/quick_gl.txt
@@ -738,150 +738,6 @@ spec/arb_stencil_texturing/glblitframebuffer corrupts state/gl_texture_2d_multis
 spec/arb_stencil_texturing/glblitframebuffer corrupts state/gl_texture_2d_multisample_array: fail
 spec/arb_tessellation_shader/arb_tessellation_shader-immediate-mode-draw-patches: skip
 spec/arb_tessellation_shader/arb_tessellation_shader-tes-gs-max-output -small -scan 1 50: fail
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 1 1 128 1: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 1 1 128 2: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 1 1 128 3: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 1 1 128 4: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 1 1 128 7: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 1 1 128 8: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 1 1 64 1: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 1 1 64 2: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 1 1 64 3: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 1 1 64 4: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 1 1 64 7: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 1 1 64 8: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 1 1 8 1: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 1 1 8 2: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 1 1 8 3: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 1 1 8 4: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 1 1 8 7: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 1 1 8 8: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 1 8 128 1: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 1 8 128 2: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 1 8 128 3: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 1 8 128 4: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 1 8 128 7: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 1 8 128 8: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 1 8 64 1: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 1 8 64 2: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 1 8 64 3: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 1 8 64 4: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 1 8 64 7: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 1 8 64 8: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 1 8 8 1: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 1 8 8 2: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 1 8 8 3: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 1 8 8 4: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 1 8 8 7: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 1 8 8 8: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 42 1 128 1: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 42 1 128 2: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 42 1 128 3: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 42 1 128 4: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 42 1 128 7: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 42 1 128 8: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 42 1 64 1: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 42 1 64 2: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 42 1 64 3: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 42 1 64 4: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 42 1 64 7: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 42 1 64 8: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 42 1 8 1: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 42 1 8 2: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 42 1 8 3: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 42 1 8 4: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 42 1 8 7: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 42 1 8 8: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 42 8 128 1: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 42 8 128 2: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 42 8 128 3: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 42 8 128 4: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 42 8 128 7: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 42 8 128 8: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 42 8 64 1: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 42 8 64 2: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 42 8 64 3: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 42 8 64 4: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 42 8 64 7: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 42 8 64 8: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 42 8 8 1: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 42 8 8 2: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 42 8 8 3: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 42 8 8 4: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 42 8 8 7: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 32 42 8 8 8: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 1 1 128 1: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 1 1 128 2: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 1 1 128 3: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 1 1 128 4: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 1 1 128 7: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 1 1 128 8: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 1 1 64 1: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 1 1 64 2: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 1 1 64 3: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 1 1 64 4: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 1 1 64 7: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 1 1 64 8: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 1 1 8 1: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 1 1 8 2: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 1 1 8 3: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 1 1 8 4: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 1 1 8 7: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 1 1 8 8: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 1 8 128 1: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 1 8 128 2: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 1 8 128 3: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 1 8 128 4: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 1 8 128 7: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 1 8 128 8: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 1 8 64 1: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 1 8 64 2: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 1 8 64 3: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 1 8 64 4: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 1 8 64 7: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 1 8 64 8: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 1 8 8 1: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 1 8 8 2: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 1 8 8 3: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 1 8 8 4: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 1 8 8 7: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 1 8 8 8: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 1 128 1: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 1 128 2: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 1 128 3: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 1 128 4: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 1 128 7: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 1 128 8: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 1 64 1: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 1 64 2: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 1 64 3: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 1 64 4: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 1 64 7: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 1 64 8: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 1 8 1: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 1 8 2: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 1 8 3: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 1 8 4: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 1 8 7: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 1 8 8: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 8 128 1: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 8 128 2: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 8 128 3: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 8 128 4: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 8 128 7: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 8 128 8: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 8 64 1: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 8 64 2: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 8 64 3: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 8 64 4: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 8 64 7: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 8 64 8: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 8 8 1: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 8 8 2: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 8 8 3: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 8 8 4: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 8 8 7: skip
-spec/arb_texture_barrier/arb_texture_barrier-blending-in-shader 512 42 8 8 8: skip
 spec/arb_texture_buffer_object/indexed: skip
 spec/arb_texture_buffer_object/negative-unsupported: skip
 spec/arb_texture_compression_bptc/bptc-float-modes: fail
@@ -1982,8 +1838,6 @@ spec/nv_fragment_program_option/fp-condition_codes-01: skip
 spec/nv_fragment_program_option/fp-rfl: skip
 spec/nv_fragment_program_option/fp-set-02: skip
 spec/nv_fragment_program_option/fp-unpack-01: skip
-spec/nv_texture_barrier/arb_texture_barrier-texture-halves-ping-pong-operation-chain: skip
-spec/nv_texture_barrier/blending-in-shader: skip
 spec/nv_vertex_program2_option/vp-address-03: skip
 spec/nv_vertex_program2_option/vp-address-05: skip
 spec/nv_vertex_program2_option/vp-address-06: skip
@@ -2081,10 +1935,10 @@ wgl/wgl-sanity: skip
 summary:
        name:  results
        ----  --------
-       pass:    19539
+       pass:    19685
        fail:      246
       crash:        0
-       skip:     1814
+       skip:     1668
     timeout:        0
        warn:        2
  incomplete:        0
diff --git a/docs/features.txt b/docs/features.txt
index 62533858d9d..1d65b69117a 100644
--- a/docs/features.txt
+++ b/docs/features.txt
@@ -220,7 +220,7 @@ GL 4.5, GLSL 4.50 -- all DONE: nvc0, r600, radeonsi
   GL_ARB_direct_state_access                            DONE (all drivers)
   GL_ARB_get_texture_sub_image                          DONE (all drivers)
   GL_ARB_shader_texture_image_samples                   DONE (i965, nv50, virgl)
-  GL_ARB_texture_barrier                                DONE (freedreno, i965, nv50, virgl)
+  GL_ARB_texture_barrier                                DONE (freedreno, i965, nv50, llvmpipe, virgl)
   GL_KHR_context_flush_control                          DONE (all - but needs GLX/EGL extension to be useful)
   GL_KHR_robustness                                     DONE (freedreno, i965, virgl)
   GL_EXT_shader_integer_mix                             DONE (all drivers that support GLSL)
diff --git a/src/gallium/drivers/llvmpipe/lp_context.c b/src/gallium/drivers/llvmpipe/lp_context.c
index 66d72b947e1..f11d5207a7a 100644
--- a/src/gallium/drivers/llvmpipe/lp_context.c
+++ b/src/gallium/drivers/llvmpipe/lp_context.c
@@ -131,6 +131,12 @@ llvmpipe_render_condition(struct pipe_context *pipe,
    llvmpipe->render_cond_cond = condition;
 }
 
+static void
+llvmpipe_texture_barrier(struct pipe_context *pipe, unsigned flags)
+{
+   llvmpipe_flush(pipe, NULL, __FUNCTION__);
+}
+
 struct pipe_context *
 llvmpipe_create_context(struct pipe_screen *screen, void *priv,
                         unsigned flags)
@@ -159,6 +165,7 @@ llvmpipe_create_context(struct pipe_screen *screen, void *priv,
    llvmpipe->pipe.set_framebuffer_state = llvmpipe_set_framebuffer_state;
    llvmpipe->pipe.clear = llvmpipe_clear;
    llvmpipe->pipe.flush = do_flush;
+   llvmpipe->pipe.texture_barrier = llvmpipe_texture_barrier;
 
    llvmpipe->pipe.render_condition = llvmpipe_render_condition;
 
diff --git a/src/gallium/drivers/llvmpipe/lp_screen.c b/src/gallium/drivers/llvmpipe/lp_screen.c
index d6ba3e32852..072702bb623 100644
--- a/src/gallium/drivers/llvmpipe/lp_screen.c
+++ b/src/gallium/drivers/llvmpipe/lp_screen.c
@@ -194,9 +194,8 @@ llvmpipe_get_param(struct pipe_screen *screen, enum pipe_cap param)
    case PIPE_CAP_MAX_TEXEL_OFFSET:
       return 31;
    case PIPE_CAP_CONDITIONAL_RENDER:
-      return 1;
    case PIPE_CAP_TEXTURE_BARRIER:
-      return 0;
+      return 1;
    case PIPE_CAP_MAX_STREAM_OUTPUT_SEPARATE_COMPONENTS:
    case PIPE_CAP_MAX_STREAM_OUTPUT_INTERLEAVED_COMPONENTS:
       return 16*4;



More information about the mesa-commit mailing list