Mike Blumenkrantz [Fri, 7 May 2021 20:05:51 +0000 (16:05 -0400)]
zink: make mem cache limits dynamically scalable
this removes the hardcoded count of 5 mem blocks to cache and replaces
it with a value that's based on the number of allocations seen
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11594>
Mike Blumenkrantz [Fri, 7 May 2021 20:07:47 +0000 (16:07 -0400)]
zink: don't align device-local buffer memory
this can't be mapped
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11594>
Mike Blumenkrantz [Thu, 6 May 2021 13:53:37 +0000 (09:53 -0400)]
zink: try for better buffer allocation heaps
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11594>
Gert Wollny [Wed, 30 Jun 2021 09:06:11 +0000 (11:06 +0200)]
r600/sfn: initialize all texture lower options
Fixes:
d1edf3cdf285f62c153c6bb910fc0a2c40c4e159
r600/sfn: Lower offset in TXF instructions
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11650>
Marcin Ślusarz [Mon, 28 Jun 2021 15:14:08 +0000 (17:14 +0200)]
anv: drop unused argument of anv_descriptor_set_address
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11577>
Marcin Ślusarz [Mon, 28 Jun 2021 11:06:07 +0000 (13:06 +0200)]
anv: handle push descriptor sets when they are sent with push constants
When vkCmdPushDescriptorSetKHR is used, the descriptor set is allocated
internally without belonging to any pool. Such descriptor set will be
visible on the GPU side because it's a part of the dynamic state stream,
but we still have to store its address in the array of descriptor sets.
Complements:
379b9bb7b04 ("anv: Support fetching descriptor addresses from push constants")
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11577>
Marcin Ślusarz [Mon, 28 Jun 2021 10:56:31 +0000 (12:56 +0200)]
anv: keep descriptor set's address directly in anv_descriptor_set
Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11577>
Timothy Arceri [Tue, 22 Jun 2021 09:50:47 +0000 (19:50 +1000)]
util/disk_cache: delete more cache items in one go when full
Currently the cache just deletes enough items when the cache is
full to make room for the new item being stored. This hasn't
been too much of a problem in practice but for things like running
piglit where we have thousands of unique shaders and all threads
being utilised we end up with a pretty big bottle neck.
With this change rather than just brute forcing our way to having
enough room for the new item, we instead grab 10% of the least
recently used items in the random directory we chose and delete
them all. This should only be around 0.04% of total cache items
but should hopefully releave some of the pressure on system calls
like fstatat().
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11523>
Daniel Stone [Wed, 30 Jun 2021 06:43:47 +0000 (07:43 +0100)]
CI: Disable LAVA devices for maintenance
LAVA will be unavailable for probably most of the day today due to
scheduled maintenance; doing some spring cleaning to upgrade to a new
version, clean out the database, etc.
Signed-off-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11649>
Samuel Pitoiset [Tue, 22 Jun 2021 06:36:16 +0000 (08:36 +0200)]
radv: fix fd leak in vkAcquireImageANDROID()
Copied from ANV.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4915
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11518>
Simon Ser [Thu, 28 May 2020 17:59:35 +0000 (19:59 +0200)]
vulkan/wsi: prefer the Wayland linux-dmabuf protocol
When the linux-dmabuf protocol is available, prefer it over the old
wl_drm protocol. Previously wl_drm was used when modifiers aren't
supported, however linux-dmabuf supports formats without modifiers too.
In this case, linux-dmabuf will send a DRM_FORMAT_MOD_INVALID modifier
for each supported format [1].
All of this allows compositors to better handle these buffers, getting a
DMA-BUF and implementing features like direct scan-out.
A similar logic has been implemented for EGL [2].
In this patch, we bind to linux-dmabuf even if the driver doesn't support
modifiers. In this case the formats advertised by the compositor will
still be added to the display->dmabuf.formats list.
In wsi_wl_image_init, drop the assertions that display->drm_wrapper and
display->dmabuf.wl_dmabuf can't be both present. If the driver doesn't
support modifiers, the modifier is already set to DRM_FORMAT_MOD_INVALID.
If the parent compositor doesn't support modifiers, the modifiers list
passed to wsi_create_native_image will be empty, and the common code
will ensure that the image's modifier is set to DRM_FORMAT_MOD_INVALID.
In wsi_wl_surface_create_swapchain, create the wl_proxy proxy if we've
bound to it earlier. Don't decide to create the proxy depending on the
number of supported modifiers.
[1]: https://gitlab.freedesktop.org/wayland/wayland-protocols/commit/
fb9b2a87317c77e26283da5f6c9559d709f6fdcd
[2]: https://gitlab.freedesktop.org/mesa/mesa/-/commit/
c376865f5eeca535c4aa8e33bcf166052c1ce2f2
Signed-off-by: Simon Ser <contact@emersion.fr>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4942>
Simon Ser [Thu, 28 May 2020 17:54:49 +0000 (19:54 +0200)]
vulkan/wsi: unify format logic in dmabuf_handle_modifier
This function has a switch which currently duplicates the format
handling logic.
Move this logic out of the switch.
This avoids repeating the same code for each supported format and
prepares the work for proper DRM_FORMAT_MOD_INVALID handling.
Signed-off-by: Simon Ser <contact@emersion.fr>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4942>
Mike Blumenkrantz [Thu, 6 May 2021 19:26:54 +0000 (15:26 -0400)]
zink: split dummy buffer creation and populate
populate requires the queue to be set up, but the resources must be created
before descriptor init
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11591>
Mike Blumenkrantz [Fri, 7 May 2021 11:57:19 +0000 (07:57 -0400)]
zink: add direct conversion from pipe_shader_type->VkPipelineStageFlags
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11592>
Dave Airlie [Wed, 30 Jun 2021 00:44:25 +0000 (10:44 +1000)]
crocus: disable Z16 unorm textures on pre-gen8 as well.
This fixes:
dEQP-GLES3.functional.fbo.completeness.renderable.texture.depth.depth_component_unsigned_short
as gallium will try an allocate a DS usage, but fallback to just
a sampling usage if that fails.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11646>
Dave Airlie [Wed, 30 Jun 2021 00:42:43 +0000 (10:42 +1000)]
crocus/gen8: add back z16 support for gen8
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11646>
Rob Clark [Mon, 21 Jun 2021 21:21:00 +0000 (14:21 -0700)]
freedreno+ir3: Enable INT16
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11545>
Rob Clark [Mon, 21 Jun 2021 21:19:51 +0000 (14:19 -0700)]
nir: Add pass to lower phi precision
In addition to register pressure benefits from getting more fp16/int16,
this avoids i2imp's from standing in the way of loop unrolling.
Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Connor Abbott <cwabbott0@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11545>
Enrico Galli [Mon, 28 Jun 2021 22:00:39 +0000 (15:00 -0700)]
microsoft/compiler: Add support for get_ssbo_size to translator
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11629>
Thomas H.P. Andersen [Sun, 27 Jun 2021 23:00:31 +0000 (01:00 +0200)]
nir/lower_packing: use shader_instructions_pass
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11615>
Thomas H.P. Andersen [Sat, 26 Jun 2021 22:44:56 +0000 (00:44 +0200)]
nir: return progress from nir_lower_packing
Compiling with clang warns about an unused variable in
nir_lower_packing.
Tracking progress was added to nir_lower_packing in
adb157ddfd52ab495878a8b2b1bf70586d773aa2 but the function
will ignore the progress from impl calls and always return
false.
This patch changes it to return the progress. It fixes the
warning and should enable validation calls in NIR_PASS when
progress is made.
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Fixes:
adb157ddfd52 "nir: Return progress from nir_lower_64bit_pack()"
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11615>
Pierre-Eric Pelloux-Prayer [Mon, 28 Jun 2021 16:09:02 +0000 (18:09 +0200)]
radeonsi/driconf: add workaround for SpaceEngine
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4483
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11625>
Pierre-Eric Pelloux-Prayer [Fri, 25 Jun 2021 11:58:14 +0000 (13:58 +0200)]
ac/surface: don't print stencil info if tex has no stencil
color/zs are stored in a union so testing for zs.stencil_offset
isn't the correct way to test for stencil.
Fixes:
988f148db3c ("ac/surface: overlap color and Z/S fields using a union in gfx9_surf_layout")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11625>
Pierre-Eric Pelloux-Prayer [Mon, 28 Jun 2021 12:52:07 +0000 (14:52 +0200)]
radeonsi/gfx7: always sync pfp/me
Workaround for https://gitlab.freedesktop.org/mesa/mesa/-/issues/4764
Fixes:
c5326164 ("radeonsi: add SI_CONTEXT_PFP_SYNC_ME to skip syncing PFP for image operations")
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11625>
Pierre-Eric Pelloux-Prayer [Mon, 21 Jun 2021 13:11:27 +0000 (15:11 +0200)]
radeonsi: fix fb_too_small condition
fb->num_layers can be 0 so use util_num_layers(tex) instead.
Fixes:
f7c58559f57 ("radeonsi: refine fast clears for small buffers, always use them for large HTILE")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4764
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11625>
Pierre-Eric Pelloux-Prayer [Mon, 21 Jun 2021 13:04:19 +0000 (15:04 +0200)]
ac/llvm: call the callback in all return paths of ac_cull_triangle
Fixes:
12d2df15f17 ("ac/llvm: add a callback to ac_cull_triangle to generate code in inner-most block")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4959
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11625>
Christian Gmeiner [Fri, 25 Jun 2021 15:56:11 +0000 (17:56 +0200)]
ci: bare-metal: drop webdav support
The NFS method is much faster.
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11611>
Jason Ekstrand [Thu, 24 Jun 2021 16:26:05 +0000 (11:26 -0500)]
iris/bufmgr: Stop changing mapping modes on buffers
With discrete GPUs, we aren't able to change mapping modes after we've
created a buffer. This is a limitation of TTM. However, we already
have a buffer cache and it's pretty likely that stuff in any given
memzone will end up with just the one mapping type anyway so this
shouldn't have much of a cost.
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11583>
Emma Anholt [Mon, 28 Jun 2021 22:56:38 +0000 (15:56 -0700)]
intel: Early exit from inst_is_in_block().
Surely the compiler would sort that out, you would think. But no, my
debugoptimized build improves
dEQP-GLES31.functional.ubo.random.all_per_block_buffers.13 runtime by 25%
on my SKL from this change.
This was the slowest test in the GLES31 tests on APL in CI, at 22s. And
yes, we were spending around half of our runtime in this function.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Acked-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11631>
Gert Wollny [Tue, 29 Jun 2021 08:36:08 +0000 (10:36 +0200)]
virgl: Enable ASTC formats also for 3D textures
The texture compression can also be used for 2D arrays and
3D textures.
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Corentin Noël <corentin.noel@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11634>
Rhys Perry [Tue, 29 Jun 2021 13:10:13 +0000 (14:10 +0100)]
docs/envvars: fix RADV_TEX_ANISO
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11640>
Gert Wollny [Tue, 29 Jun 2021 12:28:51 +0000 (14:28 +0200)]
r600/sfn: Lower offset in TXF instructions
Closes: #4960
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11639>
Samuel Pitoiset [Thu, 24 Jun 2021 14:16:25 +0000 (16:16 +0200)]
radv: fix RADV_FORCE_VRS for 2x1 and 1x2
The rates were inverted.
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/11578>
Juan A. Suarez Romero [Tue, 22 Jun 2021 08:39:07 +0000 (10:39 +0200)]
ci/vc4: update piglit failures
Reviewed-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11521>
Iago Toral Quiroga [Mon, 28 Jun 2021 10:54:46 +0000 (12:54 +0200)]
broadcom/compiler: use nir_sort_variables_with_modes
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11624>
Rhys Perry [Tue, 22 Jun 2021 12:43:33 +0000 (13:43 +0100)]
aco/tests: fix 32-bit build
"call of overloaded ‘Operand(long unsigned int)’ is ambiguous"
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11627>
Ishi Tatsuyuki [Thu, 24 Jun 2021 12:12:48 +0000 (21:12 +0900)]
radv: ignore redundant variable descriptor counts (v2)
The Vulkan specification says: "If VkDescriptorSetAllocateInfo::pSetLayouts[i]
does not include a variable count descriptor binding, then
pDescriptorCounts[i] is ignored". The previous code triggered an assertion
in such cases, and this patch fixes it.
v2: removed the offending assertion that is now always satisfied and
reworded the commit message with a reference to Vulkan spec.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4992
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11576>
Connor Abbott [Thu, 22 Apr 2021 17:49:29 +0000 (19:49 +0200)]
ir3/lower_parallelcopy: Use SWZ
shader-db results on a650:
total instructions in shared programs: 1575484 -> 1574866 (-0.04%)
instructions in affected programs: 32579 -> 31961 (-1.90%)
helped: 75
HURT: 0
helped stats (abs) min: 1 max: 98 x̄: 8.24 x̃: 7
helped stats (rel) min: 0.41% max: 30.12% x̄: 2.47% x̃: 1.13%
95% mean confidence interval for instructions value: -10.97 -5.51
95% mean confidence interval for instructions %-change: -3.44% -1.51%
Instructions are helped.
total nops in shared programs: 355742 -> 355628 (-0.03%)
nops in affected programs: 18635 -> 18521 (-0.61%)
helped: 55
HURT: 147
helped stats (abs) min: 1 max: 14 x̄: 4.76 x̃: 6
helped stats (rel) min: 1.41% max: 100.00% x̄: 8.13% x̃: 4.76%
HURT stats (abs) min: 1 max: 2 x̄: 1.01 x̃: 1
HURT stats (rel) min: 0.56% max: 25.00% x̄: 2.09% x̃: 1.20%
95% mean confidence interval for nops value: -0.98 -0.15
95% mean confidence interval for nops %-change: -1.93% 0.55%
Inconclusive result (%-change mean confidence interval includes 0).
total non-nops in shared programs: 1219742 -> 1219238 (-0.04%)
non-nops in affected programs: 61125 -> 60621 (-0.82%)
helped: 220
HURT: 0
helped stats (abs) min: 1 max: 99 x̄: 2.29 x̃: 1
helped stats (rel) min: 0.19% max: 29.17% x̄: 0.90% x̃: 0.40%
95% mean confidence interval for non-nops value: -3.26 -1.32
95% mean confidence interval for non-nops %-change: -1.24% -0.56%
Non-nops are helped.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11565>
Connor Abbott [Wed, 28 Apr 2021 15:46:44 +0000 (17:46 +0200)]
ir3: Add min gen for multi-mov instructions
swz works on a5xx/a6xx but not a3xx according to CI. I don't have any
access to a4xx HW so I can't tell whether it works there.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11565>
Connor Abbott [Thu, 22 Apr 2021 17:49:07 +0000 (19:49 +0200)]
ir3: Print multi-mov instructions
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11565>
Connor Abbott [Mon, 21 Jun 2021 16:46:37 +0000 (18:46 +0200)]
ir3/validate: Support multi-mov instructions
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11565>
Connor Abbott [Thu, 22 Apr 2021 17:40:00 +0000 (19:40 +0200)]
ir3: Use correct flags for movmsk & multi-mov
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11565>
Connor Abbott [Thu, 22 Apr 2021 17:14:42 +0000 (19:14 +0200)]
ir3/legalize: Support multi-mov instructions
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11565>
Connor Abbott [Thu, 22 Apr 2021 17:11:05 +0000 (19:11 +0200)]
ir3/postsched: Support multi-mov instructions
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11565>
Connor Abbott [Thu, 22 Apr 2021 17:06:54 +0000 (19:06 +0200)]
ir3/delay: Support multi-mov instructions
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11565>
Connor Abbott [Fri, 25 Jun 2021 09:34:53 +0000 (11:34 +0200)]
ir3: Support multi-mov instructions
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11565>
Connor Abbott [Mon, 21 Jun 2021 15:46:33 +0000 (17:46 +0200)]
ir3: Add foreach_dst/foreach_dst_n
And cleanup a few places I know of that are open-coding it
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11565>
Connor Abbott [Fri, 25 Jun 2021 09:06:35 +0000 (11:06 +0200)]
ir3: Prepare dest helpers for multi-dst instructions
Assert in dest_regs() that dst_count == 1, since most users of it will
blow up if they encounter multiple destinations, and split out the core
of writes_gpr() so that we can easily make code using it multi-dst
aware.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11565>
Connor Abbott [Fri, 25 Jun 2021 08:51:25 +0000 (10:51 +0200)]
ir3: Stop creating dummy dest registers
These were a holdover from before the src/dst split and are no longer
necessary. Just don't create any dest registers for instructions that
never have a destination.
This has the side-effect that it becomes easier to replace uses of
dest_regs() with a per-register thing, once we start adding support for
multiple destinations.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11565>
Iago Toral Quiroga [Tue, 22 Jun 2021 10:13:56 +0000 (12:13 +0200)]
v3dv: expose support for basic subgroup operations
Relevant CTS tests (requires Vulkan 1.1):
dEQP-VK.subgroups.builtin_var.compute.*
dEQP-VK.subgroups.basic.compute.*
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11620>
Iago Toral Quiroga [Tue, 22 Jun 2021 09:30:11 +0000 (11:30 +0200)]
v3dv: expose correct subgroup size
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11620>
Iago Toral Quiroga [Tue, 22 Jun 2021 10:34:02 +0000 (12:34 +0200)]
broadcom/util: don't use compute supergroup packing with subgroups
When using subgroups there are additional restrictions to consider,
so for now we keep it simple and disable supergroup packing in that
scenario.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11620>
Iago Toral Quiroga [Tue, 22 Jun 2021 10:33:23 +0000 (12:33 +0200)]
broadcom/compiler: track if a compute shader uses subgroup functionality
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11620>
Iago Toral Quiroga [Mon, 28 Jun 2021 07:45:18 +0000 (09:45 +0200)]
broadcom/compiler: add a set_a_flags_for_subgroup helper
We will need this in the future to implement more subgroup operations,
so make this code available in a helper.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11620>
Iago Toral Quiroga [Mon, 28 Jun 2021 07:44:49 +0000 (09:44 +0200)]
broadcom/compiler: add a ntq_emit_cond_to_bool helper
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11620>
Iago Toral Quiroga [Tue, 22 Jun 2021 09:04:06 +0000 (11:04 +0200)]
broadcom/compiler: implement more subgroup intrinsics
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11620>
Iago Toral Quiroga [Wed, 23 Jun 2021 09:18:50 +0000 (11:18 +0200)]
broadcom/compiler: add FLAFIRST and FLNAFIRST opcodes
We will at least need the former to implement subgroupElect()
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11620>
Iago Toral Quiroga [Tue, 22 Jun 2021 10:00:55 +0000 (12:00 +0200)]
broadcom/compiler: lower nir_intrinsic_load_num_subgroups
The number of subgroups is the local workgroup size divided by the
dispatch width.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11620>
Iago Toral Quiroga [Tue, 22 Jun 2021 08:55:04 +0000 (10:55 +0200)]
broadcom/compiler: implement nir_intrinsic_load_subgroup_id correctly
For some reason, this was implemented with the bulk of the compute
shader enablement, but this intrinsic is specific to subgroups and
thus was not really used. Also, its implementation was not correct,
since it was returning the element index within the subgroup, not
the subgroup index itself, which is the index of the batch in the
dispatch.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11620>
Lionel Landwerlin [Fri, 25 Jun 2021 10:54:51 +0000 (13:54 +0300)]
intel/perf: use the right popcount for 64bits
We're currently using the 32bit version which is dropping half the
bits of the 64bits values.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11607>
Timothy Arceri [Fri, 25 Jun 2021 11:31:16 +0000 (21:31 +1000)]
util: add some workarounds for the game Luna Sky
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4948
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11602>
Timothy Arceri [Fri, 25 Jun 2021 11:29:31 +0000 (21:29 +1000)]
util/driconf: add new ignore_write_to_readonly_var workaround
This forces the GLSL compiler to ignore writes to readonly vars
rather than throwing an error.
Cc: mesa-stable
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11602>
Timothy Arceri [Fri, 25 Jun 2021 10:30:32 +0000 (20:30 +1000)]
glsl: force_glsl_version to shaders with no defined version
If a shader has no defined version force_glsl_version was
previous ignored and the shader would default to 110. This updates
the code so that those shaders are forced to a new level also.
We reused the existing code to make sure a sensible value is set
for the version.
Cc: mesa-stable
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11602>
Timothy Arceri [Mon, 28 Jun 2021 04:26:54 +0000 (14:26 +1000)]
i965: don't crash on incorrect texture use
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4995
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11603>
Timothy Arceri [Fri, 25 Jun 2021 12:33:22 +0000 (22:33 +1000)]
mesa: don't crash on incorrect texture use
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4995
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11603>
Timothy Arceri [Mon, 28 Jun 2021 10:31:46 +0000 (20:31 +1000)]
util/tests: initialise key in cache_test
Fixes:
e8495646afb0 ("glsl/tests: changes to test_disk_cache_create test")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2631
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11623>
Yiwei Zhang [Fri, 18 Jun 2021 21:45:28 +0000 (21:45 +0000)]
venus: resolve AHB external format with DRM format
AHardwareBuffer_Format is lossier than DRM_FORMAT_*, which ends up with
unable to resolve implementation defined format upon creating sampler
ycbcr conversion. So we now use DRM format as AHB external format.
An external format error return in vkCreateSamplerYcbcrConversion is
also removed here since that is already an invalid usage per spec
(partly because there is no proper error code to return here).
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Chia-I Wu <olvaffe@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11480>
Yiwei Zhang [Sat, 19 Jun 2021 05:30:43 +0000 (05:30 +0000)]
venus: remove unsupported AHB formats
Likely not going to support them either.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Chia-I Wu <olvaffe@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11480>
Yiwei Zhang [Thu, 17 Jun 2021 22:03:02 +0000 (22:03 +0000)]
venus: use the mesa "drm-uapi/drm_fourcc.h" header
Prepare for later CI integration.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Chia-I Wu <olvaffe@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11480>
Emma Anholt [Mon, 28 Jun 2021 03:30:27 +0000 (20:30 -0700)]
i915g: Fix off-by-one in constant count assertion.
You can have up to C[31].
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11617>
Emma Anholt [Sun, 27 Jun 2021 22:00:59 +0000 (15:00 -0700)]
i915g: Mark program errors on setting up temps, constants, and immediates.
We would proceed through the compiler, and usually fail for some other
reason (ALU ops, etc.), but best to be sure.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11617>
Emma Anholt [Sun, 27 Jun 2021 21:51:53 +0000 (14:51 -0700)]
i915g: Remove redundant p->error setting.
i915_program_error() already does it.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11617>
Emma Anholt [Sun, 27 Jun 2021 21:47:02 +0000 (14:47 -0700)]
i915g: Use stdbool.h instead of custom bools.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11617>
Emma Anholt [Sun, 27 Jun 2021 21:43:58 +0000 (14:43 -0700)]
i915g: replace "uint" with normal uint32_t.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11617>
Emma Anholt [Sun, 27 Jun 2021 21:35:32 +0000 (14:35 -0700)]
i915g: Improve logging of unsupported opcodes.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11617>
Emma Anholt [Sun, 27 Jun 2021 21:36:46 +0000 (14:36 -0700)]
i915g: Stop translating the fragment program on the first error.
It would proceed through printing errors for each of the unsupported loop
opcodes in the program.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11617>
Emma Anholt [Sun, 27 Jun 2021 21:15:41 +0000 (14:15 -0700)]
i915g: Log program compile errors to mesa_loge().
Now these major driver failures are no longer hidden under -DDEBUG, and
would also work on android (you know, if you cared). We do want to
suppress logging for u_blitter shaders that fail to compile during
util_blitter_cache_all_shaders().
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11617>
Emma Anholt [Sun, 27 Jun 2021 21:10:47 +0000 (14:10 -0700)]
i915g: Use the normal compile error path for empty FSes.
This means they'll get dumped and you'll see the passthrough FS.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11617>
Emma Anholt [Sun, 27 Jun 2021 20:47:51 +0000 (13:47 -0700)]
i915g: Enable dumping of fragment shaders under I915_DEBUG=fs.
Probably the most common thing I want to debug in this driver, and we
didn't have a good option for it.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11617>
Emma Anholt [Sun, 27 Jun 2021 20:46:24 +0000 (13:46 -0700)]
i915g: Allow use of I915_DEBUG= options on non-DEBUG builds.
All the checks should be cheap, no need making things harder to debug.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11617>
Emma Anholt [Sun, 27 Jun 2021 04:31:00 +0000 (21:31 -0700)]
i915g: Bake the decls and program together.
Simplifies program upload a bunch, and will let us disasm the program
independently of the whole cmd buffer.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11617>
Emma Anholt [Fri, 25 Jun 2021 16:53:33 +0000 (09:53 -0700)]
i915g: Apply clang-format.
Add the format file copied from freedreno, and run clang-format
--style=file -i src/gallium/drivers/i915/*.[ch] (with clang-format 11).
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11617>
Yiwei Zhang [Sun, 20 Jun 2021 17:05:41 +0000 (17:05 +0000)]
venus: properly support GPU_DATA_BUFFER for AHB
CrOS gralloc was missing support for GPU_DATA_BUFFER, which was only
fixed until recently. Now we can allcate properly.
This patch also removes a redundant TODO regarding image format list
support for AHB. vkGetPhysicalDeviceImageFormatProperties2 has already
checked the support for such though it only checks whether the optimal
tiling and the associated drm format modifier for the AHB image format
itself applies to the entire format list or not. Given the use case for
such combination is quite limited, we choose not to add new gralloc
support to force linear modifier as a fallback for wider coverage.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Chia-I Wu <olvaffe@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11501>
Eleni Maria Stea [Mon, 7 Jun 2021 06:22:20 +0000 (09:22 +0300)]
intel: PAGE_SIZE used in allocators shouldn't be defined on FreeBSD
iris, i965, and anv define the PAGE_SIZE in anv_allocator and bufmgr
files. As on FreeBSD the page size is defined in machine/param.h that is
indirectly included by those files, we'd rather define it only when the
system is not FreeBSD to avoid compile errors.
v2: Changed the path in the comment to make clear that machine/params.h
is a FreeBSD system file.
Signed-off-by: Eleni Maria Stea <elene.mst@gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11203>
Eleni Maria Stea [Sun, 27 Jun 2021 11:31:08 +0000 (14:31 +0300)]
intel: struct bitset is renamed to brw_bitset
Static struct bitset was renamed to brw_bitset as a struct bitset
is defined in sys/_bitset.h included by pthread_np.h on FreeBSD that
is indirectly included by src/intel/compiler/brw_nir_lower_shader_calls.c
Signed-off-by: Eleni Maria Stea <elene.mst@gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11203>
Eleni Maria Stea [Mon, 7 Jun 2021 06:13:34 +0000 (09:13 +0300)]
util: Removed unused statement from FreeBSD build
Statement (void*)debug_name when FreeBSD is defined has no use. Removed
it to fix compiler warnings.
Signed-off-by: Eleni Maria Stea <elene.mst@gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11203>
Eleni Maria Stea [Mon, 7 Jun 2021 06:10:30 +0000 (09:10 +0300)]
util: replaced ENODATA with ENOATTR for non-Linux systems
On Linux ENODATA is defined but on BSD, and MacOSX ENOATTR is used
instead. Defined ENODATA to be ENOATTR when the system is not Linux.
v2: Replaced ENODATA and ENOATTR with -EFAULT that is exists everywhere
and added a comment (Ian Romanick)
Signed-off-by: Eleni Maria Stea <elene.mst@gmail.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11203>
Mike Blumenkrantz [Fri, 25 Jun 2021 14:45:31 +0000 (10:45 -0400)]
util/vbuf: flag fallback_always if any prim types are missing from restart modes
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11608>
Mike Blumenkrantz [Fri, 25 Jun 2021 14:44:25 +0000 (10:44 -0400)]
util/vbuf: always claim support for PATCHES in restart modes
this avoids forcing rewrites for patch mode which break tessellation
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11608>
Emma Anholt [Fri, 25 Jun 2021 21:02:07 +0000 (14:02 -0700)]
turnip: Short-circuit if ladder generation for constant index SSBO/UBOs.
The compiler *can* eventually chew through all the copy prop, constant
folding, and dead_cf necessary to use just our constant index, but we can
save a whole lot of hassle by chasing the MOVs up front and finding the
constant.
dEQP-VK.ubo.3_level_array.scalar.row_major_mat4.both goes from 2.0s to
1.6s on a release build (3.1s to 2.1s for a debug build like we use in CI).
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11613>
Emma Anholt [Fri, 25 Jun 2021 20:58:04 +0000 (13:58 -0700)]
nir: Add a helper for chasing movs with nir_ssa_scalar().
Sometimes you might want to find a constant source without going through
all the copy prop and constant folding to make your source be a
load_const.
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11613>
Connor Abbott [Tue, 1 Jun 2021 16:18:14 +0000 (18:18 +0200)]
ir3/sched: Speed up live_effect
If we've identified another use that isn't scheduled yet, we can break
right away rather than iterating through all the other uses. While this
could be optimized further, this simple change makes
dEQP-VK.subgroups.ballot_broadcast.compute.subgroupbroadcast_ivec4 go
from 40 seconds to 1.9 seconds on a release build according to my
unscientific testing.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11613>
Connor Abbott [Mon, 28 Jun 2021 08:48:53 +0000 (10:48 +0200)]
freedreno/computerator: Fix local_size typo
Fixes:
cbc68c79a51 ("freedreno: Add local_size to ir3_shader_variant")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11622>
Rhys Perry [Tue, 15 Jun 2021 16:50:57 +0000 (17:50 +0100)]
nir/opt_load_store_vectorize: fix check_for_robustness() with deref access
We could do better if we knew the nir_address_format to obtain
addition_bits, but the only affected driver (Turnip) probably won't
benefit because it doesn't vectorize across vec4.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Fixes:
2e7bceb2204 ("nir/load_store_vectorizer: fix check_for_robustness() with indirect loads")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4922
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11382>
Ella-0 [Sun, 27 Jun 2021 19:29:08 +0000 (19:29 +0000)]
anv: expose primary node to VK_EXT_physical_device_drm even when VK_KHR_display is not enabled
Fixes:
e9e1e0362b6c2d ("anv: implement VK_EXT_physical_device_drm")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11616>
Marek Olšák [Tue, 1 Jun 2021 05:40:37 +0000 (01:40 -0400)]
radeonsi: move the accepting code into the bbox cull branch in prim discard CS
This reduces the number of jumps. No change in behavior.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11510>
Marek Olšák [Tue, 1 Jun 2021 01:59:28 +0000 (21:59 -0400)]
radeonsi: add optimal multi draws and draw-level splitting for prim discard CS
This is a partial rewrite of some parts of the code.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11510>
Marek Olšák [Tue, 1 Jun 2021 01:58:37 +0000 (21:58 -0400)]
radeonsi: fix issues with draw-level splitting for the prim discard CS
- move the unreachable statement up by inlining u_decomposed_prims_for_vertices
- the last draw was not submitted after splitting
- move "count" to the non-multi draw path
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11510>
Marek Olšák [Tue, 1 Jun 2021 01:48:28 +0000 (21:48 -0400)]
radeonsi: change how the prim discard CS is enabled and splitting limits
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11510>
Marek Olšák [Mon, 31 May 2021 01:28:53 +0000 (21:28 -0400)]
radeonsi: remove the GDS variants of compute-based primitive discard
The GDS ordered append variant is unstable due to kernel and firmware bugs.
The unordered GDS variant isn't faster than the memory-based variant.
Only the memory-based variant is kept.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11510>