Alyssa Rosenzweig [Sat, 7 Jan 2023 19:45:59 +0000 (14:45 -0500)]
agx: Use BITFIELD64_BIT for outputs_written
Fix by inspection.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20563>
Alyssa Rosenzweig [Sat, 7 Jan 2023 19:46:18 +0000 (14:46 -0500)]
nir/gather_info: Handle store_zs_agx
This acts as a depth/stencil write. The AGX compiler checks outputs_written to
determine what conservative depth settings the driver needs. Nominally, this
should work: the original store_output(FRAG_RESULT_DEPTH) intrinsic causes the
DEPTH outputs_written bit to be set, so the metadata is still correct after
lowering store_output to store_zs_agx. However, there are a handful of places
that call nir_gather_info late, which *resets* the existing outputs_written
value and regathers, causing Asahi to use the wrong conservative depth settings
when shuffling NIR pass order and breaking gl_FragDepth.
To fix, handle store_zs_agx conservatively when gathering info so we don't have
to play games with the pass order or stashing info in a sideband.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20563>
Alyssa Rosenzweig [Sat, 3 Dec 2022 02:41:29 +0000 (21:41 -0500)]
agx: Wire up nir_intrinsic_store_agx
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20558>
Alyssa Rosenzweig [Sat, 3 Dec 2022 22:26:15 +0000 (17:26 -0500)]
agx: Remove load_global(_constant) support
Now lowered in NIR to better instructions than we were selecting.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20558>
Alyssa Rosenzweig [Sat, 3 Dec 2022 22:20:54 +0000 (17:20 -0500)]
agx: Use load_global_constant for UBO lowering
Rely on the common address arithmetic optimizations. We don't need the
special formats for UBO loads anyway, so this is simpler and optimizes
out the ushr.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20558>
Alyssa Rosenzweig [Sat, 3 Dec 2022 21:54:32 +0000 (16:54 -0500)]
agx: Lower global loads/stores to AGX versions
This lets us do all the needed address arithmetic in a central place.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20558>
Alyssa Rosenzweig [Sat, 3 Dec 2022 22:10:13 +0000 (17:10 -0500)]
nir: Add store_agx intrinsic
This works like store_global, but lets us optimize address arithmetic. Like
load_agx, it is formatted to match the hardware semantic. We don't make use of
any clever formats in this series, though.
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20558>
Rob Clark [Mon, 9 Jan 2023 19:53:11 +0000 (11:53 -0800)]
freedreno/a6xx: Demote coherent img access to uncompressed
We cannot use UBWC for coherent access across shader stages.
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20612>
Rob Clark [Mon, 9 Jan 2023 19:34:04 +0000 (11:34 -0800)]
gallium: Add image volatile/coherent flags
Freedreno needs to know when an image has volatile or coherent access
flags in the shader.
Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20612>
Rob Clark [Mon, 9 Jan 2023 19:23:39 +0000 (11:23 -0800)]
mesa/st: Track complete access qualifier for images
Don't turn gl_access_qualifier coming from NIR back into GL enums,
losing information in the process.
Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20612>
Sil Vilerino [Sun, 4 Dec 2022 12:39:09 +0000 (09:39 -0300)]
d3d12: implement the get_decoder_fence vfunc
Implement the get_decoder_fence vfunc. Note that the waiting for
completion in this driver happens in the end_frame vfunc itself.
Signed-off-by: Sil Vilerino <sivileri@microsoft.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20133>
Daniel Almeida [Sun, 4 Dec 2022 12:28:23 +0000 (09:28 -0300)]
radeonsi: vcn: implement the get_decoder_fence vfunc
Implement the get_decoder_fence vfunc by waiting on the fence
previously passed in the end_frame vfunc.
Signed-off-by: Daniel Almeida <daniel.almeida@collabora.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20133>
Daniel Almeida [Sun, 4 Dec 2022 12:27:33 +0000 (09:27 -0300)]
radeonsi: uvd: implement the get_decoder_fence vfunc
Implement the get_decoder_fence vfunc by waiting on the fence
previously passed in the end_frame vfunc.
Signed-off-by: Daniel Almeida <daniel.almeida@collabora.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20133>
Daniel Almeida [Sun, 4 Dec 2022 12:25:45 +0000 (09:25 -0300)]
r600: uvd: implement the get_decoder_fence vfunc
Implement the get_decoder_fence vfunc by waiting on the fence
previously passed in picture->fence in the end_frame vfunc.
Signed-off-by: Daniel Almeida <daniel.almeida@collabora.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20133>
Daniel Almeida [Sun, 4 Dec 2022 12:20:48 +0000 (09:20 -0300)]
virgl: video: implement the get_decoder_fence vfunc
Implement the get_decoder_fence vfunc by waiting on the fence
previously passed in picture->fence in the end_frame vfunc.
Signed-off-by: Daniel Almeida <daniel.almeida@collabora.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20133>
Daniel Almeida [Sun, 4 Dec 2022 12:18:52 +0000 (09:18 -0300)]
frontends: va: fix vaQuerySurfaceStatus and vaSyncSurface for decode
Use the new get_decoder_fence vfunc to implement
vaQuerySurfaceStatus and vaSyncSurface in the va state tracker.
A pointer to the surface's fence is passed to the codecs before the
end_frame vfunc and the codec is responsible for allocating a fence on
command stream submission.
This fence is then queried on vaQuerySurfaceStatus and waited on in
vaSyncSurface.
Notably both functions were not implemented as per the VA-API docs for
PIPE_VIDEO_ENTRYPOINT_BITSTREAM.
Signed-off-by: Daniel Almeida <daniel.almeida@collabora.com>
Reviewed-by: Sil Vilerino <sivileri@microsoft.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20133>
Daniel Almeida [Mon, 5 Dec 2022 17:17:54 +0000 (14:17 -0300)]
gallium: pipe: add PIPE_DEFAULT_DECODER_FEEDBACK_TIMEOUT_NS
Add PIPE_DEFAULT_DECODER_FEEDBACK_TIMEOUT_NS as a way to control
how much to wait for decoders if this is supported.
Signed-off-by: Daniel Almeida <daniel.almeida@collabora.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20133>
Daniel Almeida [Sun, 4 Dec 2022 12:12:09 +0000 (09:12 -0300)]
gallium: pipe: add get_decoder_fence vfunc
Add a get_decoder_fence vfunc that can be used to query the status
of the previous decode job denoted by 'fence' given 'timeout'.
A pointer to a fence pointer can be passed to the codecs before the
end_frame vfunc and the codec should then be responsible for allocating
a fence on command stream submission.
Signed-off-by: Daniel Almeida <daniel.almeida@collabora.com>
Reviewed-by: Leo Liu <leo.liu@amd.com>
Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20133>
Rob Clark [Mon, 2 Jan 2023 21:36:55 +0000 (13:36 -0800)]
freedreno/a6xx: Remove shader key from fd6_emit
Only construct the key on-demand if the PROG state is dirty. The newly
added "virtual" PROG_KEY state is used to know when other state that the
shader key depends on changes. Worth ~13% at drawoverhead test 0.
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20572>
Rob Clark [Mon, 2 Jan 2023 20:38:19 +0000 (12:38 -0800)]
freedreno/a6xx: Avoid zero-init fd6_emit
A pretty significant amount of time spent in fd6_draw_vbo is calling
memset to zero init the on-stack struct. And a big part of the size
of the struct is fd6_state, of which we only need to initialize
num_groups to zero. This is worth a 15% improvement in drawoverhead
test 0 ("no state change").
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20572>
Rob Clark [Mon, 2 Jan 2023 20:14:06 +0000 (12:14 -0800)]
freedreno/a6xx: Tighten up fd6_emit
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20572>
Rob Clark [Sun, 1 Jan 2023 19:29:12 +0000 (11:29 -0800)]
freedreno/a6xx: Move fb_read descriptor to fd6_gmem
We already overwrote the entire descriptor in patch_fb_read_sysmem().
Doing the same in patch_fb_read_gmem() will simplify things for moving
the fb_read descriptor to the FS's bindless descriptor set.
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20572>
Rob Clark [Sun, 1 Jan 2023 16:15:32 +0000 (08:15 -0800)]
freedreno/a6xx: Split out fd6_state
Split out the build-up of CP_SET_DRAW_STATE packet, as we are going to
want to re-use this for compute state later when we switch to bindless
IBO descriptors.
While we are at it, drop the enable_mask param, as this is determined
solely by the group_id, and it is easier to maintain a table for the
handful of exceptions to ENABLE_ALL. The compiler should be able to
optimize away the table lookup.
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20572>
Rob Clark [Sun, 1 Jan 2023 15:31:56 +0000 (07:31 -0800)]
freedreno/a6xx: Rename fd6_emit_3d_state()
To better reflect this is emitting 3d state, and to avoid a name
conflict in the next patch.
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20572>
Eric Engestrom [Wed, 11 Jan 2023 12:31:29 +0000 (12:31 +0000)]
wsi/meson: add missing dep
Same thing as https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20530:
newly added `src/vulkan/util/rmv/vk_rmv_tokens.h` (see !17331) includes
`src/util/` files, so anything that includes it needs `idep_mesautil`.
In file included from ../src/vulkan/util/rmv/vk_rmv_common.h:29,
from ../src/vulkan/runtime/vk_device.h:26,
from ../src/vulkan/wsi/wsi_common.c:31:
../src/util/simple_mtx.h:34:12: fatal error: valgrind.h: No such file or directory
34 | # include <valgrind.h>
| ^~~~~~~~~~~~
compilation terminated.
Fixes:
5f30a7538befb00e7989 ("vulkan: Add RMV token definitions")
Signed-off-by: Eric Engestrom <eric@igalia.com>
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20642>
Samuel Pitoiset [Wed, 11 Jan 2023 09:28:24 +0000 (10:28 +0100)]
radv,aco: fix enable_mrt_output_nan_fixup for RAGE2 again
Driver workarounds for game bugs can be easily broken. This one
shouldn't be applied to meta shaders and this restores previous logic.
Fixes:
da32cbb5c69 ("aco: fix missing uses of MRT output flags")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20637>
David Heidelberg [Tue, 10 Jan 2023 19:44:19 +0000 (20:44 +0100)]
ci: debian-build-testing, build only the LTO variant
The chance we'll miss anything from non-LTO is minimal, and having
both builds in one is too slow (usually the latest job to finish).
Acked-by: Martin Roukala <martin.roukala@mupuf.org>
Acked-by: Eric Engestrom <eric@igalia.com>
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20623>
Erik Faye-Lund [Wed, 11 Jan 2023 12:15:38 +0000 (13:15 +0100)]
docs: fixup envvar-directive syntax
This directive needs a newline following it to render correctly.
While we're at it, fixup the incorrect indent for one of the
descriptions.
Fixes:
0c58ad3e321 ("docs: use envvar directive more")
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20640>
Marcin Ślusarz [Wed, 11 Jan 2023 10:40:43 +0000 (11:40 +0100)]
docs: use envvar directive more
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20638>
Iago Toral Quiroga [Wed, 11 Jan 2023 10:25:59 +0000 (11:25 +0100)]
v3dv: expose VK_KHR_shader_integer_dot_product
NIR will automatically lower all of these opcodes unless the driver
specifies that it can handle them natively. We don't have any hardware
support for any of these opcodes though, so we just let NIR lower
all of them.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20639>
Iago Toral Quiroga [Wed, 11 Jan 2023 08:31:06 +0000 (09:31 +0100)]
v3d/compiler: remove unused sample_coverage field from fs key.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20634>
Iago Toral Quiroga [Wed, 11 Jan 2023 08:08:11 +0000 (09:08 +0100)]
v3dv: fix alpha-to-one for single sample setup
In Vulkan this is expected to work with single sample scenarios too.
Fixes new test in CTS main:
dEQP-VK.pipeline.monolithic.multisample.alpha_to_one.samples_1
cc: mesa-stable
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20634>
Iago Toral Quiroga [Mon, 9 Jan 2023 07:13:06 +0000 (08:13 +0100)]
v3d: add a debug option to optimize shader compile times
Particularly, this makes compilation stop as soon as we get a
valid shader and doesn't try to optimize spilling by trying
fallback strategies.
Might come in handy to reduce CTS execution time, for example,
dEQP-VK.ssbo.layout.random.8bit.all_per_block_buffers.6 goes from
43m46.715s down to 15m15.068s.
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20601>
Jesse Natalie [Thu, 17 Nov 2022 17:58:58 +0000 (09:58 -0800)]
dzn: Allow multiple graphics queues
There's no real reason not to, WDDM supports it. It's not really that
useful, but I don't expect most apps to really want to do it anyway.
It does enable some useful synchronization scenarios sometimes.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16200>
Boris Brezillon [Wed, 27 Apr 2022 17:34:57 +0000 (19:34 +0200)]
dzn: Use DXGI swapchains
Makes things so much faster than doing CPU copies using StretchBlt().
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16200>
Boris Brezillon [Wed, 27 Apr 2022 17:32:34 +0000 (19:32 +0200)]
vulkan/wsi: Hook-up DXGI swapchains and DComp
The CPU copy is horribly slow, so let's hook-up DXGI swapchains. Note
that we're still limited in term of features. For instance, we can't
support more than 2 images per swapchain because of the DXGI present
ordering constraint. We also have to do an extra copy, because DXGI
only allows rendering to a resource on the queue that the swapchain
was created against, but swapchains in Vulkan don't have a queue.
The swapchain is bound to the window using DirectComposition aka
DComp. The DComp infrastructure is set up in the surface, and is
transitioned from one swapchain to the next when the new swapchain
begins presenting.
Unlike Wayland and X, there's no requirement that the compositor has
to release a surface before you can start rendering against it. However,
since we're now supporting the non-sw path, we do need to prevent apps
from rendering to a resource *while* the blit is occurring. We do this
by blocking for a fence while acquiring an image.
Co-authored-by: Jesse Natalie <jenatali@microsoft.com>
Acked-by: Daniel Stone <daniels@collabora.com>
Acked-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16200>
Jesse Natalie [Wed, 16 Nov 2022 15:54:44 +0000 (07:54 -0800)]
vulkan/wsi: Port Win32 WSI to C++
In a future commit we'll want to be able to use DirectComposition
in the Win32 WSI layer, and unfortunately DComp doesn't have a C-
compatible header (despite being COM, it uses function overloads
and has references instead of pointers for some functions).
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Acked-by: Daniel Stone <daniels@collabora.com>
Acked-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16200>
Boris Brezillon [Wed, 27 Apr 2022 16:03:11 +0000 (18:03 +0200)]
vulkan/wsi: Allow platform code to define extra dependencies
Needed for the windows platform if we want to hook up DXGI swapchains.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Acked-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16200>
Boris Brezillon [Wed, 27 Apr 2022 16:25:34 +0000 (18:25 +0200)]
vulkan/wsi: Add support for image -> image blits
The win32 swapchain can be backed by a DXGI swapchain, but such swapchains
are incompatible with STORAGE images (AKA UNORDERED_ACCESS usage in
DXGI). So, we need to allocate an intermediate image that will serve as
a render-target, and copy this image to the WSI image when QueuePresent()
is called. That's pretty similar to what we do for the buffer blit case,
except the image -> buffer copy is replaced by an image -> image copy.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16200>
Boris Brezillon [Wed, 27 Apr 2022 16:19:40 +0000 (18:19 +0200)]
vulkan/wsi: Dissociate the blit context and image configuration steps
Even if all implementations wsi_configure_buffer_image() will need to
configure the image as well, it feels a bit weird to call
wsi_configure_image() from there, so let's the
wsi_configure_buffer_image() users call wsi_configure_image() too.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16200>
Boris Brezillon [Wed, 27 Apr 2022 16:17:06 +0000 (18:17 +0200)]
vulkan/wsi: Prepare things for image to image blits
Right now, the WSI core supports copying WSI images to a linear buffer
for implementations that want the result in this form. This being said,
most of the blit logic can be re-used for image to image copies, and that's
exactly what we'll need if we want to hook-up DXGI swapchains in the
win32 WSI implementation. So let's rename a few fields so we no longer
imply that images are copied to a buffer, and the use_buffer_blit boolean
an enum so we can extend the implementation to support image -> image
copies.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16200>
Boris Brezillon [Wed, 27 Apr 2022 18:07:50 +0000 (20:07 +0200)]
vulkan/wsi: Don't set use_buffer_blit manually in the win32 WSI logic
We can simply pass use_buffer_blit=true to wsi_swapchain_init().
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Acked-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16200>
Boris Brezillon [Thu, 28 Apr 2022 07:03:04 +0000 (00:03 -0700)]
vulkan/wsi: Simplify wsi_win32_surface_create_swapchain() error path
We are about to add more to this function, so let's try to automate
the cleanup steps in the error path. Incrementing image_count as
we add new images to the swapchain allows us to call
wsi_win32_swapchain_destroy() even if not all images were initialized.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Acked-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16200>
Boris Brezillon [Thu, 28 Apr 2022 06:57:35 +0000 (23:57 -0700)]
vulkan/wsi: Indent fixes in ws_common_win32.c
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Acked-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16200>
Jesse Natalie [Wed, 16 Nov 2022 15:37:02 +0000 (07:37 -0800)]
meson: Define VK_USE_PLATFORM_WIN32_KHR for C++
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Acked-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16200>
Samuel Pitoiset [Tue, 10 Jan 2023 13:01:25 +0000 (14:01 +0100)]
docs: update new_features.txt for additional work with RADV
This release (23.0) contains less features than usual but the last
branchpoint was delayed and we had end of year holidays.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20609>
Marcin Ślusarz [Thu, 5 Jan 2023 14:39:28 +0000 (15:39 +0100)]
intel/compiler: fine-grained control of dispatch widths
Reviewed-by: Matt Turner <mattst88@gmail.com> [v1]
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20535>
Yiwei Zhang [Tue, 10 Jan 2023 21:12:08 +0000 (13:12 -0800)]
ci/venus: re-enable venus-lavapipe
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Acked-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19542>
Yiwei Zhang [Sat, 5 Nov 2022 06:58:13 +0000 (23:58 -0700)]
ci/venus: specify render server path to enable server config
The render server path is required by crosvm to enable render server.
v2: updated script to package server binary properly
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Corentin Noël <corentin.noel@collabora.com> (v1)
Acked-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19542>
Yiwei Zhang [Tue, 10 Jan 2023 01:27:06 +0000 (17:27 -0800)]
ci: uprev virglrenderer
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Reviewed-by: Corentin Noël <corentin.noel@collabora.com>
Acked-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19542>
Giancarlo Devich [Tue, 10 Jan 2023 23:33:27 +0000 (15:33 -0800)]
Fix incorrect stage reference
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20616>
Giancarlo Devich [Mon, 9 Jan 2023 20:35:08 +0000 (12:35 -0800)]
d3d12: Unionize shader variables in d3d12_shader_key to reduce size
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20616>
Friedrich Vock [Fri, 1 Jul 2022 02:10:04 +0000 (04:10 +0200)]
docs: Add short documentation about RMV tracing variables
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17331>
Friedrich Vock [Mon, 15 Aug 2022 14:25:43 +0000 (16:25 +0200)]
radv: Enable RMV tracing
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17331>
Friedrich Vock [Wed, 7 Dec 2022 15:11:38 +0000 (16:11 +0100)]
radv: Add RMV resource tracking
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17331>
Friedrich Vock [Sat, 16 Jul 2022 21:56:57 +0000 (23:56 +0200)]
radv: Add RMV tracing layer
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17331>
Friedrich Vock [Sat, 16 Jul 2022 21:52:45 +0000 (23:52 +0200)]
radv: Add RMV tracing utilities
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17331>
Friedrich Vock [Wed, 7 Dec 2022 12:12:44 +0000 (13:12 +0100)]
radv: Use internal allocation helpers for internal allocations
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17331>
Friedrich Vock [Sat, 16 Jul 2022 21:42:56 +0000 (23:42 +0200)]
vulkan: Add RMV file exporter
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17331>
Friedrich Vock [Sat, 16 Jul 2022 21:38:30 +0000 (23:38 +0200)]
vulkan: Add common RMV tracing infrastructure
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17331>
Friedrich Vock [Sat, 16 Jul 2022 21:42:09 +0000 (23:42 +0200)]
vulkan: Add RMV token definitions
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17331>
Mike Blumenkrantz [Tue, 10 Jan 2023 15:51:06 +0000 (10:51 -0500)]
zink: set surface->dt when updating swapchain
this otherwise re-creates swapchain surfaces on every frame and has
a significant perf hit for no reason
cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20613>
Giancarlo Devich [Tue, 10 Jan 2023 17:35:39 +0000 (09:35 -0800)]
d3d12: Reuse sampler tables inside of a batch
If a shader's sampler state is dirty often, the sampler descriptor heap
can get used up quickly, forcing flushing. If that happens quickly, we
run out of batches and have to wait for batches to finish on the GPU.
When this happens, it is often because the sampler state is switching,
not because it's truly unique. This change hashes and saves sampler
descriptor tables that can be reused in subsequent draws in the same
batch, instead of re-copying the same descriptors and consuming the
heap.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20618>
Charmaine Lee [Tue, 10 Jan 2023 04:46:33 +0000 (20:46 -0800)]
svga: fix max number of texture cube levels
The maximum number of mipmap levels supported for cubemap can be
determined from the maximum 2D texture size. There is no need
to limit the max to 12.
This fixes a regression in creating GL4.1 and up context since
commit
2658d025166c is now explicitly checking for
MaxCubeTextureLevels >= 15 for GL4.1 context.
Reviewed-by: Neha Bhende <bhenden@vmware.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20600>
Emma Anholt [Thu, 5 Jan 2023 21:34:25 +0000 (13:34 -0800)]
anv: Print the BO sizes in KB instead of hex bytes.
We already show the address range, which is most of why I'd think you'd be
looking at hex values. I find a more human-readable number nice for
debugging, instead of counting zeroes to decide if it's 1.5MB or 96kb.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20540>
Emma Anholt [Mon, 9 Jan 2023 17:32:01 +0000 (09:32 -0800)]
anv: Fix the size/aperture space debug printouts to consider _ccs_size.
It's added in at anv_bo_vma_alloc_or_close(), so count it here too.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20540>
Emma Anholt [Thu, 5 Jan 2023 21:32:04 +0000 (13:32 -0800)]
anv: Add an aperture space summary to INTEL_DEBUG=submit.
Same as on iris, this is nice for tracking at a high level how much memory
is being used.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20540>
Pavel Ondračka [Mon, 21 Nov 2022 10:20:28 +0000 (11:20 +0100)]
r300: allow more copy propagation with relative addressing
We are now extremelly careful when copy propagating a mov that uses
relative addressing. The search for readers will trigger abort when it
sees any other instruction using a relative addressing, irrespective of
the actual used registers or whether an address register load was seen.
Additionally, since ntt switch all movs using the relative addressing are
actually used only once right on the next line, and are result of ntt converting
vec4 32 ssa_10 = intrinsic load_ubo_vec4 (ssa_0, ssa_9) (access=0, base=11, component=0)
into
5: ARL ADDR[0].x, TEMP[0].xxxx
6: MOV TEMP[2], CONST[0][ADDR[0].x+11]
RV530 shader-db:
total instructions in shared programs: 132966 -> 131904 (-0.80%)
instructions in affected programs: 29896 -> 28834 (-3.55%)
helped: 234
HURT: 2
total temps in shared programs: 16969 -> 16905 (-0.38%)
temps in affected programs: 604 -> 540 (-10.60%)
helped: 68
HURT: 12
Partial fix for: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7723
Signed-off-by: Pavel Ondračka <pavel.ondracka@gmail.com>
Reviewed-by: Filip Gawin <filip@gawin.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20577>
Georg Lehmann [Sat, 17 Dec 2022 11:40:17 +0000 (12:40 +0100)]
aco: Use NSA on GFX11 with more than 5 vaddr registers.
On GFX11 the first 4 vaddr are single registers and the last contains the remaining vector.
image_bvh64_intersect_ray has a special NSA layout.
Foz-DB GFX1100:
Totals from 2763 (2.05% of 134913) affected shaders:
VGPRs: 145884 -> 145056 (-0.57%); split: -1.03%, +0.46%
CodeSize:
18406864 ->
18326136 (-0.44%); split: -0.47%, +0.04%
MaxWaves: 76030 -> 76146 (+0.15%)
Instrs: 3559785 -> 3525287 (-0.97%); split: -0.97%, +0.00%
Latency:
44278460 ->
43303419 (-2.20%); split: -2.33%, +0.13%
InvThroughput: 4966295 -> 4914927 (-1.03%); split: -1.04%, +0.01%
VClause: 51755 -> 51991 (+0.46%); split: -0.05%, +0.50%
SClause: 105241 -> 105267 (+0.02%); split: -0.08%, +0.10%
Copies: 214141 -> 182419 (-14.81%); split: -14.82%, +0.01%
Branches: 69525 -> 69521 (-0.01%)
PreVGPRs: 120910 -> 120256 (-0.54%); split: -0.56%, +0.02%
No changes on Navi21.
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20370>
Georg Lehmann [Sat, 17 Dec 2022 11:39:25 +0000 (12:39 +0100)]
aco: Validate GFX11 NSA correctly.
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20370>
Georg Lehmann [Sat, 17 Dec 2022 11:32:49 +0000 (12:32 +0100)]
aco: Handle NSA with vectors in get_mimg_nsa_dwords.
No Foz-DB changes.
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20370>
Pierre-Eric Pelloux-Prayer [Tue, 10 Jan 2023 09:04:40 +0000 (10:04 +0100)]
mesa: add missing count_scale attributes
The EXT_gpu_program_parameters spec says:
<params> points to an array of 4*<count> values
for both functions.
Cc: mesa-stable
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20603>
Pierre-Eric Pelloux-Prayer [Tue, 10 Jan 2023 09:01:06 +0000 (10:01 +0100)]
mesa: add missing count_scale attribute
The EXT_gpu_program_parameters spec says:
<params> points to an array of 4*<count> values
Fixes:
a4e935f2d70 ("mesa: add EXT_dsa + EXT_gpu_program_parameters functions")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7943
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8025
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20603>
Erik Faye-Lund [Fri, 2 Dec 2022 12:39:10 +0000 (13:39 +0100)]
zink: lower stipple + smooth
We can use the new functionality in the draw-helper to implement
stippled smooth lines instead of what we currently do, which is aliased
stipping on smooth lines.
Reviewed-by: Soroush Kashani <soroush.kashani@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20134>
Erik Faye-Lund [Fri, 2 Dec 2022 12:33:48 +0000 (13:33 +0100)]
gallium/draw: support lowering stipple + smooth
When computing line smoothing, we can also do something similar to
compute the line stippling. This can be useful for some drivers, who
can't easily split the lines before rasterizing them.
This does lead to slightly inaccurate stippling, because the
line-smoothing extends the line-length by a small amount. That leads to
the line-stippling pattern being over-stretched over the line-segment by
a fraction of a pixel in lenght. For short lines, this can be quite a
lot of error.
Reviewed-by: Soroush Kashani <soroush.kashani@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20134>
Eric Engestrom [Mon, 8 Nov 2021 15:02:01 +0000 (15:02 +0000)]
egl: const display & config pointers in eglGetConfigAttrib()
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Marek Olšák <maraeo@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20567>
Eric Engestrom [Mon, 8 Nov 2021 15:01:40 +0000 (15:01 +0000)]
egl: inline _eglReportError(), and drop this and all the other unused defines
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Marek Olšák <maraeo@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20565>
Marek Olšák [Tue, 13 Dec 2022 19:10:29 +0000 (14:10 -0500)]
radeonsi: rewrite si_update_ps_colorbuf0_slot to fix crashes and recursions
I'm convinced that u_blitter interactions with fbfetch can't be handled
in si_update_ps_colorbuf0_slot alone, so it has to be force-disabled
by si_blitter_begin. Another reason why it has to be disabled for u_blitter
and not ignored is because FBFETCH with MSAA enables sample shading
regardless of context states, and we don't want that for u_blitter.
Also, si_update_ps_colorbuf0_slot now disables FBFETCH explicitly before
its own DCC and CMASK decompression because even though u_blitter can't do
anything (due to blitter_running), si_blitter_end calls it too.
The result is that no recursion can occur thanks to the blitter_running
and suppress_update_ps_colorbuf0_slot flags, and FBFETCH is always
force-disabled before those flags are set, which is the state we want
to be in.
Fixes:
bc6d22b9200 ("radeonsi: fix ps_uses_fbfetch value")
Acked-by: Yogesh Mohan Marimuthu <yogesh.mohanmarimuthu@amd.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20318>
Guilherme Gallo [Mon, 9 Jan 2023 20:43:38 +0000 (17:43 -0300)]
ci/lava: Tweak LAVA jobs timeouts
The Mesa CI LAVA job submitter was suffering from a bug in the LAVA
software that made their timeouts related to sub-actions unreliable,
such as waiting for the user login prompt automatic response.
The following MR
https://git.lavasoftware.org/lava/lava/-/merge_requests/1900 fixed this
issue. So we can now better control job timeouts granularity, failing
the job faster when there is something weird hanging the boot stage.
Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20596>
Guilherme Gallo [Mon, 9 Jan 2023 19:46:28 +0000 (16:46 -0300)]
ci/lava: Update lavacli version
- Use new YAML loader derived from ruamel.yaml
- Remove PyYAML dependency from LAVA job submitter package
Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20596>
Yiwei Zhang [Tue, 10 Jan 2023 18:58:28 +0000 (10:58 -0800)]
ci/venus: temporarily disable due to instability
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20622>
Lucas Stach [Tue, 10 Jan 2023 11:11:35 +0000 (12:11 +0100)]
etnaviv: hide TS sharing behind debug option
TS sharing isn't fully stable yet. There are some fixes pending, but they
don't take care of all reported issues. Hide TS sharing behind a debug
switch until all the known issues are resolved.
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20606>
Dylan Baker [Tue, 10 Jan 2023 17:59:12 +0000 (09:59 -0800)]
docs: Add calendar entries for 23.0 release candidates.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20619>
Eric Engestrom [Tue, 10 Jan 2023 09:21:33 +0000 (09:21 +0000)]
broadcom/ci: drop duplicate job definition
See line 48 above.
Reviewed-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20605>
Rhys Perry [Fri, 9 Dec 2022 15:42:44 +0000 (15:42 +0000)]
aco/gfx11: increase vgpr_limit to 256
fossil-db (gfx1100):
Totals from 280 (0.21% of 134574) affected shaders:
MaxWaves: 3124 -> 2846 (-8.90%); split: +3.46%, -12.36%
Instrs: 1139038 -> 1091407 (-4.18%); split: -4.18%, +0.00%
CodeSize: 5809332 -> 5486812 (-5.55%); split: -5.55%, +0.00%
VGPRs: 35004 -> 42864 (+22.45%); split: -1.85%, +24.31%
SpillSGPRs: 1896 -> 1865 (-1.64%); split: -2.37%, +0.74%
SpillVGPRs: 17807 -> 2382 (-86.62%)
Scratch: 2573312 -> 736256 (-71.39%)
Latency:
27470485 ->
17981296 (-34.54%); split: -34.54%, +0.00%
InvThroughput: 5606102 -> 6527051 (+16.43%); split: -4.19%, +20.61%
VClause: 32319 -> 19927 (-38.34%); split: -39.13%, +0.78%
SClause: 15014 -> 14897 (-0.78%); split: -0.95%, +0.17%
Copies: 102977 -> 93511 (-9.19%); split: -9.93%, +0.74%
Branches: 15164 -> 14969 (-1.29%)
PreSGPRs: 19132 -> 19014 (-0.62%)
PreVGPRs: 30494 -> 37460 (+22.84%)
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20251>
Rhys Perry [Fri, 11 Nov 2022 19:58:45 +0000 (19:58 +0000)]
aco/gfx11: allow true 16-bit instructions to access v128+
It looks like the LLVM assembler promotes true 16-bit instructions to VOP3
in this case.
No fossil-db changes.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20251>
Rhys Perry [Fri, 11 Nov 2022 19:38:38 +0000 (19:38 +0000)]
aco: disallow SGPRS/constants with interpolation instructions
https://reviews.llvm.org/D137575
The VINTRP format cannot encode anything except VGPRs.
Reading VINTERPInstructions.td, looks like it's the same for GFX11.
No fossil-db changes.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20251>
Rhys Perry [Wed, 4 Jan 2023 14:53:00 +0000 (14:53 +0000)]
aco: add more opcodes to can_use_DPP()
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20251>
Rhys Perry [Wed, 4 Jan 2023 14:52:34 +0000 (14:52 +0000)]
aco: allow Builder::Result to be dereferenced
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20251>
Rhys Perry [Wed, 4 Jan 2023 10:51:24 +0000 (10:51 +0000)]
aco/gfx11: fix discard early exit removal optimization
This optimization never happened because the NULL target was removed in
GFX11.
fossil-db (gfx1100):
Totals from 5439 (4.04% of 134574) affected shaders:
Instrs: 407865 -> 387123 (-5.09%)
CodeSize: 2163340 -> 2060644 (-4.75%)
Latency: 3432378 -> 3327802 (-3.05%)
InvThroughput: 270133 -> 262980 (-2.65%)
Branches: 8524 -> 3085 (-63.81%)
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/20513>
Pedro J. Estébanez [Tue, 10 Jan 2023 13:02:38 +0000 (14:02 +0100)]
microsoft/spirv_to_dxil: Let linking report the need of runtime data
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20608>
Lucas Stach [Mon, 9 Jan 2023 15:28:37 +0000 (16:28 +0100)]
etnaviv: properly check for new clear value in sampler TS setup
Comparing the 64bit clear value to the lower half 32bit clear state is
obviously wrong and results in a lot of false positives.
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20586>
Lucas Stach [Mon, 9 Jan 2023 15:27:50 +0000 (16:27 +0100)]
etnaviv: blt: properly use upper half of clear value
Instead of replicating the lower half of the clear value, properly
use the upper half to program the second clear value BLT state.
CC: mesa-stable
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20586>
Danylo Piliaiev [Thu, 5 Jan 2023 13:02:17 +0000 (14:02 +0100)]
ir3/print: Consider the size of input when matching it to a reg
First component of the input may never be read, so we have to find
the first component of the input which is being read.
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20533>
Danylo Piliaiev [Thu, 5 Jan 2023 12:54:36 +0000 (13:54 +0100)]
ir3: Force flat.b sources to be equal
From
cc29b940 according to Jonathan Marek using 2 immediates in a cat2
instruction is only "correct" if they are both equal.
They were not equal after reassigning of packed inlocks.
flat.b seemed to work fine even with imm values being different,
but better not to risk.
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20533>
Danylo Piliaiev [Thu, 5 Jan 2023 12:36:46 +0000 (13:36 +0100)]
tu: Fix varyings interpolation reading stale values
tu6_vpc_varying_mode returned how many bits are consumed IF they are
non-zero, for SMOOTH mode nothing is written and it was treated like
no bits were consumed.
When input with smooth interpolation was the last one and straddled
the VPC_VARYING_INTERP_MODE regs, the last interp mode were not written.
Fixes misrendering in "Psychonauts 2".
Cc: mesa-stable
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20533>
Michel Dänzer [Mon, 19 Dec 2022 11:25:46 +0000 (12:25 +0100)]
loader/dri3: Overhaul draw->cur_num_back handling
draw->cur_num_back is no longer used for immediately reducing the number
of allocated back buffers. It just reflects how many of them are
currently allocated, and is used to prevent allocating more if the
current maximum is already reached.
This fixes an issue where the current in-progress back buffer could get
freed, which would result in visible artifacts.
Unused buffers are freed once they exceed buffer age 200. This ensures
we do not keep around more buffers than necessary in the long run.
v2:
* Drop buffer age threshold to 200. This will free unused buffers more
quickly, and seems enough to avoid doing so prematurely even with
"glxgears -fullscreen" running at thousands of frames per second.
* Use "buf_id != LOADER_DRI3_FRONT_ID". (Pierre-Eric Pelloux-Prayer)
* Simplify loader_dri3_get_buffers changes slightly.
* We can now use any unallocated back buffer slot in dri3_find_back.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20385>
Michel Dänzer [Mon, 19 Dec 2022 17:06:13 +0000 (18:06 +0100)]
loader/dri3: Add dri3_set_render_buffer helper
Preparation for next commit, no functional change intended.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20385>
Michel Dänzer [Mon, 19 Dec 2022 11:33:24 +0000 (12:33 +0100)]
loader/dri3: Move NULL handling into dri3_free_render_buffer
Both checking for draw->buffers[buf_id] being non-NULL, and setting
draw->buffers[buf_id] = NULL.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20385>
Samuel Pitoiset [Fri, 6 Jan 2023 13:03:12 +0000 (14:03 +0100)]
radv: enable PS epilogs on-demand for some dynamic states
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20201>