<div dir="ltr"><div>Consider this sequence of calls:</div><div>1) Enable rasterizer discard</div><div>2) Update the framebuffer  (skipped by your patch)<br></div><div>3) Draw</div><div>4) Disable rasterizer discard</div><div>5) Draw (not using the correct framebuffer)<br></div><div><br></div><div>Marek<br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Apr 10, 2019 at 2:10 AM Dave Airlie <<a href="mailto:airlied@gmail.com">airlied@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">From: Dave Airlie <<a href="mailto:airlied@redhat.com" target="_blank">airlied@redhat.com</a>><br>
<br>
This avoid softpipe trying to get image when no window has ever<br>
been exposed, and no image will be exposed.<br>
<br>
I'm not entirely sure this is correct or useful, but it definitely<br>
helps with some softpipe get images when we haven't got a window.<br>
---<br>
 src/mesa/state_tracker/st_atom.c | 3 +++<br>
 1 file changed, 3 insertions(+)<br>
<br>
diff --git a/src/mesa/state_tracker/st_atom.c b/src/mesa/state_tracker/st_atom.c<br>
index 49f79ad9d49..3aeb526e56b 100644<br>
--- a/src/mesa/state_tracker/st_atom.c<br>
+++ b/src/mesa/state_tracker/st_atom.c<br>
@@ -246,6 +246,9 @@ void st_validate_state( struct st_context *st, enum st_pipeline pipeline )<br>
       unreachable("Invalid pipeline specified");<br>
    }<br>
<br>
+   if (ctx->RasterDiscard)<br>
+      st->dirty &= ~ST_NEW_FB_STATE;<br>
+<br>
    dirty = st->dirty & pipeline_mask;<br>
    if (!dirty)<br>
       return;<br>
-- <br>
2.20.1<br>
<br>
_______________________________________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org" target="_blank">mesa-dev@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/mesa-dev</a></blockquote></div>