<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Tue, Jan 8, 2019 at 1:11 PM Chris Wilson <<a href="mailto:chris@chris-wilson.co.uk" target="_blank">chris@chris-wilson.co.uk</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">Quoting Lionel Landwerlin (2019-01-08 11:03:26)<br>
> Hi Andrii,<br>
> <br>
> Although I think what these patches do makes sense, I think it's missing <br>
> the bigger picture.<br>
> There is a lot more state that gets lost if we have to revert all of the <br>
> emitted commands.<br>
> A quick look at brw_upload_pipeline_state() shows all of the programs <br>
> could be invalid as well, or the number of samples, etc...<br>
> <br>
> To me it seems like we need a much larger state save/restore.<br>
> <br>
> Ken: what do you think?<br>
<br>
How about not rolling back? If we accept it as currently broken, and just<br>
demand the kernel provide logical contexts for all i965 devices (just ack<br>
some patches!), and then just flush the batch (possibly with a dummy 3D<br>
prim if you want to be sure the 3D state is loaded) and rely on the<br>
context preserving state across batches.<br>
-Chris<br></blockquote><div><br></div><div><div dir="ltr">Could you please provide a link to the patches you talking about?</div><div dir="ltr"><br></div><div dir="ltr">At the moment as far as I understood the rollback system<br>helps to reduce quantity of the flush operations in some lucky cases.<br>When there isn't enough space for a batch aperture,</div><div dir="ltr">we will rollback the batch to the saved state,<br></div><div dir="ltr"> when limit (means aperture_threshold) wasn't reached by it.<br><div dir="ltr"><br>pseudo code (simple variant, without error handling):<br>   save batch state here;<br>   do <br>   {<br>       add primitives to the batch;<br>       if the batch size limit is exceeded  <br>       {<br>           rollback to the saved batch state;<br>           flush the batch;<br>       }<br>       else<br>       {<br>           break;<br>       }<br>   } while(true);</div><div dir="ltr"><br></div>Are you suggesting to flush the batch every time without waiting for a nearly full filling of it?</div><div>Like this:</div><div>   add primitives to batch;<br>   flush batch;</div><div><br></div><div dir="ltr">Please correct me if I am wrong.</div><div dir="ltr"><br></div><div>-Andrii<br></div></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
_______________________________________________<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><br>
</blockquote></div>
</div></div></div></div></div></div></div></div></div></div>