From: Dave Airlie Date: Thu, 26 Mar 2020 02:06:34 +0000 (+1000) Subject: llvmpipe: simple texture barrier implementation. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=99fce3a6d71ee9970183b3545a4fbb8234b7fa35;p=mesa.git llvmpipe: simple texture barrier implementation. Just flush. Reviewed-by: Roland Scheidegger Part-of: --- 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;