On 14 August 2012 16:58, Chad Versace <span dir="ltr"><<a href="mailto:chad.versace@linux.intel.com" target="_blank">chad.versace@linux.intel.com</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Do all pre-draw hiz resolves *after* the renderbuffers are resized by<br>
intel_prepare_render. Otherwise, we may resolve buffers that are<br>
immediately discarded afterwards.<br>
<br>
Fixes the assertion failure below when resizing windows in KDE and under<br>
some unknown circumstance in Chrome OS:<br>
    intel_resolve_map.c:46: intel_resolve_map_set: Assertion<br>
    `(*tail)->need == need' failed.<br>
<br>
Also, remove the comment that "resolves must occur [...] before setting up<br>
any hardware state". That was true when resolves were implemented with<br>
meta-ops, but no longer with blorp.<br></blockquote><div><br>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.<br>
<br>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.<br><br>Assuming the comment is fixed (or you can explain to me why I'm wrong), this patch is:<br>
<br>Reviewed-by: Paul Berry <<a href="mailto:stereotype441@gmail.com">stereotype441@gmail.com</a>> <br> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
CC: Stephane Marchesin <<a href="mailto:marcheu@chromium.org">marcheu@chromium.org</a>><br>
Bugzilla: <a href="https://bugs.freedesktop.org/show_bug.cgi?id=52252" target="_blank">https://bugs.freedesktop.org/show_bug.cgi?id=52252</a><br>
Reported-by: Lu Hua <<a href="mailto:huax.lu@intel.com">huax.lu@intel.com</a>><br>
Signed-off-by: Chad Versace <<a href="mailto:chad.versace@linux.intel.com">chad.versace@linux.intel.com</a>><br>
---<br>
 src/mesa/drivers/dri/i965/brw_draw.c | 10 +++++-----<br>
 1 file changed, 5 insertions(+), 5 deletions(-)<br>
<br>
diff --git a/src/mesa/drivers/dri/i965/brw_draw.c b/src/mesa/drivers/dri/i965/brw_draw.c<br>
index ccfc306..0b1a4e0 100644<br>
--- a/src/mesa/drivers/dri/i965/brw_draw.c<br>
+++ b/src/mesa/drivers/dri/i965/brw_draw.c<br>
@@ -433,11 +433,6 @@ static bool brw_try_draw_prims( struct gl_context *ctx,<br>
     */<br>
    brw_validate_textures( brw );<br>
<br>
-   /* Resolves must occur after updating state and finalizing textures but<br>
-    * before setting up any hardware state for this draw call.<br>
-    */<br>
-   brw_predraw_resolve_buffers(brw);<br>
-<br>
    /* Bind all inputs, derive varying and size information:<br>
     */<br>
    brw_merge_inputs( brw, arrays );<br>
@@ -458,6 +453,11 @@ static bool brw_try_draw_prims( struct gl_context *ctx,<br>
<br>
    intel_prepare_render(intel);<br>
<br>
+   /* Resolves must occur after updating state, resizing renderbuffers,<br>
+    * and finalizing textures.<br>
+    */<br>
+   brw_predraw_resolve_buffers(brw);<br>
+<br>
    for (i = 0; i < nr_prims; i++) {<br>
       int estimated_max_prim_size;<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
1.7.11.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>
</font></span></blockquote></div><br>