well, freedreno and vmware ddx still use XA.. they both could probably be ported to use glamor instead, but that hasn't been done yet..
At least for freedreno with upstream drm/kms driver, one can just use -modesetting ddx instead. But that doesn't work w/ android fbdev driver. I need to check again w/ a more recent -modesetting+glamor, but when I tried it a few months ago, there were some cases of rendering corruption (but I didn't have time to debug and see whether that was a freedreno issue or a glamor issue). I wouldn't recommend new users of XA at this point, but I don't think we are quite at the point where we can remove it. BR, -R On Fri, Jul 10, 2015 at 7:12 AM, Marek Olšák <mar...@gmail.com> wrote: > I wonder... do we still need XA considering that everybody can just > use glamor instead? > > Marek > > > On Wed, Jul 8, 2015 at 7:39 PM, Rob Clark <robdcl...@gmail.com> wrote: >> From: Rob Clark <robcl...@freedesktop.org> >> >> XA was never unref'ing last_fence in the various call paths to >> pipe->flush(). Add this to xa_context_flush() and update the other >> open-coded calls to pipe->flush() to use xa_context_flush() instead. >> >> This fixes a memory leak reported with xf86-video-freedreno. >> >> Reported-by: Nicolas Dechesne <nicolas.deche...@linaro.org> >> Cc: "10.5 10.6" <mesa-sta...@lists.freedesktop.org> >> Signed-off-by: Rob Clark <robcl...@freedesktop.org> >> --- >> src/gallium/state_trackers/xa/xa_context.c | 6 +++++- >> src/gallium/state_trackers/xa/xa_tracker.c | 2 +- >> src/gallium/state_trackers/xa/xa_yuv.c | 2 +- >> 3 files changed, 7 insertions(+), 3 deletions(-) >> >> diff --git a/src/gallium/state_trackers/xa/xa_context.c >> b/src/gallium/state_trackers/xa/xa_context.c >> index fd49c82..ebfb290 100644 >> --- a/src/gallium/state_trackers/xa/xa_context.c >> +++ b/src/gallium/state_trackers/xa/xa_context.c >> @@ -37,7 +37,11 @@ >> XA_EXPORT void >> xa_context_flush(struct xa_context *ctx) >> { >> - ctx->pipe->flush(ctx->pipe, &ctx->last_fence, 0); >> + if (ctx->last_fence) { >> + struct pipe_screen *screen = ctx->xa->screen; >> + screen->fence_reference(screen, &ctx->last_fence, NULL); >> + } >> + ctx->pipe->flush(ctx->pipe, &ctx->last_fence, 0); >> } >> >> XA_EXPORT struct xa_context * >> diff --git a/src/gallium/state_trackers/xa/xa_tracker.c >> b/src/gallium/state_trackers/xa/xa_tracker.c >> index a384c1c..1df1da7 100644 >> --- a/src/gallium/state_trackers/xa/xa_tracker.c >> +++ b/src/gallium/state_trackers/xa/xa_tracker.c >> @@ -464,7 +464,7 @@ xa_surface_redefine(struct xa_surface *srf, >> xa_min(save_height, template->height0), &src_box); >> pipe->resource_copy_region(pipe, texture, >> 0, 0, 0, 0, srf->tex, 0, &src_box); >> - pipe->flush(pipe, &xa->default_ctx->last_fence, 0); >> + xa_context_flush(xa->default_ctx); >> } >> >> pipe_resource_reference(&srf->tex, texture); >> diff --git a/src/gallium/state_trackers/xa/xa_yuv.c >> b/src/gallium/state_trackers/xa/xa_yuv.c >> index 1519639..97a1833 100644 >> --- a/src/gallium/state_trackers/xa/xa_yuv.c >> +++ b/src/gallium/state_trackers/xa/xa_yuv.c >> @@ -154,7 +154,7 @@ xa_yuv_planar_blit(struct xa_context *r, >> box++; >> } >> >> - r->pipe->flush(r->pipe, &r->last_fence, 0); >> + xa_context_flush(r); >> >> xa_ctx_sampler_views_destroy(r); >> xa_ctx_srf_destroy(r); >> -- >> 2.4.3 >> >> _______________________________________________ >> mesa-dev mailing list >> mesa-dev@lists.freedesktop.org >> http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev