Mesa (main): 25 new commits

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu May 12 11:15:53 UTC 2022


URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=5ef9bd5ff253e5748f8ea6c064c405632ddba522
Author: Jason Ekstrand <jason.ekstrand at collabora.com>
Date:   Wed May 4 09:50:30 2022 -0500

    panvk: Round FillBuffer sizes down to a multiple of 4
    
    Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16276>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ad05bc9315a7acbb5943f146d7474d7ee950912f
Author: Jason Ekstrand <jason.ekstrand at collabora.com>
Date:   Tue May 3 17:37:46 2022 -0500

    panvk: Drop panvk_descriptor
    
    The API-style representation of descriptors is no longer used by
    anything so let's get rid of it.  All we really need is the data in the
    descriptor set itself.
    
    Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16276>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d783f8949eef8ec491cb4abb06119998ce955373
Author: Jason Ekstrand <jason.ekstrand at collabora.com>
Date:   Tue May 3 17:36:04 2022 -0500

    panvk: Implement descriptor copies properly
    
    All we were doing was copying panvk_descriptor structs around which
    don't actually contain data that's used by anything interesting.  We
    need to copy the actual data arround.  Annoyingly, that means we need a
    descriptor copy function per descriptor type.  Woo!
    
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16276>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f6268220c269da7cd09edf6664019ce0535738cf
Author: Jason Ekstrand <jason.ekstrand at collabora.com>
Date:   Tue May 3 17:31:59 2022 -0500

    panvk: Set immutable samplers properly up-front
    
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16276>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=935fd18bc3a41b47a77dcf9a785baa0bdd9a15be
Author: Jason Ekstrand <jason.ekstrand at collabora.com>
Date:   Tue May 3 16:25:25 2022 -0500

    panvk: Rewrite the write portion of vkUpdateDescriptorSets
    
    The new design is based on the ANV code which I massively cleaned up
    some time ago.  Each descriptor type has a write function and they have
    consistent prototypes.  This makes it all much easier to read and figure
    out what's going on.  It also makes it easier to make changes going
    forward because you aren't re-plumbing function arguments if you ever
    change the type of data in any given descriptor type.  You just change
    the write function.
    
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16276>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=53f53b577f5fb767f72f1ec7bb4dce15aab119d5
Author: Jason Ekstrand <jason.ekstrand at collabora.com>
Date:   Tue May 3 16:03:06 2022 -0500

    panvk: Re-arrange descriptor set functions
    
    Put them in the order we call them which is also roughly descriptor type
    enum order.
    
    Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16276>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=28333e039cf97f60ec02ebe15ebaeedbe242dc7e
Author: Jason Ekstrand <jason.ekstrand at collabora.com>
Date:   Thu May 5 17:18:36 2022 -0500

    FIXUP: Use 16-bit things for texture sizes
    
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16276>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=38a0742f6a756979032376955121b1411e2defa8
Author: Jason Ekstrand <jason.ekstrand at collabora.com>
Date:   Fri Apr 29 18:31:11 2022 -0500

    panvk: Implement texture/image queries
    
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16276>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=714e125ae439979f7b8057c3bdc81d91641e56d7
Author: Jason Ekstrand <jason.ekstrand at collabora.com>
Date:   Fri Apr 29 18:29:40 2022 -0500

    pavnk: Pass bind layouts to texture and image descriptor helpers
    
    Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16276>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6ed298dce715eb03f0cea0d075da0af51438dae1
Author: Jason Ekstrand <jason.ekstrand at collabora.com>
Date:   Fri Apr 29 17:35:50 2022 -0500

    panvk: Add an elems field to panvk_buffer_view
    
    Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16276>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6621ab8bf98d0ffce14f2a8d876bc19797285601
Author: Jason Ekstrand <jason.ekstrand at collabora.com>
Date:   Fri Apr 29 15:28:42 2022 -0500

    panvk: Advertise VK_KHR_variable_pointers
    
    Now that our SSBO descriptor handling code no longer craws deref chains
    back to the variable, we should be handling variable pointers properly.
    
    Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16276>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d9f9955f9e9b3e4eeab1ecd4fa6513985b1cae36
