<div dir="ltr"><div>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.<br>
<br>URL:<br><a href="http://www.watrys.net/tf2_menu.trace.xz">http://www.watrys.net/tf2_menu.trace.xz</a><br><br></div>--Aaron<br><div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Feb 20, 2013 at 1:33 PM, Marek Olšák <span dir="ltr"><<a href="mailto:maraeo@gmail.com" target="_blank">maraeo@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Well, I really wonder why it doesn't work with TF2. We have a lot of<br>
piglit tests for DISCARD_RANGE (AKA INVALIDATE_RANGE in GL) and the<br>
copy-buffer functionality and they all pass. There are actually 3<br>
different implementations of copy-buffer: streamout, CP DMA, and async<br>
DMA. It's highly unlikely that all 3 would be broken in the same way.<br>
Other apps like openra also draw their GUI while using DISCARD_RANGE<br>
to discard old data and there is no issue.<br>
<br>
I need an apitrace to debug this. I wouldn't like to disable<br>
DISCARD_RANGE just because of TF2, because everything else seems to be<br>
working without any issues and because the performance regression can<br>
turn out to be a show-stopper for some other apps.<br>
<span class=""><font color="#888888"><br>
Marek<br>
</font></span><div class=""><div class="h5"><br>
On Sun, Feb 17, 2013 at 6:25 PM, Andreas Boll<br>
<<a href="mailto:andreas.boll.dev@gmail.com">andreas.boll.dev@gmail.com</a>> wrote:<br>
> This reverts commit 1eedebc65b02130ef7a27062a1ed67972a317a08.<br>
><br>
> Until we have a proper fix disable DISCARD_RANGE for now.<br>
> It fixes the garbled ui in TF2.<br>
><br>
> Bugzilla: <a href="https://bugs.freedesktop.org/show_bug.cgi?id=58042" target="_blank">https://bugs.freedesktop.org/show_bug.cgi?id=58042</a><br>
><br>
> Cc: Marek Olšák <<a href="mailto:maraeo@gmail.com">maraeo@gmail.com</a>><br>
> ---<br>
>  src/gallium/drivers/r600/r600_buffer.c |    2 ++<br>
>  1 file changed, 2 insertions(+)<br>
><br>
> diff --git a/src/gallium/drivers/r600/r600_buffer.c b/src/gallium/drivers/r600/r600_buffer.c<br>
> index 6df0d91..82630af 100644<br>
> --- a/src/gallium/drivers/r600/r600_buffer.c<br>
> +++ b/src/gallium/drivers/r600/r600_buffer.c<br>
> @@ -137,6 +137,7 @@ static void *r600_buffer_transfer_map(struct pipe_context *ctx,<br>
>                         r600_set_constants_dirty_if_bound(rctx, rbuffer);<br>
>                 }<br>
>         }<br>
> +#if 0 /* this is broken (see Bug 53130) */<br>
>         else if ((usage & PIPE_TRANSFER_DISCARD_RANGE) &&<br>
>                  !(usage & PIPE_TRANSFER_UNSYNCHRONIZED) &&<br>
>                  rctx->screen->has_streamout &&<br>
> @@ -161,6 +162,7 @@ static void *r600_buffer_transfer_map(struct pipe_context *ctx,<br>
>                         }<br>
>                 }<br>
>         }<br>
> +#endif<br>
><br>
>         /* mmap and synchronize with rings */<br>
>         data = r600_buffer_mmap_sync_with_rings(rctx, rbuffer, usage);<br>
> --<br>
> 1.7.10.4<br>
><br>
_______________________________________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/mesa-dev" target="_blank">http://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
</div></div></blockquote></div><br></div></div></div>