<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">Cool, thanks!<br>
      <br>
      Reviewed-by: Lionel Landwerlin
      <a class="moz-txt-link-rfc2396E" href="mailto:lionel.g.landwerlin@intel.com"><lionel.g.landwerlin@intel.com></a><br>
      <br>
      On 18/05/17 22:10, Jason Ekstrand wrote:<br>
    </div>
    <blockquote
cite="mid:CAOFGe95CjHOcADdHcohEShY8B2+xCD62DXkYtDuQo7-tHVKvig@mail.gmail.com"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <div dir="ltr">I just sent a patch to address that.  Thanks!<br>
      </div>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">On Thu, May 18, 2017 at 2:04 PM, Lionel
          Landwerlin <span dir="ltr"><<a moz-do-not-send="true"
              href="mailto:lionel.g.landwerlin@intel.com"
              target="_blank">lionel.g.landwerlin@intel.com</a>></span>
          wrote:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">This looks
            good, but I wonder whether we're missing a vk_errorf() in
            anv_QueueSubmit() when we get an error from
            anv_cmd_buffer_execbuf().<br>
            In that case it looks like we won't abort.
            <div class="HOEnZb">
              <div class="h5"><br>
                <br>
                On 18/05/17 21:51, Jason Ekstrand wrote:<br>
                <blockquote class="gmail_quote" style="margin:0 0 0
                  .8ex;border-left:1px #ccc solid;padding-left:1ex">
                  This is mostly for running in our CI system to prevent
                  dEQP from<br>
                  continuing on to the next test if we get a GPU hang. 
                  As it currently<br>
                  stands, dEQP uses the same VkDevice for almost all
                  tests and if one of<br>
                  the tests hangs, we set the anv_device::device_lost
                  flag and report<br>
                  VK_ERROR_DEVICE_LOST for all queue operations from
                  that point forward<br>
                  without sending anything to the GPU.  dEQP will
                  happily continue trying<br>
                  to run tests and reporting failures until it
                  eventually gets crash that<br>
                  forces the test runner to start over.  This
                  circumvents the problem by<br>
                  just aborting the process if we ever get a GPU hang. 
                  Since this is not<br>
                  the recommended behavior most of the time, we hide it
                  behind an<br>
                  environment variable.<br>
                  <br>
                  Cc: Mark Janes <<a moz-do-not-send="true"
                    href="mailto:mark.a.janes@intel.com" target="_blank">mark.a.janes@intel.com</a>><br>
                  ---<br>
                    src/intel/vulkan/anv_util.c | 5 +++++<br>
                    1 file changed, 5 insertions(+)<br>
                  <br>
                  diff --git a/src/intel/vulkan/anv_util.c
                  b/src/intel/vulkan/anv_util.c<br>
                  index ba91733..4b916e2 100644<br>
                  --- a/src/intel/vulkan/anv_util.c<br>
                  +++ b/src/intel/vulkan/anv_util.c<br>
                  @@ -30,6 +30,7 @@<br>
                      #include "anv_private.h"<br>
                    #include "vk_enum_to_str.h"<br>
                  +#include "util/debug.h"<br>
                      /** Log an error message.  */<br>
                    void anv_printflike(1, 2)<br>
                  @@ -95,5 +96,9 @@ __vk_errorf(VkResult error, const
                  char *file, int line, const char *format, ...)<br>
                          fprintf(stderr, "%s:%d: %s\n", file, line,
                  error_str);<br>
                       }<br>
                    +   if (error == VK_ERROR_DEVICE_LOST &&<br>
                  +       env_var_as_boolean("ANV_<wbr>ABORT_ON_DEVICE_LOSS",
                  false))<br>
                  +      abort();<br>
                  +<br>
                       return error;<br>
                    }<br>
                </blockquote>
                <br>
                <br>
              </div>
            </div>
          </blockquote>
        </div>
        <br>
      </div>
    </blockquote>
    <p><br>
    </p>
  </body>
</html>