Erik Faye-Lund [Wed, 2 Nov 2022 19:39:05 +0000 (20:39 +0100)]
docs/zink: fix and cleanup rst syntax
This new section didn't use the correct RST syntax, and ended up
with a broken section in the rendered docs.
Fix the syntax, and clean things up a bit to avoid overly long lines.
Fixes:
be235edfe2b ("zink: add profile documentation")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19481>
(cherry picked from commit
6b3b6333915e8ca64c531a4decb79c0256e1e4f2)
Francisco Jerez [Fri, 28 Oct 2022 23:27:17 +0000 (16:27 -0700)]
nir/lower_int64: Fix float16 to int64 conversions.
Currently float16 to int64 conversions don't work correctly, because
the "div" variable has an infinite value, since 2^32 isn't
representable as a 16-bit float, which causes the result of of rem(x,
div) to be NaN for all inputs, leading to an incorrect result. Since
no values of magnitude greater than 2^32 are representable as a
float16 we don't actually need to do the fdiv/frem operations, the
conversion is equivalent to f2u32 with the result padded to 64 bits.
Rework:
* Jordan: Handle f16 in if/else rather than conditional
Fixes:
936c58c8fcc ("nir: Extend nir_lower_int64() to support i2f/f2i lowering")
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19391>
(cherry picked from commit
e14f85366ebbc57f45d2561e0d3f0804f8adb549)
Marek Olšák [Wed, 2 Nov 2022 18:34:58 +0000 (14:34 -0400)]
radeonsi/gfx11: fix compute scratch buffer - WAVES is always per SE
Fixes:
ba02ed91a60 - ac/gfx11: fix the scratch buffer
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19477>
(cherry picked from commit
bdfacd0a24e023515fb7b7fae4a279cff0fbac4e)
Konstantin Seurer [Fri, 4 Nov 2022 19:57:57 +0000 (20:57 +0100)]
radv/rt: Restore prev barycentrics when rejecting hits
Closes: #6348
cc: mesa-stable
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19534>
(cherry picked from commit
e5b3efe5825aec5c9163fa0d9b20418d2876fdd2)
Alex Brachet [Tue, 19 Jul 2022 19:54:04 +0000 (19:54 +0000)]
nir: Fix qsort comparator function
`pred` is a pointer, for sufficiently large numbers these
being cast to int were both > 0 regardless of the order
of `data1` and `data2`.
Fixes:
523a28d3fe0d ("nir: add an instruction set API")
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19539>
(cherry picked from commit
c987a727a76eda1feada07e2eca6a5597dbddd93)
Samuel Pitoiset [Wed, 2 Nov 2022 10:27:13 +0000 (11:27 +0100)]
radv: invalidate L2 instead of only writeback L2 when using DCC stores
It seems INV_L2 is the right thing to do, especially for RDNA2 chips
with non-coherent RBs (NAVI22 is one of these). This fixes DCC
corruption.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6476
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7507
Cc: mesa-stable
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/19516>
(cherry picked from commit
06adf6ad117e92a832c5073326bd83b638b3ca37)
Samuel Pitoiset [Wed, 2 Nov 2022 12:53:58 +0000 (13:53 +0100)]
radv: make the GDS/GDS OA buffer objects resident
GDS is used for NGG queries/streamout (GFX10+ only) and the BOs were
only added to the graphics queue because compute doesn't need them.
Though, the kernel emits a GDS switch when a queue submission doesn't
use GDS. That means that submitting jobs on the compute queue without
GDS can reset the state of the graphics queue and lead to GPU hangs.
The only viable solution for now is to make the GDS BOs resident to
avoid resetting the state between queues. This shouldn't introduce
more syncs between queues because GDS BOs are similar for both.
This fixes a GPU hang with Warhammer Chaosbane during loading time and
possibly some spurious random GPU hangs. Note that this GPU hang was
workarounded on the Steam side with RADV_DEBUG=nongg.
Cc: mesa-stable
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/19466>
(cherry picked from commit
26c8fedc1bb12fa8f3d6c646308f4b46756d77c7)
Martin Roukala (né Peres) [Fri, 4 Nov 2022 07:02:06 +0000 (09:02 +0200)]
zink/ci: add another subtest to the list of known failures for radv
This test as a whole does not seem to work anywhere, even lavapipe, but
one particular subtest was passing until a recent change
(!19438 - zink: polygon mode fixes?).
After consideration by @kusma, it appears that the subtest was passing
by accident due to zink generating the wrong values. Given that this is
not something that users would ever experience as a regression, we
simply document this new failure along with all the others for this
test.
Fixes:
53721827ea1c ("zink: correct depth-bias enable condition")
Signed-off-by: Martin Roukala (né Peres) <martin.roukala@mupuf.org>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19517>
(cherry picked from commit
d7ad9e701424e4b100e11f08f2fa416b228b19d3)
Iago Toral Quiroga [Fri, 4 Nov 2022 08:17:08 +0000 (09:17 +0100)]
v3dv: use vk_alloc instead of malloc
Fixes:
e6884df088 ('v3dv: fix event synchronization')
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19518>
(cherry picked from commit
22789d34be0fb6d81012e2e4d53b738384eb98db)
Iago Toral Quiroga [Fri, 4 Nov 2022 08:01:01 +0000 (09:01 +0100)]
v3dv: vkCmdWaitEvents2 takes an array of VkDependencyInfo
We have been incorrectly assuming there was just one for all the
events, apparently CTS never uses more than one event.
Fixes:
e6884df088 ('v3dv: fix event synchronization')
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19518>
(cherry picked from commit
36ef75b6eb924cf5ebfb09834067d2519d080ca8)
Martin Roukala (né Peres) [Wed, 2 Nov 2022 13:41:46 +0000 (15:41 +0200)]
zink/ci: mark another test as fixed after the frontend caching series
Just like on Lavapipe, Emma Anholt's !19124 also fixed the
restore-sso-program test on RADV.
Fixes:
4e14da056d62 ("zink: Enable mesa/st frontend shader caching.")
Signed-off-by: Martin Roukala (né Peres) <martin.roukala@mupuf.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19468>
(cherry picked from commit
dc08875415064033ea1e344a522273bc1255a3b8)
Samuel Pitoiset [Thu, 3 Nov 2022 02:56:00 +0000 (02:56 +0000)]
radv: fix setting MIN_LOD for texture descriptors on GFX11
Found by inspection because the MIN_LOD bits were moved.
Cc: 22.3 mesa-stable
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/19496>
(cherry picked from commit
e891e84f4be6271cf34f62768b085ee99b6db86c)
Mauro Rossi [Tue, 1 Nov 2022 14:34:22 +0000 (15:34 +0100)]
hasvk: fix android build and reported API version
anv_device.c for vulkan.intel_hasvk requires changes to be compiled
and behave correctly for android target
Fixes the following building error:
FAILED: src/intel/vulkan_hasvk/libanv_hasvk_common.a.p/anv_device.c.o
...
../src/intel/vulkan_hasvk/anv_device.c:143:19: error: use of undeclared identifier 'ANV_API_VERSION_1_3'
*pApiVersion = ANV_API_VERSION_1_3;
^
../src/intel/vulkan_hasvk/anv_device.c:1822:44: error: use of undeclared identifier 'ANV_API_VERSION_1_3'
.apiVersion = pdevice->use_softpin ? ANV_API_VERSION_1_3 : ANV_API_VERSION_1_2,
^
../src/intel/vulkan_hasvk/anv_device.c:1822:66: error: use of undeclared identifier 'ANV_API_VERSION_1_2'
.apiVersion = pdevice->use_softpin ? ANV_API_VERSION_1_3 : ANV_API_VERSION_1_2,
^
3 errors generated.
Cc: "22.3" mesa-stable
Fixes: 00eefdc ("hasvk: stop advertising Vk 1.3 on non-softpin")
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19452>
(cherry picked from commit
814b822fe065ab88409a2833b1c7f331f714b26e)
Friedrich Vock [Wed, 2 Nov 2022 18:52:09 +0000 (19:52 +0100)]
radv: Use spirv1.5 instead of vulkan1.2
Ubuntu 20.04 ships a glslangValidator that doesn't know about vulkan1.2 yet.
Fixes:
27186537 ("radv: Add PLOC shader")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19479>
(cherry picked from commit
95ed0330667f726474d24d8c56e478e346622b0b)
Connor Abbott [Mon, 10 Oct 2022 20:19:39 +0000 (22:19 +0200)]
tu: tu: Clear patchControlPoints dirty state with static patchControlPoints
Noticed by inspection after the previous issue.
Fixes:
68f3c38c801 ("tu: Implement extendedDynamicState2PatchControlPoints")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18912>
(cherry picked from commit
4466f9aa02dec99c6879e5e357788843c3b573e5)
Iago Toral Quiroga [Thu, 3 Nov 2022 08:15:20 +0000 (09:15 +0100)]
v3dv: fix event synchronization
Since we now implement events in the GPU we need to be more careful
and insert barriers to honor the dependencies provided by the API
as well as ensuring we are synchronizing these with the compute
queue, since that is how we implement GPU event functionality.
Fixes:
ecb01d53fdb413121ce2 ("v3dv: refactor events")
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19458>
(cherry picked from commit
e6884df088a1e172cd87956fe9afdac63069eb2c)
Iago Toral Quiroga [Thu, 3 Nov 2022 08:14:51 +0000 (09:14 +0100)]
v3dv: make the helper to emit pipeline barriers public to other files
Fixes:
ecb01d53fdb413121ce2 ("v3dv: refactor events")
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19458>
(cherry picked from commit
8113f973b3946e465d508627a4796d94cec1f1d8)
Iago Toral Quiroga [Wed, 2 Nov 2022 13:20:29 +0000 (14:20 +0100)]
v3dv: always check VK_ACCESS_2_MEMORY_READ_BIT for read accesses
Fixes:
a981ac053964 ('v3dv: skip binning sync if binning shaders don't access external resources')
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19458>
(cherry picked from commit
67e82fd1f2c334da2e888553967ebae04c08146a)
Iago Toral Quiroga [Wed, 2 Nov 2022 09:53:59 +0000 (10:53 +0100)]
v3dv: increase limit for active event objects
Fixes:
ecb01d53fdb413121ce2 ("v3dv: refactor events")
Fixes: dEQP-VK.api.command_buffers.execute_large_primary
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19458>
(cherry picked from commit
4c861cf22a63b892cec74bc132313dcd17d77584)
Iago Toral Quiroga [Thu, 3 Nov 2022 10:28:12 +0000 (11:28 +0100)]
v3dv: do better cleanup on failure during pipeline cache operation
Fixes (with disk cache enabled):
dEQP-VK.api.device_init.create_instance_device_intentional_alloc_fail.basic
dEQP-VK.api.object_management.alloc_callback_fail.device
dEQP-VK.api.object_management.alloc_callback_fail.device_group
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19458>
(cherry picked from commit
5e97150e21a75920c3521717f70f9f92702729b4)
Iago Toral Quiroga [Wed, 2 Nov 2022 07:53:12 +0000 (08:53 +0100)]
v3dv: handle allocation failure during pipeline initialization
Fixes (with disk cache disabled):
dEQP-VK.api.device_init.create_instance_device_intentional_alloc_fail.basic
dEQP-VK.api.object_management.alloc_callback_fail.device
dEQP-VK.api.object_management.alloc_callback_fail.device_group
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19458>
(cherry picked from commit
1f5966397aa208eb574394a4d0a592b66b776b44)
Iago Toral Quiroga [Wed, 2 Nov 2022 07:51:23 +0000 (08:51 +0100)]
v3dv: fix incorrect return type
Fixes:
ecb01d53fdb413121ce2 ("v3dv: refactor events")
Partially fixes:
dEQP-VK.api.device_init.create_instance_device_intentional_alloc_fail.basic
dEQP-VK.api.object_management.alloc_callback_fail.device
dEQP-VK.api.object_management.alloc_callback_fail.device_group
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19458>
(cherry picked from commit
7f905a8117e9dc85088fe23429594537ee240c1e)
Iago Toral Quiroga [Wed, 2 Nov 2022 07:50:24 +0000 (08:50 +0100)]
v3dv: do a better job at cleaning up the device on init failure
These leaks on device creation failure have been there before, but
were only exposed as CTS failures after the recent event refactoring.
Partially fixes:
dEQP-VK.api.device_init.create_instance_device_intentional_alloc_fail.basic
dEQP-VK.api.object_management.alloc_callback_fail.device
dEQP-VK.api.object_management.alloc_callback_fail.device_group
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19458>
(cherry picked from commit
b78fd50e90c700466213e4b3b40ce10547b1e14e)
Eric Engestrom [Mon, 31 Oct 2022 18:38:25 +0000 (18:38 +0000)]
v3dv: avoid freeing already-freed memory
Fixes:
ecb01d53fdb413121ce2 ("v3dv: refactor events")
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19458>
(cherry picked from commit
aff368fe83bd4bcb4620a1a19e9b71eb67a05af7)
Iago Toral Quiroga [Wed, 2 Nov 2022 07:49:37 +0000 (08:49 +0100)]
v3dv: remove unnecessary check for NULL
We are initializing the device, so we know this will be NULL.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19458>
(cherry picked from commit
c793d384c12ebaa13487aeee35532e52b888c049)
Eric Engestrom [Mon, 31 Oct 2022 18:39:43 +0000 (18:39 +0000)]
vk/runtime: drop incorrect UNUSED annotation
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19458>
(cherry picked from commit
c6c5949ff70a47c47795fe9161a7514173b5be24)
Samuel Pitoiset [Thu, 3 Nov 2022 08:53:40 +0000 (09:53 +0100)]
radv: fix fallback for extreme geometry with tessellation on GFX11
It would assert anyways. Found by inspection.
Cc: 22.3 mesa-stable
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/19495>
(cherry picked from commit
fab87b0f4115bd360ed9334aa7a72518613c2014)
Lionel Landwerlin [Mon, 24 Oct 2022 18:29:04 +0000 (21:29 +0300)]
anv: Reduce RHWO optimization (Wa_1508744258)
Implement Wa_1508744258:
Disable RHWO by setting 0x7010[14] by default except during resolve
pass.
Disable the RCC RHWO optimization at all times except when resolving
single sampled color surfaces.
v2: Move stalling to genX(cmd_buffer_apply_pipe_flushes) for clarity (Mark)
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Mark Janes <markjanes@swizzler.org>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19450>
(cherry picked from commit
ba0336ab3f69f958e4346c1465c2fe0859d4ac59)
Bas Nieuwenhuizen [Sun, 30 Oct 2022 22:33:34 +0000 (23:33 +0100)]
radv: Make the compute scratch waves per SE as well.
Fixes:
278e533ec9c ("radv: update scratch buffer registers on GFX11")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19488>
(cherry picked from commit
d876ddc920f1aaf48219f2060de6cc99c003bc5d)
Bas Nieuwenhuizen [Sun, 30 Oct 2022 22:29:53 +0000 (23:29 +0100)]
radv: Fix compute scratch buffer emission.
Copied wrong from radeonsi. The registers following the scratch
buffer address are the shader rsrc1/rsrc2. Not the user SGPR0
containing the ring resource word 1.
Fixes:
278e533ec9c ("radv: update scratch buffer registers on GFX11")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19488>
(cherry picked from commit
b8865ad04643cd7e8faa8a863d81fedbc1e29231)
Karol Herbst [Sat, 17 Sep 2022 17:59:56 +0000 (19:59 +0200)]
iris: invalidate sysvals if grid dimension changes
Cc: mesa-stable
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Reviewed-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18581>
(cherry picked from commit
9ccdd86b9040b265893712f4125d30552e0fe1cd)
Yonggang Luo [Wed, 2 Nov 2022 21:19:29 +0000 (05:19 +0800)]
glx: Fixes apple/apple_visual.c that include non-exist util/debug.h
Fixes:
aa4ac5ff8bb ("utils: Merge util/debug.* into util/u_debug.* and remove util/debug.*")
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Reviewed-by: Illia Abernikhin <illia.abernikhin@globallogic.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19486>
(cherry picked from commit
287435134c6685a71f5c247778017c8b66a93627)
Alyssa Rosenzweig [Sat, 29 Oct 2022 18:42:36 +0000 (14:42 -0400)]
panfrost: Replace resource shadowing flush
The entire point of resource shadowing is to avoid unnecessary flushing.
Flushing readers after shadowing is counterproductive. A refresher on
how resource shadowing is supposed to work:
First, we determine if it's beneficial to shadow resources. If so, we
create a new backing buffer object. We flush the current writer of the
resource, if there is one, so the current contents become known to the
CPU. If we are not discarding the original resource, we then copy the
existing contents of the buffer to the new shadow buffer on the CPU.
Finally, we swap the resource's backing buffer for our shadow. Any batch
that reads the resource will continue to read the old copy of the
resource, and any future draw calls will see the new copy with the
change implemented.
Where did we go wrong?
In
988d5aae74d ("panfrost: Flush resources when shadowing"), we started
flushing all readers. We didn't actually need to flush, we just needed
to avoid dangling references on the batches reading the old copy of the
resource. But that's easily enough avoided: just remove the references.
The batches still hold a reference to the underlying BO, which will be
freed at the right time regardless.
Originally motivated by glmark2 -bbuffer:update-method=subdata, which
has some pathological access paterns.
Firefox is a lot faster anecdotally (now scrolling at 60fps in firefox).
But what actually motivated this is an apitrace from Duckstation's GLES
renderer. With this patch, the in-game portion is improved 3fps to 21fps.
Closes: #4028
Fixes:
988d5aae74d ("panfrost: Flush resources when shadowing")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19361>
(cherry picked from commit
2d8f28df731638e1270b0ae273c7bfd2b29b7993)
Alyssa Rosenzweig [Wed, 2 Nov 2022 17:43:11 +0000 (13:43 -0400)]
panfrost: Don't copy resources if replaced
If a synchronized transfer_map is going to overwrite an entire resource,
there's no need to memcpy in the original contents ahead-of-time. This
memcpy is particularly bad for large buffers where it's copying WC->WC,
although that could be mitigated with threaded_context's cpu_storage in
the future if needed.
Prevents a performance regression in glmark2's buffer scenes from the
next patch, hence the Cc.
Cc: mesa-stable
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19361>
(cherry picked from commit
0b26a9f773956fc00a77b0d4a7aafee5795ce935)
Eric Engestrom [Wed, 2 Nov 2022 21:38:53 +0000 (21:38 +0000)]
zink: add missing build_id linker args
Fixes:
4e14da056d623ababf7c ("zink: Enable mesa/st frontend shader caching.")
Signed-off-by: Eric Engestrom <eric@igalia.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19485>
(cherry picked from commit
dfa8600a2d39aabc88e5a5b87ab86b2b0ea30191)
Eric Engestrom [Thu, 3 Nov 2022 14:27:09 +0000 (14:27 +0000)]
Eric Engestrom [Wed, 2 Nov 2022 19:44:42 +0000 (19:44 +0000)]
VERSION: bump to 22.3.0-rc1
Christian Gmeiner [Sat, 2 Jul 2022 11:59:18 +0000 (13:59 +0200)]
Revert "etnaviv: completely turn off MSAA"
This reverts commit
044b238507bb54ff8b6129c9754f1efc0f0834b9 and extends it with
- putting the comments directly in front of the if's
- do not support 2x MSAA on SMALL_MSAA hardware
- checking if blt/rs supports the format
MSAA should work as expected now. Tested with kmscube and qt5.
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19013>
Christian Gmeiner [Sat, 13 Aug 2022 18:03:23 +0000 (20:03 +0200)]
etnaviv: blt: Directly call etna_try_blt_blit(..)
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19013>
Christian Gmeiner [Sat, 13 Aug 2022 17:55:03 +0000 (19:55 +0200)]
etnaviv: blt: Add color resolve support
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19013>
Christian Gmeiner [Fri, 7 Oct 2022 06:19:27 +0000 (08:19 +0200)]
etnaviv: Update headers from rnndb
Update to rnndb commit
fff078b61ceb.
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19013>
Christian Gmeiner [Thu, 11 Aug 2022 14:27:30 +0000 (16:27 +0200)]
etnaviv: rs: msaa: Set cache mode for SMALL_MSAA
If the GPU supports SMALL_MSAA and does not support CACHE128B256BPERLINE we
need to set the cache mode to CACHE_MODE_256B.
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19013>
Christian Gmeiner [Thu, 14 Jul 2022 19:45:44 +0000 (21:45 +0200)]
etnaviv: rs: Directly call etna_try_rs_blit(..)
Also remove some old comments.
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19013>
Christian Gmeiner [Sun, 17 Nov 2019 19:37:40 +0000 (20:37 +0100)]
etnaviv: rs: Color resolve works
No special treatment is needed and is helps MSAA.
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19013>
Gert Wollny [Sun, 3 Jul 2022 05:37:06 +0000 (07:37 +0200)]
etnaviv: Create MSAA surfaces with PE compatible tiling
MSAA surfaces are always used for rendering, and only as blit sources,
so the need to be allocated with PE compatible tiling.
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19013>
Christian Gmeiner [Tue, 5 Jul 2022 12:12:57 +0000 (14:12 +0200)]
etnaviv: Remove possibility to force MSAA
st/mesa does not know anything about the forced MSAA and we end with
the following assert:
etna_try_rs_blit: Assertion `(blit_info->src.box.x + blit_info->src.box.width) * msaa_xscale <= src_lev->padded_width' failed
Let the application do its thing regarding MSAA and remove this 'debug'
feature.
Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19013>
Jesse Natalie [Fri, 21 Oct 2022 22:57:49 +0000 (15:57 -0700)]
d3d12: Hook up driver-private interop data
Reviewed-by: Adam Jackson <ajax@redhat.com>
Acked-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19242>
Jesse Natalie [Fri, 21 Oct 2022 22:30:54 +0000 (15:30 -0700)]
mesa/st: Query driver for interop data
Reviewed-by: Adam Jackson <ajax@redhat.com>
Acked-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19242>
Jesse Natalie [Fri, 21 Oct 2022 22:30:25 +0000 (15:30 -0700)]
gallium: Add screen methods for driver-private data on interop interface
Reviewed-by: Adam Jackson <ajax@redhat.com>
Acked-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19242>
Jesse Natalie [Fri, 21 Oct 2022 22:15:30 +0000 (15:15 -0700)]
include: Add driver data to v2 of mesa_glinterop_device_info
Reviewed-by: Adam Jackson <ajax@redhat.com>
Acked-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19242>
Jesse Natalie [Fri, 21 Oct 2022 21:52:41 +0000 (14:52 -0700)]
egl/wgl: Implement interop methods
Reviewed-by: Adam Jackson <ajax@redhat.com>
Acked-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19242>
Jesse Natalie [Fri, 21 Oct 2022 21:48:27 +0000 (14:48 -0700)]
wgl: Implement interop methods
Reviewed-by: Adam Jackson <ajax@redhat.com>
Acked-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19242>
Jesse Natalie [Fri, 21 Oct 2022 21:09:39 +0000 (14:09 -0700)]
egl/dri2: Implement the new flush method
Reviewed-by: Adam Jackson <ajax@redhat.com>
Acked-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19242>
Jesse Natalie [Fri, 21 Oct 2022 21:04:47 +0000 (14:04 -0700)]
glx: Implement the new flush method
Reviewed-by: Adam Jackson <ajax@redhat.com>
Acked-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19242>
Jesse Natalie [Fri, 21 Oct 2022 21:28:44 +0000 (14:28 -0700)]
dri: Implement the new flush method
Reviewed-by: Adam Jackson <ajax@redhat.com>
Acked-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19242>
Jesse Natalie [Thu, 27 Oct 2022 23:46:26 +0000 (16:46 -0700)]
mesa/st: Implement the new flush method
Reviewed-by: Adam Jackson <ajax@redhat.com>
Acked-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19242>
Jesse Natalie [Thu, 27 Oct 2022 23:46:10 +0000 (16:46 -0700)]
mesa/st: Split interop object lookup from export
Reviewed-by: Adam Jackson <ajax@redhat.com>
Acked-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19242>
Jesse Natalie [Fri, 21 Oct 2022 21:25:51 +0000 (14:25 -0700)]
mesa: Make fence_sync not static
Reviewed-by: Adam Jackson <ajax@redhat.com>
Acked-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19242>
Jesse Natalie [Fri, 21 Oct 2022 22:14:30 +0000 (15:14 -0700)]
include: Add a flush interop method
Reviewed-by: Adam Jackson <ajax@redhat.com>
Acked-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19242>
Jesse Natalie [Fri, 21 Oct 2022 19:02:04 +0000 (12:02 -0700)]
mesa, dri2: Move interop helpers from dri2 to state tracker
They're not at all dri2 specific and we'll want to use them from wgl.
Reviewed-by: Adam Jackson <ajax@redhat.com>
Acked-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19242>
Jesse Natalie [Fri, 21 Oct 2022 19:03:36 +0000 (12:03 -0700)]
include: Add WGL version of GL interop extensions
Reviewed-by: Adam Jackson <ajax@redhat.com>
Acked-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19242>
Alyssa Rosenzweig [Wed, 2 Nov 2022 17:10:25 +0000 (13:10 -0400)]
docs/new_features: Add Panfrost disk cache
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Acked-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19474>
Rhys Perry [Thu, 13 Oct 2022 17:40:15 +0000 (18:40 +0100)]
radeonsi: increase gfx1100/gfx1101 physical vgprs
https://reviews.llvm.org/D134522
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18825>
Rhys Perry [Mon, 26 Sep 2022 16:18:48 +0000 (17:18 +0100)]
aco/gfx11: increase gfx1100/gfx1101 physical vgprs
https://reviews.llvm.org/D134522
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18825>
Rhys Perry [Mon, 26 Sep 2022 18:12:41 +0000 (19:12 +0100)]
ac/gpu_info: increase gfx1100/gfx1101 physical vgprs
https://reviews.llvm.org/D134522
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18825>
Rhys Perry [Mon, 26 Sep 2022 18:12:19 +0000 (19:12 +0100)]
radv: increase gfx1100/gfx1101 physical vgprs
https://reviews.llvm.org/D134522
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18825>
Alyssa Rosenzweig [Fri, 14 Oct 2022 16:32:26 +0000 (12:32 -0400)]
panfrost: Implement a disk cache
Wire up the Mesa shader disk cache into Panfrost. Coupled with the
precompiles from the previous patch, this should greatly reduce shader
recompile jank.
This is a bare bones implementation. Obvious future work includes:
- Caching internal (outside of Gallium) shaders
- Implement finalize_nir to reduce on disk size of shaders
That doesn't need to come in this patch.
This patch does shuffle some allocation patterns around to avoid extra
nir_shader_clones, but the result should be pretty clean.
---
Consider dEQP-GLES31.functional.ssbo.layout.basic_unsized_array.* in the CTS.
With a cold cache:
44.11user 0.66system 0:45.44elapsed 98%CPU (0avgtext+0avgdata 267804maxresident)
k 0inputs+0outputs (130major+74725minor)pagefaults 0swaps
But with this commit and a warm cache:
4.07user 0.35system 0:04.56elapsed 96%CPU (0avgtext+0avgdata 211012maxresident)
k0inputs+0outputs (1major+49489minor)pagefaults 0swaps
That's an 11x improvement!
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19363>
Alyssa Rosenzweig [Fri, 14 Oct 2022 21:14:46 +0000 (17:14 -0400)]
panfrost: Precompile shaders
We have no vertex shader key, and unless legacy GL features are used, the
fragment shader key is known ahead-of-time. That means we can precompile shaders
at CSO create time, hopefully avoiding some draw-time jank.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19363>
Alyssa Rosenzweig [Fri, 14 Oct 2022 21:03:36 +0000 (17:03 -0400)]
panfrost: Precompile transform feedback program
This avoids the weird compiled_shader pointer inside of compiled_shader. Because
we don't have a nonempty vertex shader key, there will only ever be a single
transform feedback program per CSO.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19363>
Alyssa Rosenzweig [Fri, 14 Oct 2022 20:53:52 +0000 (16:53 -0400)]
panfrost: Make fixed_varying_mask a fragment-only key
This makes it clear that there are no VS variants.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19363>
Alyssa Rosenzweig [Fri, 14 Oct 2022 20:10:26 +0000 (16:10 -0400)]
panfrost: Use u_dynarray for variants
No need to open code our own "special" dynarray. Unify the graphics/compute CSO
creation to make this work without duplicating more code.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19363>
Alyssa Rosenzweig [Fri, 14 Oct 2022 19:44:48 +0000 (15:44 -0400)]
panfrost: Remove uncompiled_shader->active_variant
The active compiled shader (variant) is context state, it is inappropriate to
stash it on the uncompiled shader. Add compiled shader pointers to the context
and get rid of the active_variant mutation. Names from iris.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19363>
Alyssa Rosenzweig [Fri, 14 Oct 2022 19:34:37 +0000 (15:34 -0400)]
panfrost: Rename structs to panfrost_(un)compiled_shader
Consistency with other drivers, this makes the language less variant-centric.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19363>
Alyssa Rosenzweig [Fri, 14 Oct 2022 19:30:49 +0000 (15:30 -0400)]
panfrost: Remove unused req_input_mem copy
Cloverism.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19363>
Alyssa Rosenzweig [Fri, 14 Oct 2022 19:20:46 +0000 (15:20 -0400)]
panfrost: Merge pan_assemble.c into pan_shader.c
We now have a common place for the driver side of shader compilation. As a bonus
this gets rid of the old "assemble" name which hasn't been accurate since 2018
or so.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19363>
Alyssa Rosenzweig [Fri, 14 Oct 2022 19:13:52 +0000 (15:13 -0400)]
panfrost: Consolidate all shader compiling code
Compute and graphics shaders will need similar paths for the disk cache. Let's
consolidate the code to make it easier to work with.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19363>
Alyssa Rosenzweig [Fri, 14 Oct 2022 19:13:24 +0000 (15:13 -0400)]
panfrost: Remove bogus assert
Nothing enforces this except perhaps the implicit structure of shader keys.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19363>
Alyssa Rosenzweig [Fri, 14 Oct 2022 19:11:30 +0000 (15:11 -0400)]
panfrost: Move small compute functions to pan_context.c
So we can use pan_compute.c for just programs.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19363>
Alyssa Rosenzweig [Fri, 14 Oct 2022 19:03:52 +0000 (15:03 -0400)]
panfrost: Delete set_global_resources
Cloverism.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19363>
Alyssa Rosenzweig [Fri, 14 Oct 2022 21:49:10 +0000 (17:49 -0400)]
panfrost: Don't use nir_variable to link varyings
NIR deemphasizes nir_variable. We want to transition off it. Instead of walking
the list of variables and playing games with the GLSL types to collect varying
information, walk the list of instructions and use the I/O semantics to collect
similar information.
In addition to avoiding the reliance on nir_variable, this fixes handling of
struct varyings under certain circumstances. Such programs are compiled by the
GLES3.1 CTS but not used, so without this fix, the affected tests would regress
when precompiling.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19363>
Alyssa Rosenzweig [Wed, 2 Nov 2022 14:49:22 +0000 (10:49 -0400)]
panfrost: Don't allocate space for empty varyings
PIPE_FORMAT_NONE has a block size of 1, oddly, but we don't actually
need to allocate any space for it. This acts as a small optimization for
a few shaders with the new varying linker.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19363>
Alyssa Rosenzweig [Sun, 16 Oct 2022 00:09:25 +0000 (20:09 -0400)]
pan/mdg: Use bifrost_nir_lower_store_component
Move the pass from the Bifrost compiler to the Midgard/Bifrost common code
directory, and take advantage of it on Midgard, where it fixes the same
tests as it fixed originally on Bifrost.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19363>
Alyssa Rosenzweig [Sat, 15 Oct 2022 19:08:05 +0000 (15:08 -0400)]
pan/mdg: Use .u32 for flat shading
This is simple and matches what we do on Bifrost.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19363>
Alyssa Rosenzweig [Sat, 15 Oct 2022 19:54:18 +0000 (15:54 -0400)]
pan/mdg: Don't pair ST_VARY.a32 with other instrs
For some reason, LD_ATTR/ST_VARY.a32 bundles raise INSTR_INVALID_ENC, at
least on Mali-T860. Don't construct such pairs. This is a blunt hack but
I don't know where this curveball requirement is coming from and this
unblocks the rest of this series.
total instructions in shared programs: 99879 -> 99788 (-0.09%)
instructions in affected programs: 3179 -> 3088 (-2.86%)
helped: 49
HURT: 9
helped stats (abs) min: 1.0 max: 6.0 x̄: 2.04 x̃: 2
helped stats (rel) min: 0.93% max: 10.53% x̄: 5.46% x̃: 4.88%
HURT stats (abs) min: 1.0 max: 1.0 x̄: 1.00 x̃: 1
HURT stats (rel) min: 0.61% max: 2.13% x̄: 1.41% x̃: 1.14%
95% mean confidence interval for instructions value: -1.93 -1.20
95% mean confidence interval for instructions %-change: -5.37% -3.41%
Instructions are helped.
total bundles in shared programs: 43778 -> 45102 (3.02%)
bundles in affected programs: 10737 -> 12061 (12.33%)
helped: 10
HURT: 369
helped stats (abs) min: 1.0 max: 3.0 x̄: 1.50 x̃: 1
helped stats (rel) min: 2.90% max: 18.75% x̄: 6.93% x̃: 5.21%
HURT stats (abs) min: 1.0 max: 10.0 x̄: 3.63 x̃: 4
HURT stats (rel) min: 0.82% max: 44.44% x̄: 15.27% x̃: 13.33%
95% mean confidence interval for bundles value: 3.29 3.69
95% mean confidence interval for bundles %-change: 13.68% 15.69%
Bundles are HURT.
total quadwords in shared programs: 76783 -> 77914 (1.47%)
quadwords in affected programs: 18633 -> 19764 (6.07%)
helped: 9
HURT: 370
helped stats (abs) min: 1.0 max: 2.0 x̄: 1.22 x̃: 1
helped stats (rel) min: 0.87% max: 8.33% x̄: 3.71% x̃: 3.85%
HURT stats (abs) min: 1.0 max: 7.0 x̄: 3.09 x̃: 3
HURT stats (rel) min: 0.82% max: 35.00% x̄: 7.82% x̃: 6.11%
95% mean confidence interval for quadwords value: 2.82 3.15
95% mean confidence interval for quadwords %-change: 7.02% 8.06%
Quadwords are HURT.
total registers in shared programs: 7266 -> 7076 (-2.61%)
registers in affected programs: 1224 -> 1034 (-15.52%)
helped: 171
HURT: 25
helped stats (abs) min: 1.0 max: 3.0 x̄: 1.27 x̃: 1
helped stats (rel) min: 8.33% max: 50.00% x̄: 21.85% x̃: 20.00%
HURT stats (abs) min: 1.0 max: 2.0 x̄: 1.12 x̃: 1
HURT stats (rel) min: 10.00% max: 100.00% x̄: 35.73% x̃: 33.33%
95% mean confidence interval for registers value: -1.10 -0.84
95% mean confidence interval for registers %-change: -17.69% -11.32%
Registers are helped.
total threads in shared programs: 4956 -> 5019 (1.27%)
threads in affected programs: 99 -> 162 (63.64%)
helped: 43
HURT: 6
helped stats (abs) min: 1.0 max: 2.0 x̄: 1.74 x̃: 2
helped stats (rel) min: 100.00% max: 100.00% x̄: 100.00% x̃: 100.00%
HURT stats (abs) min: 2.0 max: 2.0 x̄: 2.00 x̃: 2
HURT stats (rel) min: 50.00% max: 50.00% x̄: 50.00% x̃: 50.00%
95% mean confidence interval for threads value: 0.91 1.66
95% mean confidence interval for threads %-change: 67.36% 95.90%
Threads are helped.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19363>
Alyssa Rosenzweig [Sat, 15 Oct 2022 19:18:04 +0000 (15:18 -0400)]
pan/mdg: Disassemble the .a32 bit
Corresponds to .auto32 on Bifrost. This is helpful for a conformant
implementation of flat shading.
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19363>
Rob Clark [Sun, 30 Oct 2022 18:58:47 +0000 (11:58 -0700)]
freedreno/a6xx: Mark gl45 supported
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19400>
Rob Clark [Sun, 30 Oct 2022 18:19:48 +0000 (11:19 -0700)]
freedreno/a6xx: ARB_query_buffer_object support
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19400>
Rob Clark [Sun, 30 Oct 2022 17:24:20 +0000 (10:24 -0700)]
freedreno: Core ARB_query_buffer_object support
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19400>
Rob Clark [Tue, 1 Nov 2022 00:25:04 +0000 (17:25 -0700)]
freedreno/batch: Add a global epilogue
Rename the existing one to make it clear that it is per-tile, and add a
new one that runs after all the tile passes. Will be needed in the next
commit.
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19400>
Rob Clark [Sun, 30 Oct 2022 16:23:52 +0000 (09:23 -0700)]
freedreno/a5xx+a6xx: Add base class for query samples
For PIPE_CAP_QUERY_BUFFER_OBJECT we'll need to write on the GPU a flag
when the query result is available, which means the buffers used for
query results should have a header with availability flag.
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19400>
Rob Clark [Mon, 31 Oct 2022 18:39:58 +0000 (11:39 -0700)]
freedreno/a6xx: Remove unused field
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19400>
Rob Clark [Mon, 31 Oct 2022 18:35:57 +0000 (11:35 -0700)]
freedreno/a6xx: Fix occlusion queries
WFI is not a strong enough barrier, which shows up in piglit qbo tests
which do a single draw.
Fixes:
13fc03f4c0e ("freedreno/a6xx: Avoid stalling for occlusion queries")
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19400>
Rob Clark [Sat, 29 Oct 2022 20:28:33 +0000 (13:28 -0700)]
freedreno/a6xx: Enable ARB_shader_group_vote
Already supported for at least a6xx.
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19400>
Rob Clark [Sat, 29 Oct 2022 21:45:51 +0000 (14:45 -0700)]
freedreno/ir3: Unconditionally lower subgroup ops
For devices that don't support getfiberid, we force the subgroup size
to 1 for things other than compute stage. This matches what zink does.
And fixes spec@arb_shader_group_vote@vs-eq-uniform once we expose
ARB_shader_group_vote.
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19400>
Rob Clark [Sat, 29 Oct 2022 20:23:16 +0000 (13:23 -0700)]
freedreno/a3xx+: Enable ARB_derivative_control
Also already supported by ir3.
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19400>
Rob Clark [Sat, 29 Oct 2022 20:19:41 +0000 (13:19 -0700)]
freedreno/a3xx+: Enable ARB_shader_texture_image_samples
This is already supported for ir3
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19400>
Rob Clark [Sat, 29 Oct 2022 19:41:01 +0000 (12:41 -0700)]
freedreno/a6xx: Implement ARB_clear_texture
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19400>
Rob Clark [Sat, 29 Oct 2022 19:17:07 +0000 (12:17 -0700)]
freedreno/a6xx: Use box to pass 2d clear params
Simplifies the interface slightly and makes it possible to re-use the
path for pctx->clear_texture() in the next commit. The z dimensions
still come from the surface.
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19400>
Rob Clark [Sat, 29 Oct 2022 17:59:18 +0000 (10:59 -0700)]
freedreno: Add ARB_gl_spirv support
All the heavy lifting is done in nir.
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19400>
Rhys Perry [Wed, 2 Nov 2022 15:09:38 +0000 (15:09 +0000)]
docs: update new_features.txt for non-extension additions to RADV
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/19469>