<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div id="magicdomid4" class=""><span
        class="author-a-z65zz65z3cz69zz88zo9z76zsz82zi9sz86zb">Hi
        everybody,</span></div>
    <div id="magicdomid5" class=""><br>
    </div>
    <div id="magicdomid6" class=""><span
        class="author-a-z65zz65z3cz69zz88zo9z76zsz82zi9sz86zb">As some
        of you already know, we have been working on a Vulkan driver </span><span
        class="author-a-vpz73zz78zz89zwz73zcagyd8di1">(v3dv) for the
        Broadcom V3D GPU present in the Raspberry Pi 4</span><span
        class="author-a-z65zz65z3cz69zz88zo9z76zsz82zi9sz86zb">. So far
        we </span><span class="author-a-vpz73zz78zz89zwz73zcagyd8di1">have 
        been</span><span
        class="author-a-z65zz65z3cz69zz88zo9z76zsz82zi9sz86zb"> working
        on a personal branch</span><span
        class="author-a-vpz73zz78zz89zwz73zcagyd8di1">, rebasing
        regularly</span><span
        class="author-a-z65zz65z3cz69zz88zo9z76zsz82zi9sz86zb">, and we
      </span><span class="author-a-vpz73zz78zz89zwz73zcagyd8di1">would
        like to start discussing about the process to merge the driver
        in Mesa.</span></div>
    <div id="magicdomid7" class=""><br>
    </div>
    <div id="magicdomid8" class=""><span
        class="author-a-vpz73zz78zz89zwz73zcagyd8di1">First, here is
        some data about the current state of the driver:</span></div>
    <div id="magicdomid9" class=""><br>
    </div>
    <div id="magicdomid10" class=""><span
        class="author-a-vpz73zz78zz89zwz73zcagyd8di1">Currently, we are
        targeting Vulkan 1.0 as our first milestone. At the moment, our
        Vulkan CTS results look like this:</span></div>
    <div id="magicdomid11" class=""><span
        class="author-a-z65zz65z3cz69zz88zo9z76zsz82zi9sz86zb">[701251/701251]
        Pass: 106776 Fail: 18 Skip: 594454 ExpectedFail: 0
        UnexpectedPass: 0 Crash: 0 Timeout: 1 Missing: 0 Flake: 2</span></div>
    <div id="magicdomid12" class=""><br>
    </div>
    <div id="magicdomid13" class=""><span
        class="author-a-vpz73zz78zz89zwz73zcagyd8di1">So we we are
        hoping to be able to submit the driver for conformance soon.</span></div>
    <div id="magicdomid14" class=""><br>
    </div>
    <div id="magicdomid15" class=""><span
        class="author-a-vpz73zz78zz89zwz73zcagyd8di1">We have not done
        much testing beyond CTS yet, however, we know that we can run
        all Vulkan ports of the Quake 1-3 classics as well as OpenArena
        and we also know that there is a PSP simulator that uses Vulkan
        that some people have used to run some games on the Rpi4 as
        well. We can also run many of the Sascha Willem's demos.</span></div>
    <div id="magicdomid16" class=""><br>
    </div>
    <div id="magicdomid17" class=""><span
        class="author-a-vpz73zz78zz89zwz73zcagyd8di1">So all in all, it
        seems that the driver can be useful already to people who want
        to start playing around with Vulkan on the Rpi4, and we would
        also like to start seeing more people doing exactly that so we
        can get feedback to continue polishing and improving the driver
        for real world usage.</span></div>
    <div id="magicdomid18" class=""><br>
    </div>
    <div id="magicdomid19" class=""><span
        class="author-a-vpz73zz78zz89zwz73zcagyd8di1">As for our
        proposal to merge the driver, following are our initial
        thoughts. We would like to know if this sounds reasonable before
        we start making preparations.</span></div>
    <div id="magicdomid20" class=""><br>
    </div>
    <div id="magicdomid21" class=""><span
        class="author-a-vpz73zz78zz89zwz73zcagyd8di1">Our development
        branch is ~525 patches on top of master, categorized as follows:</span></div>
    <div id="magicdomid22" class=""><span
        class="author-a-vpz73zz78zz89zwz73zcagyd8di1">   a) Patches that
        touch common Mesa infrastructure (NIR, Vulkan WSI, Meson, etc): 
        ~5 patches.</span></div>
    <div id="magicdomid23" class=""><span
        class="author-a-vpz73zz78zz89zwz73zcagyd8di1">   b) Patches that
        touch common Broadcom infrastructure under src/broadcom (V3D
        backend compiler mostly): ~20 patches</span></div>
    <div id="magicdomid24" class=""><span
        class="author-a-vpz73zz78zz89zwz73zcagyd8di1">   c) Patches that
        are independent and specific to the V3D Vulkan driver (under
        src/broadcom/vulkan): ~500 patches.</span></div>
    <div id="magicdomid25" class=""><br>
    </div>
    <div id="magicdomid26" class=""><span
        class="author-a-vpz73zz78zz89zwz73zcagyd8di1">Since we are
        talking about a very large amount of patches, we are expecting
        that we can merge most of them without a review, particularly
        those in c) that implement the bulk of the Vulkan driver.</span></div>
    <div id="magicdomid27" class=""><br>
    </div>
    <div id="magicdomid28" class=""><span
        class="author-a-vpz73zz78zz89zwz73zcagyd8di1">The patches in b)
        are mostly about extending our compiler backend to support
        Vulkan intrinsics and requirements as well a a few more general
        fixes or improvements. Our plan is to at least have someone in
        our team review them internally and grant Rbs, I think the only
        other person who might want to review these would be Eric if he
        has the time and is interested in doing so. We have sent some of
        these for early review [1][2] when we found they were more
        generic fixes or improvements to the compiler, but we might not
        want to do this for each and every one of them unless we see
        there is interest in reviewing them separately.</span></div>
    <div id="magicdomid29" class=""><br>
    </div>
    <div id="magicdomid30" class=""><span
        class="author-a-vpz73zz78zz89zwz73zcagyd8di1">For the patches in
        a) we would like to at least get an Ack from other Mesa devs.
        They are mostly very simple things that just add an option to a
        NIR pass or a new intrinsic for use in our driver backend, so
        maybe it is not needed to create dedicated MRs and it is fine to
        just ping specific Mesa devs for reviews on those patches when
        we propose the large MR for the bulk of the driver. We did send
        one of these as an RFC some time ago [3] and it would be nice to
        get some more feedback there if possible.</span></div>
    <div id="magicdomid31" class=""><br>
    </div>
    <div id="magicdomid32" class=""><span
        class="author-a-vpz73zz78zz89zwz73zcagyd8di1">Does all this
        sound sensible?</span></div>
    <div id="magicdomid33" class=""><br>
    </div>
    <div id="magicdomid34" class=""><span
        class="author-a-z65zz65z3cz69zz88zo9z76zsz82zi9sz86zb">BR</span></div>
    <div id="magicdomid35" class=""><br>
    </div>
    <div id="magicdomid36" class=""><span
        class="author-a-z65zz65z3cz69zz88zo9z76zsz82zi9sz86zb">[1]
        "v3d/compiler: allow to batch spills" (MR#6632)</span></div>
    <div id="magicdomid37" class=""><span
        class="author-a-z65zz65z3cz69zz88zo9z76zsz82zi9sz86zb">[2]
        "broadcom/compiler: Allow spills of temporaries from TMU reads"
        (MR#6606)</span></div>
    <div id="magicdomid38" class=""><span
        class="author-a-vpz73zz78zz89zwz73zcagyd8di1">[3] "[RFC]
        vulkan/wsi: allow non-PCI devices to avoid the prime blit path"
        (MR#5917)</span></div>
  </body>
</html>