Author: Jason Ekstrand <jason.ekstrand at collabora.com>
Date:   Wed May 4 22:59:10 2022 -0500

    panvk: Enable robustBufferAccess
    
    It should already work for UBOs.  This should do everything we need for
    SSBOs.  Not sure about vertex and index buffers but we can deal with
    those later.
    
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16276>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6899cd2b6e5bb30cff7bbf09053f73eb035d9b72
Author: Jason Ekstrand <jason.ekstrand at collabora.com>
Date:   Wed May 4 22:55:26 2022 -0500

    vulkan: Start collecting enabled features in vk_device
    
    We're not trying to make this 100% complete.  For now, all we care about
    is robustBufferAccess.
    
    Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16276>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=a463c58e2265cdd5217adcf56fae12177860041f
Author: Jason Ekstrand <jason.ekstrand at collabora.com>
Date:   Wed Apr 27 17:58:03 2022 -0500

    panvk: Put SSBO addresses in the descriptor buffer
    
    Instead of storing SSBO pointers in the very limited sysval space, store
    them in the UBO we've attached to the descriptor set.  This gives us a
    virtually unlimited number of SSBOs.  Dynamic SSBOs still live in the
    sysval space so we can update them as part of vkCmdBindDescriptorSets().
    Also, the new code (based on the code in ANV) loads those SSBO addresses
    in a way that never chases the deref chain back to the variable so we
    should now be able to handle all of variable pointers.  The code as
    written in this patch is a bit overly generic because it switches on
    address modes a bit more than panvk needs but we ended up needing all
    that flexibility in ANV so we may as well leave hooks for it in panvk.
    
    Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16276>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e265583ee1aac62b22670ad6a17d198934003085
Author: Jason Ekstrand <jason.ekstrand at collabora.com>
Date:   Fri Apr 29 10:38:36 2022 -0500

    panvk: Interleave UBOs with multiple descriptor sets
    
    The original intention was to put all the non-dynamic UBOs first
    followed by all the dynamic ones.  However, we got the calculations
    wrong and, once you went above one descriptor set, things start stomping
    each other.
    
    Also, the whole strategy is a bit busted.  Vulkan pipeline layout
    compatability rules say that it's ok to create a pipeline with one
    layout and then bind with another so long as the bottom N descriptor set
    layouts match and the pipeline uses at most N descriptors.  This means
    that, while it's safe to have each subsequent set add onto a given pool
    of descriptors, if you're going to combine two of those pools, you need
    to be careful that the position of descriptors in set N only depends on
    the layouts of sets M <= N.  The easy way to do this is to interleve
    where we do the UBOs for set 0 then dynamic for set 0 then UBOs for set
    1 then dynamic for set 1, etc.
    
    Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16276>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6d15d65e19e2a77b64c4ab7b5120ad3b8be2b611
Author: Jason Ekstrand <jason.ekstrand at collabora.com>
Date:   Fri Apr 29 10:20:18 2022 -0500

    panvk: Put the sysval and push const UBOs at fixed indices
    
    In theory, this may cost us a tiny bit of descriptor space but in
    practice, given that the viewport transform is a sysval, we'll always
    need it for 3D and given that SSBO pointers live there, we'll basically
    always need it for compute.  It also makes a lot of things simpler.
    We're about to start using the sysval UBO directly in our descriptor set
    code and knowing the index up-front is really nice.
    
    Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16276>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=744b97796301c78d5b7b71e79fd3b8f85e498008
Author: Jason Ekstrand <jason.ekstrand at collabora.com>
Date:   Fri Apr 29 15:01:29 2022 -0500

    panvk: Stop calling lower_uniforms_to_ubo
    
    We don't need it because Vulkan doesn't have GL-style uniforms.  It
    *shouldn't* be doing anything but sometimes it inserts an extra UBO
    binding and adds 1 to all our UBO indices for no good reason.
    
    Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16276>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c32ddb5e776e70630ad5679e4d275b5ffaa806b2
