Mike Blumenkrantz
fa77cc2fbb
zink: add a null sampler view descriptor hash to the screen
...
pre-hashing this saves us time later since we can just reuse it
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348 >
2021-03-12 16:32:53 +00:00
Mike Blumenkrantz
67f9038b85
zink: introduce descriptor states
...
this aims to track the states of descriptors so that we can do more incremental
updating
it also enables the descriptor cache to be more robust by providing the incremental
data as the key
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348 >
2021-03-12 16:32:53 +00:00
Mike Blumenkrantz
6d233e74ad
zink: use dynamic offsets for first ubo
...
this lets us avoid invalidating the ubo descriptor state, which reduces our
cache overhead
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348 >
2021-03-12 16:32:53 +00:00
Mike Blumenkrantz
d4304ab0d2
zink: split descriptor sets based on usage
...
this uses multiple descriptor sets so that we can perform more incremental
updating and increase the value that we get from our cache by only invalidating
one state at a time
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348 >
2021-03-12 16:32:53 +00:00
Mike Blumenkrantz
c5ce20e97a
zink: move surface refs to the end of descriptor updating
...
keeping descriptor stuff with descriptor stuff
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348 >
2021-03-12 16:32:53 +00:00
Mike Blumenkrantz
d06c2ae21f
zink: reorder descriptor barrier applying during updating
...
just putting this with the rest of the non-descriptor stuff
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348 >
2021-03-12 16:32:53 +00:00
Mike Blumenkrantz
761a04a464
zink: move streamout to draw_vbo
...
this isn't part of descriptor updating
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348 >
2021-03-12 16:32:53 +00:00
Mike Blumenkrantz
b10a3be45e
zink: add second level cache for descriptor sets
...
this lets us store sets that are valid but not currently used so that we
can either prolongue a cache entry's lifetime or cannibalize a valid entry
if necessary to avoid needing to allocate more sets
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348 >
2021-03-12 16:32:53 +00:00
Mike Blumenkrantz
6c4c995836
zink: add caching for descriptor sets
...
this is a lot of churn that more or less amounts to hashing the descriptor
state during draw and then performing lookups with this to determine whether
we can reuse an existing descriptor set instead of allocating one
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348 >
2021-03-12 16:32:52 +00:00
Mike Blumenkrantz
840ea21fa1
zink: add scaling factor for descriptor set bucket allocations
...
now descriptor sets allocate in increasingly large batches based on how many
sets a program has allocated, multiplying by 10 any time the sets hit a power of
10, e.g., if 100 sets are allocated, we now allocate in batches of 100
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348 >
2021-03-12 16:32:52 +00:00
Mike Blumenkrantz
bd78710d21
zink: add bucket allocating for descriptor sets
...
now instead of allocating a single descriptorset at a time, we allocate
a defined count of descriptorsets (currently 10) at once and keep a separate
array of allocated-and-unused sets that we can pop sets off of
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348 >
2021-03-12 16:32:52 +00:00
Mike Blumenkrantz
4461a871b8
zink: remove flushes for batch descriptor use
...
now that we do all our tracking and flushing per-program, we can throw
out the batch-based flushing and let our descriptors free-range
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348 >
2021-03-12 16:32:52 +00:00
Mike Blumenkrantz
d21e88719a
zink: even better handling for descriptor oom
...
in addition to ensuring that all our batches stay under the max size by cycling
them whenever we get too many active descriptors going, we now do per-program
descriptor pools, so we can do some limiting there as well to ensure that we
aren't letting any one program hog all the resources
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348 >
2021-03-12 16:32:52 +00:00
Mike Blumenkrantz
4ec1d5e70c
zink: add helper function for cycling a batch
...
this saves a bit of typing here and there
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348 >
2021-03-12 16:32:52 +00:00
Mike Blumenkrantz
7ae8509673
zink: use more precise sizing for descriptor pools
...
now that these are on the program structs, we can size the pools optimally
based on the set layouts
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348 >
2021-03-12 16:32:52 +00:00
Mike Blumenkrantz
9b3e2ba30c
zink: move descriptor set alloc function to zink_program.c
...
try to keep things organized...
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348 >
2021-03-12 16:32:52 +00:00
Mike Blumenkrantz
0b1a356393
zink: store and reuse descriptorsets after batch completion
...
since we know that the layout is going to match, we can store descriptorsets
in the program and then overwrite them instead of needing to free sets or reset
the pool
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348 >
2021-03-12 16:32:52 +00:00
Mike Blumenkrantz
0e6ef05878
zink: move descriptor sets/pools from batches to programs
...
this lets us much more accurately create descriptor sets using the exact
size required by a given program instead of creating gigantic monolithic sets
it does (temporarily) incur a perf hit since sets are now freed after each use rather
than being reset
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348 >
2021-03-12 16:32:52 +00:00
Mike Blumenkrantz
5ddfffcca1
zink: simplify some update_descriptor code
...
by using the generic zink_program here we can shorten the code a little
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9348 >
2021-03-12 16:32:52 +00:00
Samuel Pitoiset
15fc0c351a
radv: fix potential clears with non renderable images on GFX9+
...
Found by inspection.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9474 >
2021-03-12 16:09:42 +00:00
Samuel Pitoiset
9863ed9bf3
radv: fix meta save/restore state with non renderable images
...
For non renderable images, the driver performs some transfer operations
with compute shaders on the gfx queue, but it was saving the gfx state
instead of the compute state.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9474 >
2021-03-12 16:09:42 +00:00
Samuel Pitoiset
b42204e4d0
radv: disable sampling with VK_FORMAT_R64_SFLOAT
...
It's not supported.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4433
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com >
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9519 >
2021-03-12 16:07:54 +01:00
Rohan Garg
44c38cae9a
virgl: Support the ETC1_RGB8 format as virglrenderer supports it
...
Signed-off-by: Rohan Garg <rohan.garg@collabora.com >
Reviewed-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9497 >
2021-03-12 15:35:47 +01:00
Erico Nunes
c453921c91
lima: run nir dce after nir_lower_vec_to_movs
...
Some of the 'vec*' nir instructions may hold references to dead code
until the nir_lower_vec_to_movs pass runs.
After nir_lower_vec_to_movs, that code can finally be cleaned by dce,
so add an additional dce pass.
This not only potentially further removes unneeded code from the nir
representation but also prevents bugs with the compiler from special
case unused code that is not expected (e.g. root undef type nodes).
Signed-off-by: Erico Nunes <nunes.erico@gmail.com >
Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9507 >
2021-03-12 11:46:54 +00:00
Juan A. Suarez Romero
3f1c375581
ci/broadcom: allow custom kernels
...
So far, testing VC4 and V3D/V3DV requires the CI runners having access
to a Raspberry Pi 3/4 kernel, and the correspondent modules and
bootloader files. If a different kernel must be used, it means touching
the runners to provide them.
This commit adds the option to define an URL pointing to a (compressed)
tarball containing such files, without requiring dealing with the
runners. This link is provided through the `BM_BOOTFS` job variable.
The tarball must contain two directories in the root: a `/boot`
directory (containing the kernel, DTBs and bootloader files), and a
`/lib/modules` (or `/usr/lib/modules`) with the kernel modules.
Reviewed-by: Eric Anholt <eric@anholt.net >
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9527 >
2021-03-12 11:03:17 +00:00
Danylo Piliaiev
1a2f1e3f47
turnip: fill VkMemoryDedicatedRequirements
...
We support VK_KHR_dedicated_allocation so we must fill
VkMemoryDedicatedRequirements.
Vulkan spec states:
"[...] requiresDedicatedAllocation may be VK_TRUE under one of the
following conditions:
The pNext chain of VkImageCreateInfo for the call to vkCreateImage used
to create the image being queried included a VkExternalMemoryImageCreateInfo
structure, and any of the handle types specified in
VkExternalMemoryImageCreateInfo::handleTypes requires dedicated allocation,
as reported by vkGetPhysicalDeviceImageFormatProperties2 in
VkExternalImageFormatProperties::externalMemoryProperties.externalMemoryFeatures,
the requiresDedicatedAllocation field will be set to VK_TRUE."
All handle types require dedicated allocation at the moment.
Fixes:
dEQP-VK.api.external.memory.opaque_fd.dedicated.image.info
dEQP-VK.memory.requirements.dedicated_allocation.buffer.regular
dEQP-VK.memory.requirements.dedicated_allocation.image.transient_tiling_optimal
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9086 >
2021-03-12 11:56:47 +02:00
Tapani Pälli
d7b3454af3
anv: fix compilation due to missing vk_format_from_android
...
Fixes: 4fb6c051c9 ("anv: Move vk_format helpers to common code")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4428
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9549 >
2021-03-12 10:35:01 +02:00
Tapani Pälli
0759822f64
anv/android: fix compilation failure
...
Fixes: 3e6d3bca1d ("anv/android: Fix size check for imported gralloc bo")
Signed-off-by: Tapani Pälli <tapani.palli@intel.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9549 >
2021-03-12 10:34:53 +02:00
Dave Airlie
49bb53ba43
lavapipe: add EXT_sampler_filter_minmax support
...
Hook up the extension
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9423 >
2021-03-12 16:02:30 +10:00
Dave Airlie
6adbf6c86c
llvmpipe: add reduction mode support
...
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9423 >
2021-03-12 16:02:25 +10:00
Dave Airlie
1fb43ae9bf
lavapipe: enable KHR_multiview
...
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9399 >
2021-03-12 05:05:51 +00:00
Dave Airlie
cbd01045bc
lavapipe: add render pass support for multiview
...
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9399 >
2021-03-12 05:05:51 +00:00
Dave Airlie
3c08eee1bd
lavapipe: add input attachment support for multiview
...
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9399 >
2021-03-12 05:05:51 +00:00
Dave Airlie
8c6d4d470e
lavapipe: add draw support for multiview
...
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9399 >
2021-03-12 05:05:51 +00:00
Dave Airlie
4d72515e32
lavapipe: add clear support for multiview
...
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9399 >
2021-03-12 05:05:51 +00:00
Dave Airlie
e81cd37363
llvmpipe: add view index support to rasterizer
...
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9399 >
2021-03-12 05:05:51 +00:00
Dave Airlie
b76242b9c8
llvmpipe: add the view index callback from draw
...
This just stores the view index into setup
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9399 >
2021-03-12 05:05:51 +00:00
Dave Airlie
b5f686c93b
draw: add tess/gs support for multiview index
...
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9399 >
2021-03-12 05:05:51 +00:00
Dave Airlie
a2bee6df5f
draw/vs: pass the view index to the vertex shader
...
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9399 >
2021-03-12 05:05:51 +00:00
Dave Airlie
a417843a3c
draw: pass the view index to the render driver
...
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9399 >
2021-03-12 05:05:51 +00:00
Dave Airlie
03cbb7b104
draw: add view_mask rendering support
...
This loops the draws per-view above the instance rendering
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9399 >
2021-03-12 05:05:51 +00:00
Dave Airlie
b10b55f3d3
draw: refactor out the instances drawing code
...
This can be reused nice for multiview if refactored out
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9399 >
2021-03-12 05:05:51 +00:00
Dave Airlie
267d216bcb
draw: add interface to notify renderer of the current view index
...
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9399 >
2021-03-12 05:05:51 +00:00
Dave Airlie
9f0fd85474
gallivm: add support for load_view_index intrinsic
...
This just adds the system value
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9399 >
2021-03-12 05:05:51 +00:00
Dave Airlie
974f2e6c6a
gallivm: mark subpass input attachments as 2d arrays
...
This matters when multiview is enabled.
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9399 >
2021-03-12 05:05:51 +00:00
Dave Airlie
e3b8f449e1
gallium: add a view mask to the draw command
...
This allows the caller to specify the view mask for this draw
in a multiview draw environment
This has been packed into the upper nibble and 2 bits of the
index size to retain the struct size as small as possible
for tc.
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Reviewed-by: Roland Scheidegger <sroland@vmware.com >
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9399 >
2021-03-12 05:05:51 +00:00
Timothy Arceri
684f97de80
glsl: fix declarations of gl_MaxVaryingFloats
...
gl_MaxVaryingFloats was not removed from core until 4.20 and is still
available in compat shaders. Found while writing some new CTS to test
the correct declarations of this constant.
Fixes: 0ebf4257a385i ("glsl: define some GLES3 constants in GLSL 4.1")
Reviewed-by: Tapani Pälli <tapani.palli@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9514 >
2021-03-12 04:30:32 +00:00
Jason Ekstrand
6d16d929f3
iris: Add an iris_write_reg macro
...
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9537 >
2021-03-12 04:17:39 +00:00
Jason Ekstrand
5b792d79a4
anv: Add an anv_batch_write_reg macro
...
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9537 >
2021-03-12 04:17:39 +00:00
Jason Ekstrand
5f192b190f
anv,genxml: Handle L3SQCREG1_SQGHPCI in GenXML
...
Technically, this is only one field on IVB but it's two on BYT and so it
makes things easier if we split it for all Gen7.
While we're here, make some of the other fields in L3SQCREG1 Booleans.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9537 >
2021-03-12 04:17:39 +00:00