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