<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    On 15/03/18 15:39, Jason Ekstrand wrote:<br>
    <blockquote type="cite"
cite="mid:CAOFGe94e5wkCXrWkWFHAs9aiavJ+bPQmNPm3qV7=WY901W0F6g@mail.gmail.com">
      <div dir="ltr">
        <div class="gmail_extra">
          <div class="gmail_quote">On Thu, Mar 15, 2018 at 1:12 AM,
            Alejandro Piñeiro <span dir="ltr"><<a
                href="mailto:apinheiro@igalia.com" target="_blank"
                moz-do-not-send="true">apinheiro@igalia.com</a>></span>
            wrote:<br>
            <blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <div text="#000000" bgcolor="#FFFFFF">
                <p>Hi,<br>
                </p>
                <span class="">
                  <div class="m_-4940576761448368096moz-cite-prefix">On
                    14/03/18 21:32, Jason Ekstrand wrote:<br>
                  </div>
                  <blockquote type="cite">
                    <div dir="ltr">
                      <div>
                        <div>
                          <div>
                            <div>All,<br>
                              <br>
                            </div>
                            Connor and I along with several others have
                            been discussing for a while changing the way
                            NIR dereferences work.  In particular,
                            adding a new nir_deref_instr type where the
                            first one in the chain takes a variable and
                            is followed by a series of instructions
                            which take another deref instruction and do
                            an array or structure dereference on it.<br>
                            <br>
                          </div>
                          Much of the motivation for this is some of the
                          upcoming SPIR-V stuff where we have more real
                          pointers and deref chains don't really work
                          anymore.  It will also allow for things such
                          as CSE of common derefs which could make
                          analysis easier.  This is similar to what LLVM
                          does and it's working very well for them.<br>
                          <br>
                        </div>
                        The reason for this e-mail is that this is going
                        to be a flag-day change.  We've been talking
                        about it for a while but this is going to be a
                        major and fairly painful change in the short
                        term so no one has actually done it.  It's time
                        we finally just suck it up and make it happen. 
                        While we will try to make the change as
                        incrementally and reviewably as possible but
                        there is a real limit as to what is possible
                        here.  My plan is to start cracking away at this
                        on Monday and hopefully have something working
                        for i965/anv by the end of the week or maybe
                        some time the week after.  If anyone has
                        something to say in opposition, please speak up
                        now and not after I've spent a week straight
                        frantically hacking on NIR.<br>
                        <br>
                      </div>
                      <div>I would like everyone to be respectful of the
                        fact that this will be a major change and very
                        painful to rebase.  If you've got outstanding
                        NIR, GLSL, or SPIR-V work that is likely to
                        conflict with this, please try to land it before
                        Monday so that we can avoid rebase conflicts. <br>
                      </div>
                    </div>
                  </blockquote>
                  <br>
                </span> As part of the ongoing work for ARB_gl_spirv
                support we cover NIR, SPIR-V (specially spirv-to-nir)
                from that list. Unfourtunately, I don't think that it
                would be possible to land it before Monday, and we would
                need to deal with the rebase problems.<br>
                <br>
                In hindsight, I think that we approached slightly wrong
                how we were sending to review the sub-patches of the
                development series (btw, right now, without cleaning it
                is ~100 patches). Our plan was sending patchsets
                somewhat auto-contained. So a general spirv/nir change
                would be justified for something we need for the
                ARB_gl_spirv nir-based linker we are writing on the same
                patchset. That would mean more meaningful patchsets, but
                also that somewhat mixed patchsets, and that one
                patchset is somewhat blocking the following one. Taking
                into account how long the first patchset is taking
                (something I assume that was caused by the GL 4.6 and
                anv 1.1 CTS effort), that means that several spirv/nir
                patches were not sent to review. Probably we should have
                send beforehand, even if out of context, some "pure"
                spirv, spirv/nir patchsets, to at least checking if they
                were going in the good direction.<br>
              </div>
            </blockquote>
            <div><br>
            </div>
            <div>I'm hoping that this change will not conflict as badly
              as I made it sound.  If you're doing stuff that's actively
              touching derefs, then there may be a problem.  If not,
              then there's a decent chance it won't conflict or if it
              does that it won't be bad.<br>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
    Ah, good to know. Just skimming, we only have one patch using
    derefs, so even if we need to update it, it shouldn't be a big deal.<br>
    <br>
    Thanks for the update.<br>
    <br>
    <blockquote type="cite"
cite="mid:CAOFGe94e5wkCXrWkWFHAs9aiavJ+bPQmNPm3qV7=WY901W0F6g@mail.gmail.com">
      <div dir="ltr">
        <div class="gmail_extra">
          <div class="gmail_quote">
            <div> </div>
            <blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <div text="#000000" bgcolor="#FFFFFF"> In any case, as Im
                saying, this is all in hindsight reflection.<br>
                <br>
                Thanks for the warning, we will aware that next week
                (and likely following ones) it would be complicated, and
                we would try several rebases during the week, instead of
                the usual per-week rebase we are doing right now.<br>
                <br>
                <blockquote type="cite"><span class="">
                    <div dir="ltr">
                      <div> If you have interest in reviewing this,
                        please try to be responsive so that we can get
                        it reviewed and landed before it becomes too
                        painful.  I'll try to send out some preview
                        patches as I go so that the data structures
                        themselves can get some review before the rest
                        of the changes have been made.<br>
                      </div>
                      <div><br>
                        I'm also asking for help from Rob, Bas, and Eric
                        if there are changes needed in any of their
                        drivers.  I suspect the impact on back-end
                        drivers will be low because most of them don't
                        use derefs directly, but it would be good of
                        people were on hand to help catch bugs if
                        nothing else.<br>
                        <br>
                      </div>
                      <div>Thanks,<br>
                        <br>
                      </div>
                      <div>--Jason Ekstrand<br>
                      </div>
                      <div><br>
                      </div>
                    </div>
                    <br>
                    <fieldset
                      class="m_-4940576761448368096mimeAttachmentHeader"></fieldset>
                    <br>
                  </span>
                  <pre>______________________________<wbr>_________________
mesa-dev mailing list
<a class="m_-4940576761448368096moz-txt-link-abbreviated" href="mailto:mesa-dev@lists.freedesktop.org" target="_blank" moz-do-not-send="true">mesa-dev@lists.freedesktop.org</a>
<a class="m_-4940576761448368096moz-txt-link-freetext" href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" target="_blank" moz-do-not-send="true">https://lists.freedesktop.org/<wbr>mailman/listinfo/mesa-dev</a>
</pre>
                </blockquote>
                <br>
              </div>
            </blockquote>
          </div>
          <br>
        </div>
      </div>
    </blockquote>
    <br>
  </body>
</html>