etnaviv: enable TS also on sampler resources
authorLucas Stach <l.stach@pengutronix.de>
Mon, 21 Nov 2016 11:29:04 +0000 (12:29 +0100)
committerLucas Stach <l.stach@pengutronix.de>
Tue, 11 Apr 2017 14:52:27 +0000 (16:52 +0200)
Fixes a performance issue with imported winsys buffers as those are
marked with binding sampler view.

This might require a TS flush on single pipe chips that directly
sample from the rendered buffer, but otherwise seems to work fine.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Wladimir J. van der Laan <laanwj@gmail.com>
src/gallium/drivers/etnaviv/etnaviv_surface.c

index db4846aa060de98f2b93a1a3678a8d588c269861..7ac2862e12d932ec6eda174d911b46b0f0cc1406 100644 (file)
@@ -64,12 +64,9 @@ etna_create_surface(struct pipe_context *pctx, struct pipe_resource *prsc,
     * indicate the tile status module bypasses the memory
     * offset and MMU. */
 
-   /* XXX for now, don't do TS for render textures as this path
-    * is not stable. */
    if (VIV_FEATURE(ctx->screen, chipFeatures, FAST_CLEAR) &&
        VIV_FEATURE(ctx->screen, chipMinorFeatures0, MC20) &&
        !DBG_ENABLED(ETNA_DBG_NO_TS) && !rsc->ts_bo &&
-       !(rsc->base.bind & (PIPE_BIND_SAMPLER_VIEW)) &&
        (rsc->levels[level].padded_width & ETNA_RS_WIDTH_MASK) == 0 &&
        (rsc->levels[level].padded_height & ETNA_RS_HEIGHT_MASK) == 0) {
       etna_screen_resource_alloc_ts(pctx->screen, rsc);