<div dir="ltr">On 29 December 2012 04:35, Chris Forbes <span dir="ltr"><<a href="mailto:chrisf@ijw.co.nz" target="_blank">chrisf@ijw.co.nz</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
- Set the multisample mode<br>
- Set the surface dimensions correctly, in pixels.<br>
<br>
Signed-off-by: Chris Forbes <<a href="mailto:chrisf@ijw.co.nz">chrisf@ijw.co.nz</a>><br></blockquote><div><br></div><div>Surface_state is used for texturing as well as for render targets.  Can you clarify in the commit message that this patch applies just to surface_states used in texturing?  Surface_states used for render targets already handle multisampling correctly. <br>
</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
---<br>
 src/mesa/drivers/dri/i965/brw_wm_surface_state.c | 10 +++++++++-<br>
 1 file changed, 9 insertions(+), 1 deletion(-)<br>
<br>
diff --git a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c<br>
index 1c54d59..160bd3f 100644<br>
--- a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c<br>
+++ b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c<br>
@@ -814,6 +814,14 @@ brw_update_texture_surface(struct gl_context *ctx,<br>
<br>
    intel_miptree_get_dimensions_for_image(firstImage, &width, &height, &depth);<br>
<br>
+   if (tObj->Target == GL_TEXTURE_2D_MULTISAMPLE ||<br>
+         tObj->Target == GL_TEXTURE_2D_MULTISAMPLE_ARRAY) {<br>
+      /* surface_state wants pixel dimensions, not the 2x2 or 4x2 size<br>
+       * of the surface as stored in the miptree's levels array. */<br>
+      width = intelObj->mt->singlesample_width0;<br>
+      height = intelObj->mt->singlesample_height0;<br>
+   }<br>
+<br></blockquote><div><br></div><div>Hopefully this kludge can go away after I've fixed up the logical vs. physical size ambiguity I mentioned in my comments on patch 21/26.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

    surf = brw_state_batch(brw, AUB_TRACE_SURFACE_STATE,<br>
                          6 * 4, 32, &binding_table[surf_index]);<br>
<br>
@@ -837,7 +845,7 @@ brw_update_texture_surface(struct gl_context *ctx,<br>
              ((intelObj->mt->region->pitch * intelObj->mt->cpp) - 1) <<<br>
              BRW_SURFACE_PITCH_SHIFT);<br>
<br>
-   surf[4] = 0;<br>
+   surf[4] = brw_get_surface_num_multisamples(intelObj->mt->num_samples);<br>
<br>
    surf[5] = (mt->align_h == 4) ? BRW_SURFACE_VERTICAL_ALIGN_ENABLE : 0;<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
1.8.0.3<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></div></div>