On 14 August 2012 16:58, Chad Versace <[email protected]> wrote:
> Do all pre-draw hiz resolves *after* the renderbuffers are resized by > intel_prepare_render. Otherwise, we may resolve buffers that are > immediately discarded afterwards. > > Fixes the assertion failure below when resizing windows in KDE and under > some unknown circumstance in Chrome OS: > intel_resolve_map.c:46: intel_resolve_map_set: Assertion > `(*tail)->need == need' failed. > > Also, remove the comment that "resolves must occur [...] before setting up > any hardware state". That was true when resolves were implemented with > meta-ops, but no longer with blorp. > Does "before setting up any hardware state" mean "before issuing any commands to the batch buffer"? If so then I think this is still necessary, since blorp issues a bunch of commands to the batch buffer that change the hardware state. But it looks like this with this patch, we are still doing resolves before setting up any hardware state, so I think we're ok. Assuming the comment is fixed (or you can explain to me why I'm wrong), this patch is: Reviewed-by: Paul Berry <[email protected]> > > CC: Stephane Marchesin <[email protected]> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=52252 > Reported-by: Lu Hua <[email protected]> > Signed-off-by: Chad Versace <[email protected]> > --- > src/mesa/drivers/dri/i965/brw_draw.c | 10 +++++----- > 1 file changed, 5 insertions(+), 5 deletions(-) > > diff --git a/src/mesa/drivers/dri/i965/brw_draw.c > b/src/mesa/drivers/dri/i965/brw_draw.c > index ccfc306..0b1a4e0 100644 > --- a/src/mesa/drivers/dri/i965/brw_draw.c > +++ b/src/mesa/drivers/dri/i965/brw_draw.c > @@ -433,11 +433,6 @@ static bool brw_try_draw_prims( struct gl_context > *ctx, > */ > brw_validate_textures( brw ); > > - /* Resolves must occur after updating state and finalizing textures but > - * before setting up any hardware state for this draw call. > - */ > - brw_predraw_resolve_buffers(brw); > - > /* Bind all inputs, derive varying and size information: > */ > brw_merge_inputs( brw, arrays ); > @@ -458,6 +453,11 @@ static bool brw_try_draw_prims( struct gl_context > *ctx, > > intel_prepare_render(intel); > > + /* Resolves must occur after updating state, resizing renderbuffers, > + * and finalizing textures. > + */ > + brw_predraw_resolve_buffers(brw); > + > for (i = 0; i < nr_prims; i++) { > int estimated_max_prim_size; > > -- > 1.7.11.4 > > _______________________________________________ > mesa-dev mailing list > [email protected] > http://lists.freedesktop.org/mailman/listinfo/mesa-dev >
_______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
