I've managed to capture a trace that loads TF2 to the menu and reproduces some of the flickering. I haven't managed to capture any gameplay yet due to an error in CD Key authentication due to how I'm launching the game.
URL: http://www.watrys.net/tf2_menu.trace.xz --Aaron On Wed, Feb 20, 2013 at 1:33 PM, Marek Olšák <mar...@gmail.com> wrote: > Well, I really wonder why it doesn't work with TF2. We have a lot of > piglit tests for DISCARD_RANGE (AKA INVALIDATE_RANGE in GL) and the > copy-buffer functionality and they all pass. There are actually 3 > different implementations of copy-buffer: streamout, CP DMA, and async > DMA. It's highly unlikely that all 3 would be broken in the same way. > Other apps like openra also draw their GUI while using DISCARD_RANGE > to discard old data and there is no issue. > > I need an apitrace to debug this. I wouldn't like to disable > DISCARD_RANGE just because of TF2, because everything else seems to be > working without any issues and because the performance regression can > turn out to be a show-stopper for some other apps. > > Marek > > On Sun, Feb 17, 2013 at 6:25 PM, Andreas Boll > <andreas.boll....@gmail.com> wrote: > > This reverts commit 1eedebc65b02130ef7a27062a1ed67972a317a08. > > > > Until we have a proper fix disable DISCARD_RANGE for now. > > It fixes the garbled ui in TF2. > > > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=58042 > > > > Cc: Marek Olšák <mar...@gmail.com> > > --- > > src/gallium/drivers/r600/r600_buffer.c | 2 ++ > > 1 file changed, 2 insertions(+) > > > > diff --git a/src/gallium/drivers/r600/r600_buffer.c > b/src/gallium/drivers/r600/r600_buffer.c > > index 6df0d91..82630af 100644 > > --- a/src/gallium/drivers/r600/r600_buffer.c > > +++ b/src/gallium/drivers/r600/r600_buffer.c > > @@ -137,6 +137,7 @@ static void *r600_buffer_transfer_map(struct > pipe_context *ctx, > > r600_set_constants_dirty_if_bound(rctx, rbuffer); > > } > > } > > +#if 0 /* this is broken (see Bug 53130) */ > > else if ((usage & PIPE_TRANSFER_DISCARD_RANGE) && > > !(usage & PIPE_TRANSFER_UNSYNCHRONIZED) && > > rctx->screen->has_streamout && > > @@ -161,6 +162,7 @@ static void *r600_buffer_transfer_map(struct > pipe_context *ctx, > > } > > } > > } > > +#endif > > > > /* mmap and synchronize with rings */ > > data = r600_buffer_mmap_sync_with_rings(rctx, rbuffer, usage); > > -- > > 1.7.10.4 > > > _______________________________________________ > 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