diff --git a/docs/features.txt b/docs/features.txt index ecf781e1f3c..d978172afc3 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -220,7 +220,7 @@ GL 4.5, GLSL 4.50 -- all DONE: freedreno/a6xx, nvc0, r600, radeonsi, llvmpipe, v GL_ARB_direct_state_access DONE (all drivers) GL_ARB_get_texture_sub_image DONE (all drivers) GL_ARB_shader_texture_image_samples DONE (freedreno/a3xx+, nv50, crocus/gen7+) - GL_ARB_texture_barrier DONE (freedreno, nv50, vc4, lima, crocus) + GL_ARB_texture_barrier DONE (freedreno, nv50, v3d, vc4, lima, crocus) GL_KHR_context_flush_control DONE (all - but needs GLX/EGL extension to be useful) GL_KHR_robustness DONE (freedreno) GL_EXT_shader_integer_mix DONE (all drivers that support GLSL) diff --git a/src/broadcom/ci/broadcom-rpi4-fails.txt b/src/broadcom/ci/broadcom-rpi4-fails.txt index f9e6cd44497..c049f79d723 100644 --- a/src/broadcom/ci/broadcom-rpi4-fails.txt +++ b/src/broadcom/ci/broadcom-rpi4-fails.txt @@ -518,3 +518,77 @@ dEQP-VK.wsi.wayland.swapchain.simulate_oom.image_usage,Crash dEQP-VK.wsi.wayland.swapchain.simulate_oom.min_image_count,Crash dEQP-VK.wsi.wayland.swapchain.simulate_oom.pre_transform,Crash dEQP-VK.wsi.wayland.swapchain.simulate_oom.present_mode,Crash + +# RPI4 only supports 4RT, so this tests with 8RT will fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 32 1 8 128 1,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 32 1 8 128 2,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 32 1 8 128 3,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 32 1 8 128 4,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 32 1 8 128 7,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 32 1 8 128 8,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 32 1 8 64 1,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 32 1 8 64 2,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 32 1 8 64 3,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 32 1 8 64 4,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 32 1 8 64 7,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 32 1 8 64 8,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 32 1 8 8 1,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 32 1 8 8 2,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 32 1 8 8 3,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 32 1 8 8 4,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 32 1 8 8 7,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 32 1 8 8 8,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 32 42 8 128 1,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 32 42 8 128 2,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 32 42 8 128 3,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 32 42 8 128 4,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 32 42 8 128 7,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 32 42 8 128 8,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 32 42 8 64 1,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 32 42 8 64 2,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 32 42 8 64 3,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 32 42 8 64 4,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 32 42 8 64 7,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 32 42 8 64 8,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 32 42 8 8 1,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 32 42 8 8 2,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 32 42 8 8 3,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 32 42 8 8 4,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 32 42 8 8 7,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 32 42 8 8 8,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 512 1 8 128 1,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 512 1 8 128 2,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 512 1 8 128 3,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 512 1 8 128 4,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 512 1 8 128 7,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 512 1 8 128 8,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 512 1 8 64 1,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 512 1 8 64 2,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 512 1 8 64 3,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 512 1 8 64 4,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 512 1 8 64 7,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 512 1 8 64 8,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 512 1 8 8 1,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 512 1 8 8 2,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 512 1 8 8 3,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 512 1 8 8 4,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 512 1 8 8 7,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 512 1 8 8 8,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 512 42 8 128 1,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 512 42 8 128 2,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 512 42 8 128 3,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 512 42 8 128 4,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 512 42 8 128 7,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 512 42 8 128 8,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 512 42 8 64 1,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 512 42 8 64 2,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 512 42 8 64 3,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 512 42 8 64 4,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 512 42 8 64 7,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 512 42 8 64 8,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 512 42 8 8 1,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 512 42 8 8 2,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 512 42 8 8 3,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 512 42 8 8 4,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 512 42 8 8 7,Fail +spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader 512 42 8 8 8,Fail diff --git a/src/gallium/drivers/v3d/v3d_context.c b/src/gallium/drivers/v3d/v3d_context.c index 6c121567d72..47364abea01 100644 --- a/src/gallium/drivers/v3d/v3d_context.c +++ b/src/gallium/drivers/v3d/v3d_context.c @@ -81,6 +81,16 @@ v3d_pipe_flush(struct pipe_context *pctx, struct pipe_fence_handle **fence, } } +/* We can't flush the texture cache within rendering a tile, so we have to + * flush all rendering to the kernel so that the next job reading from the + * tile gets a flushed cache. + */ +static void +v3d_texture_barrier(struct pipe_context *pctx, unsigned int flags) +{ + v3d_flush(pctx); +} + static void v3d_memory_barrier(struct pipe_context *pctx, unsigned int flags) { @@ -379,6 +389,7 @@ v3d_context_create(struct pipe_screen *pscreen, void *priv, unsigned flags) pctx->set_debug_callback = u_default_set_debug_callback; pctx->invalidate_resource = v3d_invalidate_resource; pctx->get_sample_position = v3d_get_sample_position; + pctx->texture_barrier = v3d_texture_barrier; v3d_X(devinfo, draw_init)(pctx); v3d_X(devinfo, state_init)(pctx); diff --git a/src/gallium/drivers/v3d/v3d_screen.c b/src/gallium/drivers/v3d/v3d_screen.c index dfd5b4f3d12..95141cec6b1 100644 --- a/src/gallium/drivers/v3d/v3d_screen.c +++ b/src/gallium/drivers/v3d/v3d_screen.c @@ -151,6 +151,7 @@ v3d_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param) case PIPE_CAP_CONDITIONAL_RENDER_INVERTED: case PIPE_CAP_CUBE_MAP_ARRAY: case PIPE_CAP_NIR_COMPACT_ARRAYS: + case PIPE_CAP_TEXTURE_BARRIER: return 1; case PIPE_CAP_POLYGON_OFFSET_CLAMP: