[Mesa-dev] [PATCH] Revert "i965: Call intel_prepare_render() from intel_update_state()"
Tapani Pälli
tapani.palli at intel.com
Thu Jul 20 07:58:20 UTC 2017
Works for Android-IA:
Tested-by: Tapani Pälli <tapani.palli at intel.com>
On 07/20/2017 09:00 AM, Kenneth Graunke wrote:
> This reverts commit b7153c3e9f9d2d430b0338313587a00e531e4800.
>
> The point of that commit was to ensure intel_prepare_render() occurred
> before color resolves on the current framebuffer. In 0673bbfd9ba16be8
> (i965: Move surface resolves back to draw/dispatch time), Jason moved
> brw_predraw_resolve_framebuffer back to draw time, which is already
> after a intel_prepare_render() call. So, this is no longer necessary.
>
> Furthermore, it caused problems. "mpv" would only display a small
> corner of movies, and Android started failing camera CTS tests.
>
> This is because intel_prepare_render() ended up handling DRI2 events
> which caused the drawable to be resized at an inopportune time, flagging
> ctx->NewState |= _NEW_BUFFERS, but at a point where we've already copied
> ctx->NewState, and failed to notice the newly set flag.
>
> The lack of _NEW_BUFFERS caused us to skip 3DSTATE_DRAWING_RECTANGLE,
> so the drawing ended up being clipped to an outdated framebuffer size.
>
> Just drop the hack and go back to handling this at the proper time.
>
> Thanks to Matti Hämäläinen (ccr) and Tomasz Figa (tfiga) for reporting
> these issues.
>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=101558
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=101704
> ---
> src/mesa/drivers/dri/i965/brw_context.c | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/i965/brw_context.c b/src/mesa/drivers/dri/i965/brw_context.c
> index bd26e2332c7..102d7223a93 100644
> --- a/src/mesa/drivers/dri/i965/brw_context.c
> +++ b/src/mesa/drivers/dri/i965/brw_context.c
> @@ -194,8 +194,6 @@ intel_update_state(struct gl_context * ctx)
> if (new_state & _NEW_POLYGON)
> brw->polygon_front_bit = _mesa_polygon_get_front_bit(ctx);
>
> - intel_prepare_render(brw);
> -
> if (new_state & _NEW_BUFFERS) {
> intel_update_framebuffer(ctx, ctx->DrawBuffer);
> if (ctx->DrawBuffer != ctx->ReadBuffer)
>
More information about the mesa-dev
mailing list