<div dir="ltr"><div dir="ltr"><div dir="ltr"><div>Hello,</div><div><br></div>Good news, thanks :-)<br>One more thanks for clarification about Intel CI workflow.<br><div><br></div><div>Thanks,</div><div>Andrii.</div><br><div class="gmail_quote"><div dir="ltr">On Mon, Nov 5, 2018 at 6:31 PM Mark Janes <<a href="mailto:mark.a.janes@intel.com">mark.a.janes@intel.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">andrey simiklit <<a href="mailto:asimiklit.work@gmail.com" target="_blank">asimiklit.work@gmail.com</a>> writes:<br>
<br>
> Hello,<br>
><br>
> I tested this patch few times and have the following results:<br>
> <a href="https://mesa-ci.01.org/global_logic/builds/38/group/63a9f0ea7bb98050796b649e85481845" rel="noreferrer" target="_blank">https://mesa-ci.01.org/global_logic/builds/38/group/63a9f0ea7bb98050796b649e85481845</a><br>
> <a href="https://mesa-ci.01.org/global_logic/builds/41/group/63a9f0ea7bb98050796b649e85481845" rel="noreferrer" target="_blank">https://mesa-ci.01.org/global_logic/builds/41/group/63a9f0ea7bb98050796b649e85481845</a><br>
> <a href="https://mesa-ci.01.org/global_logic/builds/43/group/63a9f0ea7bb98050796b649e85481845" rel="noreferrer" target="_blank">https://mesa-ci.01.org/global_logic/builds/43/group/63a9f0ea7bb98050796b649e85481845</a><br>
><br>
> All test runs are finished with the following issue on G965:<br>
><br>
> <a href="https://mesa-ci.01.org/global_logic/builds/38/results/46496330" rel="noreferrer" target="_blank">https://mesa-ci.01.org/global_logic/builds/38/results/46496330</a><br>
> ext_framebuffer_multisample-accuracy all_samples srgb small depthstencil<br>
> linear -auto -fbo<br>
> ....<br>
> ERROR: This test passed when it expected failure<br>
<br>
If you test the exact same revision twice in i965 CI, it will simply<br>
publish the results from the previous run.  Often, a single machine<br>
fails in a run, and we send the build a second time to re-test only that<br>
machine (all other results are re-used for faster results).  We re-use<br>
results based the commits of the source projects.<br>
<br>
Instead of alternating two commits through the CI, you should trivially<br>
amend the commit message of the patch you want to test, so it gets a<br>
different sha.  This will cause a complete re-test of the patch.<br>
<br>
For this test, it may be that you are looking at an intermittent result.<br>
However, it is never a problem to unexpectedly fix a test.<br>
<br>
> Note: Also I checked latest mesa master few times and there was no<br>
> regression:<br>
><br>
> <a href="https://mesa-ci.01.org/global_logic/builds/42/group/63a9f0ea7bb98050796b649e85481845" rel="noreferrer" target="_blank">https://mesa-ci.01.org/global_logic/builds/42/group/63a9f0ea7bb98050796b649e85481845</a><br>
><br>
> Regards,<br>
> Andrii.<br>
><br>
> On Mon, Nov 5, 2018 at 9:48 AM <<a href="mailto:asimiklit.work@gmail.com" target="_blank">asimiklit.work@gmail.com</a>> wrote:<br>
><br>
>> From: Andrii Simiklit <<a href="mailto:andrii.simiklit@globallogic.com" target="_blank">andrii.simiklit@globallogic.com</a>><br>
>><br>
>> There's no point reverting to the last saved point if that save point is<br>
>> the empty batch, we will just repeat ourselves.<br>
>><br>
>> v2: Merge with new commits, changes was minimized, added the 'fixes' tag<br>
>> v3: Added in to patch series<br>
>> v4: Fixed the regression which was introduced by this patch<br>
>>     Bugzilla: <a href="https://bugs.freedesktop.org/show_bug.cgi?id=108630" rel="noreferrer" target="_blank">https://bugs.freedesktop.org/show_bug.cgi?id=108630</a><br>
>>     Reported-by:  Mark Janes <<a href="mailto:mark.a.janes@intel.com" target="_blank">mark.a.janes@intel.com</a>><br>
>>     The solution provided by: Jordan Justen <<a href="mailto:jordan.l.justen@intel.com" target="_blank">jordan.l.justen@intel.com</a>><br>
>><br>
>> CC: Chris Wilson <<a href="mailto:chris@chris-wilson.co.uk" target="_blank">chris@chris-wilson.co.uk</a>><br>
>> Fixes: 3faf56ffbdeb "intel: Add an interface for saving/restoring<br>
>>                      the batchbuffer state."<br>
>> Bugzilla: <a href="https://bugs.freedesktop.org/show_bug.cgi?id=107626" rel="noreferrer" target="_blank">https://bugs.freedesktop.org/show_bug.cgi?id=107626</a><br>
>> Signed-off-by: Andrii Simiklit <<a href="mailto:andrii.simiklit@globallogic.com" target="_blank">andrii.simiklit@globallogic.com</a>><br>
>> ---<br>
>>  src/mesa/drivers/dri/i965/brw_compute.c       | 3 ++-<br>
>>  src/mesa/drivers/dri/i965/brw_draw.c          | 3 ++-<br>
>>  src/mesa/drivers/dri/i965/genX_blorp_exec.c   | 1 +<br>
>>  src/mesa/drivers/dri/i965/intel_batchbuffer.c | 7 +++++++<br>
>>  src/mesa/drivers/dri/i965/intel_batchbuffer.h | 1 +<br>
>>  5 files changed, 13 insertions(+), 2 deletions(-)<br>
>><br>
>> diff --git a/src/mesa/drivers/dri/i965/brw_compute.c<br>
>> b/src/mesa/drivers/dri/i965/brw_compute.c<br>
>> index de08fc3ac1..5c8e3a5d4d 100644<br>
>> --- a/src/mesa/drivers/dri/i965/brw_compute.c<br>
>> +++ b/src/mesa/drivers/dri/i965/brw_compute.c<br>
>> @@ -167,7 +167,7 @@ static void<br>
>>  brw_dispatch_compute_common(struct gl_context *ctx)<br>
>>  {<br>
>>     struct brw_context *brw = brw_context(ctx);<br>
>> -   bool fail_next = false;<br>
>> +   bool fail_next;<br>
>><br>
>>     if (!_mesa_check_conditional_render(ctx))<br>
>>        return;<br>
>> @@ -185,6 +185,7 @@ brw_dispatch_compute_common(struct gl_context *ctx)<br>
>>     intel_batchbuffer_require_space(brw, 600);<br>
>>     brw_require_statebuffer_space(brw, 2500);<br>
>>     intel_batchbuffer_save_state(brw);<br>
>> +   fail_next = intel_batchbuffer_saved_state_is_empty(brw);<br>
>><br>
>>   retry:<br>
>>     brw->batch.no_wrap = true;<br>
>> diff --git a/src/mesa/drivers/dri/i965/brw_draw.c<br>
>> b/src/mesa/drivers/dri/i965/brw_draw.c<br>
>> index 8536c04010..19ee3962d7 100644<br>
>> --- a/src/mesa/drivers/dri/i965/brw_draw.c<br>
>> +++ b/src/mesa/drivers/dri/i965/brw_draw.c<br>
>> @@ -885,7 +885,7 @@ brw_draw_single_prim(struct gl_context *ctx,<br>
>>  {<br>
>>     struct brw_context *brw = brw_context(ctx);<br>
>>     const struct gen_device_info *devinfo = &brw->screen->devinfo;<br>
>> -   bool fail_next = false;<br>
>> +   bool fail_next;<br>
>><br>
>>     /* Flag BRW_NEW_DRAW_CALL on every draw.  This allows us to have<br>
>>      * atoms that happen on every draw call.<br>
>> @@ -898,6 +898,7 @@ brw_draw_single_prim(struct gl_context *ctx,<br>
>>     intel_batchbuffer_require_space(brw, 1500);<br>
>>     brw_require_statebuffer_space(brw, 2400);<br>
>>     intel_batchbuffer_save_state(brw);<br>
>> +   fail_next = intel_batchbuffer_saved_state_is_empty(brw);<br>
>><br>
>>     if (brw->num_instances != prim->num_instances ||<br>
>>         brw->basevertex != prim->basevertex ||<br>
>> diff --git a/src/mesa/drivers/dri/i965/genX_blorp_exec.c<br>
>> b/src/mesa/drivers/dri/i965/genX_blorp_exec.c<br>
>> index 34bfcad03e..a62b88e166 100644<br>
>> --- a/src/mesa/drivers/dri/i965/genX_blorp_exec.c<br>
>> +++ b/src/mesa/drivers/dri/i965/genX_blorp_exec.c<br>
>> @@ -309,6 +309,7 @@ retry:<br>
>>     intel_batchbuffer_require_space(brw, 1400);<br>
>>     brw_require_statebuffer_space(brw, 600);<br>
>>     intel_batchbuffer_save_state(brw);<br>
>> +   check_aperture_failed_once |=<br>
>> intel_batchbuffer_saved_state_is_empty(brw);<br>
>>     brw->batch.no_wrap = true;<br>
>><br>
>>  #if GEN_GEN == 6<br>
>> diff --git a/src/mesa/drivers/dri/i965/intel_batchbuffer.c<br>
>> b/src/mesa/drivers/dri/i965/intel_batchbuffer.c<br>
>> index 8b769eaf53..6207de5a06 100644<br>
>> --- a/src/mesa/drivers/dri/i965/intel_batchbuffer.c<br>
>> +++ b/src/mesa/drivers/dri/i965/intel_batchbuffer.c<br>
>> @@ -301,6 +301,13 @@ intel_batchbuffer_save_state(struct brw_context *brw)<br>
>>     brw->batch.saved.exec_count = brw->batch.exec_count;<br>
>>  }<br>
>><br>
>> +bool<br>
>> +intel_batchbuffer_saved_state_is_empty(struct brw_context *brw)<br>
>> +{<br>
>> +   struct intel_batchbuffer *batch = &brw->batch;<br>
>> +   return (batch->saved.map_next == batch->batch.map);<br>
>> +}<br>
>> +<br>
>>  void<br>
>>  intel_batchbuffer_reset_to_saved(struct brw_context *brw)<br>
>>  {<br>
>> diff --git a/src/mesa/drivers/dri/i965/intel_batchbuffer.h<br>
>> b/src/mesa/drivers/dri/i965/intel_batchbuffer.h<br>
>> index 0632142cd3..91720dad5b 100644<br>
>> --- a/src/mesa/drivers/dri/i965/intel_batchbuffer.h<br>
>> +++ b/src/mesa/drivers/dri/i965/intel_batchbuffer.h<br>
>> @@ -24,6 +24,7 @@ struct intel_batchbuffer;<br>
>>  void intel_batchbuffer_init(struct brw_context *brw);<br>
>>  void intel_batchbuffer_free(struct intel_batchbuffer *batch);<br>
>>  void intel_batchbuffer_save_state(struct brw_context *brw);<br>
>> +bool intel_batchbuffer_saved_state_is_empty(struct brw_context *brw);<br>
>>  void intel_batchbuffer_reset_to_saved(struct brw_context *brw);<br>
>>  void intel_batchbuffer_require_space(struct brw_context *brw, GLuint sz);<br>
>>  int _intel_batchbuffer_flush_fence(struct brw_context *brw,<br>
>> --<br>
>> 2.17.1<br>
>><br>
>><br>
</blockquote></div></div></div></div>