Author: Jason Ekstrand <jason.ekstrand at collabora.com>
Date:   Thu Apr 28 17:02:20 2022 -0500

    panvk: Use a flat sysvals struct
    
    PanVK uses fewer sysvals than the GLES driver, as some data that would
    be a data in GLES is instead part of the descriptor set or the pipeline
    state in Vulkan. Therefore, it is simpler and more efficient to use a
    flat, fixed layout provided by the driver for our sysvals, rather than
    the compiler choosing a layout.
    
    This commit switches to a flat sysval layout.
    
    Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16276>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e6091cc5786d3c407558df8a32656def0f9e73f9
Author: Jason Ekstrand <jason.ekstrand at collabora.com>
Date:   Thu Apr 28 15:51:51 2022 -0500

    panvk: Get rid of the per-pipeline sysvals BO
    
    This is a micro-optimization and probably not a correct one at that.
    The cost involved in re-uploading the viewport is tiny compared to the
    mental overhead from trying to do this juggle.
    
    Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16276>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f0a47d86029c1013af216bd023577a2eed91a0a0
Author: Jason Ekstrand <jason.ekstrand at collabora.com>
Date:   Thu Apr 28 15:46:00 2022 -0500

    bifrost,midgard: Allow providing a fixed sysval layout
    
    Vulkan doesn't need nearly as many system values and would like to bake
    its layout up-front instead of having it provided by the back-end
    compiler.
    
    Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16276>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=e07a2963982791ee3ce700321353a62fd9a2fa2a
Author: Jason Ekstrand <jason.ekstrand at collabora.com>
Date:   Thu Apr 28 17:52:41 2022 -0500

    panfrost: Add some sanity checking for sysvals
    
    Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16276>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=4e60f0655a831cae0cbf6de99994c6cf56ce28ce
Author: Jason Ekstrand <jason.ekstrand at collabora.com>
Date:   Wed May 4 11:25:33 2022 -0500

    panfrost,panvk: Make fixed_sysval_ubo < 0 mean compiler-assigned
    
    In 3559efb9bf5c ("panfrost: Allow passing an explicit UBO index for the
    sysval UBO"), an explicit UBO index was added and it was implicitly
    assumed that it would be > num_ubos.  This was convenient because it
    meant 0, the default for designated initializers, implicitly meant
    compiler-assigned.  However, we're about to move the sysval UBO to 0
    which breaks this assumption.   Also, we don't want the back-end
    compiler to even look at num_ubos since it's meaningless in Vulkan.
    
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16276>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=42aca84704a36a6a9c52552c4dde77ef4c528a69
Author: Jason Ekstrand <jason.ekstrand at collabora.com>
Date:   Wed Apr 27 16:03:52 2022 -0500

    panvk: Add a buffer to each descriptor set
    
    Later in the series, we will map descriptor sets to driver-internal
    buffers bound as UBOs. These buffers will contain various internal data,
    like buffer and texture sizes. Resource access will be lowered to pull
    from this UBO in the shader. To prepare, create a backing buffer when
    creating descriptor set and emit a UBO record so we can bind it.
    
    Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16276>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=bcea5ed2b649a549279a5fec50cb7f9c615de8c6
Author: Jason Ekstrand <jason.ekstrand at collabora.com>
Date:   Wed Apr 27 14:44:35 2022 -0500

    panvk: Break descriptor lowering into its own file
    
    It's about to get a lot more complicated so let's split it out.
    
    Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16276>

URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=8af805a4756dbc47d4ab4e9ed4ec39856b4beaef
Author: Jason Ekstrand <jason.ekstrand at collabora.com>
Date:   Wed Apr 27 14:53:38 2022 -0500

    panvk: Move CreateDescriptorSetLayout to per-arch
    
    Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig at collabora.com>
    Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16276>



More information about the mesa-commit mailing list