Connor Abbott [Fri, 1 Oct 2021 10:15:10 +0000 (12:15 +0200)]
ir3: Insert frag coord code after preamble
To match the pre-preamble behavior, and so that we can better schedule
it.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13148>
Connor Abbott [Wed, 29 Sep 2021 11:56:51 +0000 (13:56 +0200)]
ir3: Support prefetching with preambles
Since the NIR pass runs very late, it needs to be aware of preambles,
and when creating the instruction we need to move it to the start block
so that RA doesn't overwrite it in the preamble.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13148>
Connor Abbott [Wed, 29 Sep 2021 10:36:49 +0000 (12:36 +0200)]
ir3/legalize: Handle inserting (ei) with preamble
Make sure that shaders with a preamble are still considered
early-release so that we don't regress them.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13148>
Connor Abbott [Fri, 24 Sep 2021 15:32:31 +0000 (17:32 +0200)]
ir3: Plumb through store_uniform_ir3 intrinsic
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13148>
Connor Abbott [Fri, 24 Sep 2021 14:14:30 +0000 (16:14 +0200)]
ir3: Better assemble/disassemble stc
Add in the type, even though it turns out to not be that useful. Add
in support for assembling it. Add some notes based on computerator
experiments. And add support for the indirect a1.x mode that's needed
for storing c64.x and later.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13148>
Connor Abbott [Tue, 21 Sep 2021 15:23:10 +0000 (17:23 +0200)]
ir3: Implement basic shader preamble intrinsics
These will be used to implement the ir3-specific shader preamble
lowering in NIR. shps is conceptually similar to getone (although it
technically can't be duplicated) and shpe is similar to other barriers,
since it has to happen after any stores to the constant file in the
preamble. Add NIR intrinsics and plumbs them through ir3.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13148>
Connor Abbott [Tue, 25 Jan 2022 09:30:33 +0000 (10:30 +0100)]
ir3: Don't count reserved user consts in ubo_state::size
Previously we included the reserved user consts (for Vulkan push
constants) as part of the pushed UBO contents, but that led to a problem
because when calculating the worst-case space for UBOs we didn't factor
in the reserved user consts. We'll have the same problem when doing the
same thing in the preamble optimization pass. Stop including the
reserved size in ubo_state::size, and have ir3_setup_consts() add it in
instead, so we won't forget to add it anywhere.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13148>
Connor Abbott [Tue, 15 Mar 2022 12:31:39 +0000 (13:31 +0100)]
ir3: Fix scan.macro valid flags
Right now we don't support any. We could probably support const, but
that's not worth it because we could optimize a reduce of a const better
anyway.
Fixes:
1a78604d201 ("ir3: Add support for subgroup arithmetic")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13148>
Connor Abbott [Fri, 24 Sep 2021 16:41:29 +0000 (18:41 +0200)]
nir: Add a preamble optimization pass
This pass tries to move computations that are uniform for the entire
draw to the preamble. There's also an API for backends to insert their
own instructions into the preamble, for porting existing UBO pushing
passes.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13148>
Connor Abbott [Fri, 24 Sep 2021 16:38:27 +0000 (18:38 +0200)]
nir: Add a "deep" instruction clone
For the shader preamble, we need to add support for cloning one
instruction at a time into the preamble, but we also need to rewrite
sources.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13148>
Connor Abbott [Fri, 24 Sep 2021 16:12:24 +0000 (18:12 +0200)]
nir: Add preamble functions
These are functions that run before the entrypoint at least once per
draw and write their results via store_preamble, and then are loaded in
the rest of the shader via load_preamble.
We will add users in the following commits.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13148>
Juan A. Suarez Romero [Mon, 14 Mar 2022 17:54:43 +0000 (18:54 +0100)]
v3dv: change MESA_GLSL_CACHE envvar reference
This was renamed to MESA_SHADER_CACHE.
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15390>
Juan A. Suarez Romero [Mon, 14 Mar 2022 17:53:14 +0000 (18:53 +0100)]
radv: change MESA_GLSL_CACHE envvar reference
This was renamed to MESA_SHADER_CACHE.
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15390>
Juan A. Suarez Romero [Mon, 14 Mar 2022 17:50:26 +0000 (18:50 +0100)]
ci: use MESA_SHADER_CACHE envvar
This was renamed from MESA_GLSL_CACHE.
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15390>
Juan A. Suarez Romero [Mon, 14 Mar 2022 17:47:37 +0000 (18:47 +0100)]
util/disk_cache: rename MESA_GLSL_CACHE envvar
Rename MESA_GLSL_CACHE to MESA_SHADER_CACHE, as the on-disk cache can
store not only GLSL but also SPIR-V shaders.
v2:
- Keep old envvar as deprecated (Mike)
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15390>
Igor Torrente [Fri, 11 Feb 2022 10:25:43 +0000 (07:25 -0300)]
venus: add VK_EXT_calibrated_timestamps extension
Implements all the necessary code in the device initialization
and extension functions.
Signed-off-by: Igor Torrente <igor.torrente@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15389>
Igor Torrente [Wed, 16 Mar 2022 11:30:30 +0000 (08:30 -0300)]
venus: move vkGetCalibratedTimestamps to vn_protocol_driver_device.h
Update venus-protocol files to move vkGetCalibratedTimestamps function
from vn_protocol_driver_transport.h to vn_protocol_driver_device.h.
Signed-off-by: Igor Torrente <igor.torrente@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15389>
Emma Anholt [Fri, 11 Mar 2022 21:55:52 +0000 (13:55 -0800)]
vulkan: Make sure we've loaded our connectors when querying plane props.
If you hadn't already called wsi_GetPhysicalDeviceDisplayProperties2KHR or
wsi_GetDrmDisplayEXT before calling
GetPhysicalDeviceDisplayPlaneProperties2KHR, then the connectors list
wouldn't be populated and you'd get no plane properties. Fixes failure of
dEQP-VK.wsi.display.get_display_plane_capabilities when run on its own.
Fixes: #4575
Cc: mesa-stable
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15353>
Gurchetan Singh [Tue, 1 Mar 2022 01:59:04 +0000 (17:59 -0800)]
zink: emulate some more memory
If ZINK_HEAP_DEVICE_LOCAL_VISIBLE isn't available natively, then
fallback to device local memory without asserting.
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15202>
Emma Anholt [Fri, 11 Mar 2022 21:03:10 +0000 (13:03 -0800)]
ci/turnip: Drop alpha_to-coverage flake note on a618.
It's only ever been seen on a630.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14839>
Emma Anholt [Wed, 2 Feb 2022 20:59:54 +0000 (12:59 -0800)]
turnip: Use the DRM or KGSL GPU reset status ioctls to report device loss.
ANGLE-on-venus-on-turnip and zink-on-turnip want real data here for EGL's
reset tests.
This required moving the remaining GPU-reset-causing tests from flakes or
xfails to skips. Otherwise, the rest of the caselist associated with them
ends up being marked as fails as well. The alternative would be to put
these tests in their own test groups with tests_per_group = 1, but that
didn't seem worth the effort. Or, we could finally do something with
https://gitlab.freedesktop.org/anholt/deqp-runner/-/issues/14.
Fixes: #5955
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14839>
Emma Anholt [Fri, 11 Mar 2022 20:42:06 +0000 (12:42 -0800)]
ci/freedreno: Remove some xfails for tests that now skip.
The last CTS uprev correctly turned them into NotSupported.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14839>
Emma Anholt [Fri, 11 Mar 2022 20:22:35 +0000 (12:22 -0800)]
ci/freedreno: Drop the skips of spirv_ids_abuse in pre-merge.
The crash was fixed in
62a7acee93bd939645205de5a8646e4c0ea1881f, and
runtime of the tests locally is 5-17s each with a hot shader cache, 11-25s
without.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14839>
Emma Anholt [Thu, 10 Mar 2022 21:27:04 +0000 (13:27 -0800)]
ci/lvp: Stop skipping spv-stable-maze-flatten-copy-composite
The runtime was fixed in VK-GL-CTS
1751124d2870840bada579c236a66d38b48c039b, now it's just 1 second.
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14839>
Emma Anholt [Thu, 10 Mar 2022 21:12:21 +0000 (13:12 -0800)]
ci: Drop skips of spv-stable-pillars-volatile-nontemporal-store
The runtime was fixed in VK-GL-CTS
7cc65f6c02276767407233e74c7174d88dab7919. Now it's .6s on lvp, 20ms on
turnip a618.
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14839>
Jason Ekstrand [Tue, 15 Mar 2022 15:29:31 +0000 (10:29 -0500)]
anv: Include scissors in viewport calculations
It's tricky to always get the render area to the viewport code. In
particular, it's not provided to secondary command buffers as part of
the inheritance info so we have to bend over backwards and look for a
framebuffer. With VK_KHR_dynamic_rendering, there is no framebuffer and
this approach won't work and we'll need something better if we want
competent guardbands in secondary command buffers.
The good news is that any client that's sloppily rendering and trusting
the clipper to keep things inside the render area will set a scissor and
that's something they have to set inside the secondary. We can dig
through the scissor state and also include the corresponding scissor (if
any) and use that for our render area. This should give us the same
secondary command buffer performance with VK_KHR_dynamic_rendering.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14961>
Jason Ekstrand [Tue, 15 Mar 2022 15:10:28 +0000 (10:10 -0500)]
anv: Move viewport/scissor emit to genX_cmd_buffer.c
There's never been a particularly good reason to stick these in gfx7/8.
We mostly did it to deduplicate the binary a bit but this shouldn't emit
all that much code.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14961>
Jason Ekstrand [Mon, 28 Feb 2022 20:18:09 +0000 (14:18 -0600)]
anv: Calculate the real guardband based on render area
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14961>
Jason Ekstrand [Mon, 28 Feb 2022 20:17:59 +0000 (14:17 -0600)]
intel/guardband: Take min/max instead of total size
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14961>
Jason Ekstrand [Fri, 18 Feb 2022 04:18:49 +0000 (22:18 -0600)]
docs: Add high-level documentation for Vulkan render passes
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14961>
Jason Ekstrand [Fri, 18 Feb 2022 04:10:04 +0000 (22:10 -0600)]
docs: Add the start of Vulkan runtime docs
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14961>
Jason Ekstrand [Wed, 9 Feb 2022 18:03:15 +0000 (12:03 -0600)]
anv: Convert to 100% dynamic rendering
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14961>
Jason Ekstrand [Fri, 11 Feb 2022 17:40:34 +0000 (11:40 -0600)]
anv: Drop pipeline pass/subpass in favor of rendering_info
This is about the only "small" change we can make in the process of
converting from render-pass-based to dynamic-rendering-based. Make
everything in pipeline creation work in terms of dynamic rendering and
create the dynamic rendering structs from the render pass as-needed.
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14961>
Jason Ekstrand [Sat, 12 Feb 2022 03:10:09 +0000 (21:10 -0600)]
anv/pipeline: Stop pretending we're the validator
This was ill-conceived at best. Yes, it checks for a few error
conditions but it doesn't check much and what checks it has are very far
away from the code that relies on those invariants. If we care about
these invariants, we should add asserts near the code that makes those
assumptions rather than pretending to be the validation layers.
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14961>
Jason Ekstrand [Wed, 9 Feb 2022 23:07:03 +0000 (17:07 -0600)]
anv: Stop treating color input attachments specially
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14961>
Jason Ekstrand [Thu, 10 Feb 2022 06:57:25 +0000 (00:57 -0600)]
anv/pass: Make unused color attachments VK_ATTACHMENT_UNUSED
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14961>
Jason Ekstrand [Fri, 11 Feb 2022 02:23:10 +0000 (20:23 -0600)]
anv: Better null surface state size for dynamic rendering
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14961>
Jason Ekstrand [Wed, 9 Feb 2022 18:40:33 +0000 (12:40 -0600)]
anv: Fix handling of null depth/stencil attachments with dynamic rendering
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14961>
Jason Ekstrand [Sat, 12 Feb 2022 03:08:18 +0000 (21:08 -0600)]
vulkan/framebuffer: Add a flags field
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14961>
Jason Ekstrand [Thu, 17 Feb 2022 18:58:39 +0000 (12:58 -0600)]
vulkan/render_pass: Add an optimization for UNDEFINED+LOAD_OP_CLEAR
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14961>
Jason Ekstrand [Thu, 10 Feb 2022 15:43:27 +0000 (09:43 -0600)]
vulkan/render_pass: Support fragment shading rate
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14961>
Jason Ekstrand [Wed, 9 Feb 2022 22:28:28 +0000 (16:28 -0600)]
vulkan/render_pass: Provide self-dependeny information
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14961>
Jason Ekstrand [Thu, 10 Feb 2022 23:30:01 +0000 (17:30 -0600)]
vulkan: Add helpers for getting rendering info from a renderpass
These helpers are used by vkCreateGraphicsPipelines to get the
VkPipelineRenderingCreateInfo and in vkCmdBeginCommandBuffer to get the
VkCommandBufferInheritanceRenderingInfo. This is required because the
Vulkan runtime code can't yet hook and modify calls made to driver-
provided functions. Instead, we just provide a helper to be used in leu
of vk_find_struct_const(). The structs themselves are stored in the
render pass so we can pass back a pointer and there's no need to
construct one on the stack or stuff it in the pipeline.
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14961>
Jason Ekstrand [Wed, 9 Feb 2022 22:30:38 +0000 (16:30 -0600)]
vulkan: Add a common CmdBegin/EndRederPass implementation
This implements vkCmdBeginRenderPass, vkCmdEndRenderPass, and
vkCmdNextSubpass in terms of the new vkCmdBegin/EndRendering included in
VK_KHR_dynamic_rendering and Vulkan 1.3. All subpass dependencies and
implicit layout transitions are turned into actual barriers. It does
require VK_KHR_synchronization2 because it always uses the 64-bit
version of the pipeline stage and access bitfields.
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14961>
Jason Ekstrand [Wed, 22 Sep 2021 19:13:00 +0000 (14:13 -0500)]
vulkan: Add a common vk_render_pass struct
This basically contains everything in pCreateInfo plus one or two extra
bits that might be useful.
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14961>
Jason Ekstrand [Wed, 22 Sep 2021 19:51:45 +0000 (14:51 -0500)]
anv: Convert to vk_framebuffer
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14961>
Jason Ekstrand [Wed, 22 Sep 2021 19:44:32 +0000 (14:44 -0500)]
vulkan: Add a common vk_framebuffer struct
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14961>
Jason Ekstrand [Thu, 10 Mar 2022 22:21:34 +0000 (16:21 -0600)]
panvk: Implement VK_EXT_vertex_attribute_divisor
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15295>
Boris Brezillon [Thu, 10 Mar 2022 23:27:02 +0000 (17:27 -0600)]
panvk: Implement indexed rendering
Since we can do 8-bit index buffers, also advertise VK_EXT_type_uint8.
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15295>
Boris Brezillon [Wed, 29 Sep 2021 11:21:21 +0000 (13:21 +0200)]
panvk: Fix per-instance attribute handling
We were assuming per-vertex attributes so far. Let's extend the logic
to support per-instance attributes with or without custom instance
divisors. Now that we've got it all hooked up, we can enable
VK_EXT_vertex_attribute_divisor.
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15295>
Boris Brezillon [Fri, 1 Oct 2021 07:13:26 +0000 (09:13 +0200)]
panvk: No-op zero-vertex draws
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15295>
Gert Wollny [Wed, 16 Mar 2022 13:29:10 +0000 (14:29 +0100)]
Revert "virgl: Enable PIPE_CAP_TGSI_TEXCOORD when the host supports it"
This reverts commit
2fbb4e85f7e35ae9f4fd27d5ab38b5609eb117fe.
With this CAP enabled the host doesn't correctly handle the passing
the invariant flag between stages, and using surfaceless in the
client seems to trigger this error
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15409>
Samuel Pitoiset [Wed, 16 Mar 2022 09:00:36 +0000 (10:00 +0100)]
radv: fix missing destruction of the inotify thread
The notifier state must be destroyed when a device is destroyed. Oops.
This fixes crashes at launch with The Witcher 3.
Fixes:
c50557d9612 ("radv: allow applications to dynamically change RADV_FORCE_VRS")
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/15405>
Vadym Shovkoplias [Wed, 9 Mar 2022 10:35:26 +0000 (12:35 +0200)]
anv: implement EXT_depth_clip_control
A new extension allowing the application to use the OpenGL depth
range in NDC, i.e. with depth in range [-1, 1], as opposed to
Vulkan’s default of [0, 1].
v2:
- call gfx8_cmd_buffer_emit_viewport on ANV_CMD_DIRTY_PIPELINE (Jason)
- remove redundant !! operator since negativeOneToOne must be true or
false (Tapani)
- coding style changes (Lionel)
Gitlab: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6070
Signed-off-by: Vadym Shovkoplias <vadym.shovkoplias@globallogic.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15304>
Charlie Turner [Mon, 14 Mar 2022 21:07:26 +0000 (21:07 +0000)]
ci, radv: Update flake expectations
dEQP-VK.api.object_management.multithreaded_shared_resources.image_2d
is flakey crashing on RENOIR and VEGA10.
Thanks Rhys Perry for pointing out the flake.
Acked-by: Martin Roukala <martin.roukala@mupuf.org>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15386>
Charlie Turner [Wed, 2 Mar 2022 16:30:26 +0000 (16:30 +0000)]
ci, valve: Bump the trigger container
This contains some fixes in the executor client related to multipart
HTTP uploads. It will hopefully improve the stability of jobs!
Acked-by: Martin Roukala <martin.roukala@mupuf.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15386>
Charlie Turner [Wed, 2 Mar 2022 10:13:00 +0000 (10:13 +0000)]
ci, valve: Show real kernel addresses in KFENCE reports.
Acked-by: Martin Roukala <martin.roukala@mupuf.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15386>
Samuel Pitoiset [Thu, 24 Feb 2022 17:29:17 +0000 (18:29 +0100)]
radv: only clear VRAM for app and descriptor BOs when set via drirc
We don't have to clear other internal BOs when it's set for eg. vkd3d.
This should reduce the number of SDMA clears.
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/15156>
Samuel Pitoiset [Thu, 24 Feb 2022 17:00:55 +0000 (18:00 +0100)]
radv/winsys: remove old comment about zerovram
RADV requires Linux 4.15+.
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/15156>
Mike Blumenkrantz [Mon, 14 Mar 2022 20:20:11 +0000 (16:20 -0400)]
lavapipe: EXT_image_robustness
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15388>
Mike Blumenkrantz [Mon, 14 Mar 2022 20:19:25 +0000 (16:19 -0400)]
gallivm: fix oob image detection for cube/1dArray/2dArray/cubeArray
these all need to check for z coord oob to avoid crashing
cc: mesa-stable
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15388>
Mike Blumenkrantz [Mon, 14 Mar 2022 16:26:15 +0000 (12:26 -0400)]
lavapipe: EXT_pipeline_creation_cache_control
again, technically passing is still passing
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15379>
Mike Blumenkrantz [Mon, 14 Mar 2022 16:12:34 +0000 (12:12 -0400)]
lavapipe: EXT_pipeline_creation_feedback
cts passes with mostly quality warnings, but it does pass
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15379>
Mike Blumenkrantz [Mon, 14 Mar 2022 20:30:29 +0000 (16:30 -0400)]
lavapipe: KHR_zero_initialize_workgroup_memory
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15403>
Mike Blumenkrantz [Mon, 14 Mar 2022 21:16:45 +0000 (17:16 -0400)]
llvmpipe: add handling for zeroing cs shared memory
since this is just allocated by the cpu, it needs to be zeroed if the
shader expects that behavior
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15403>
Mike Blumenkrantz [Mon, 14 Mar 2022 17:11:37 +0000 (13:11 -0400)]
lavapipe: KHR_format_feature_flags2
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15395>
Mike Blumenkrantz [Mon, 14 Mar 2022 17:11:18 +0000 (13:11 -0400)]
lavapipe: use VkFormatFeatureFlags2 in format detection
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15395>
Mike Blumenkrantz [Tue, 8 Mar 2022 22:38:06 +0000 (17:38 -0500)]
gallium: add flag to draw info to indicate converted draws
this draw mode in particular requires driver-specific conversions
for queries (e.g., number of vertices), so pass that info through
the only limitation is that it doesn't work for dlists,
but I have yet to see a real use case of a statistics query being used with dlists
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15326>
Jason Ekstrand [Sat, 12 Mar 2022 04:16:20 +0000 (22:16 -0600)]
panvk: Fix SSBO buffer offsets
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15398>
Jason Ekstrand [Fri, 11 Mar 2022 19:18:32 +0000 (13:18 -0600)]
panvk: Require 16B alignment for UBOs
This is required by MALI_UNIFORM_BUFFER.
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15398>
Lionel Landwerlin [Mon, 14 Mar 2022 20:38:45 +0000 (22:38 +0200)]
anv: silence compiler warnings
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6146
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15387>
Daniel Stone [Tue, 15 Mar 2022 22:02:58 +0000 (22:02 +0000)]
ci: Add new Panfrost G52 skip
This started failing for some reason, has been seen in
https://gitlab.freedesktop.org/mesa/mesa/-/jobs/
19776551 and others.
Signed-off-by: Daniel Stone <daniels@collabora.com>
Suggested-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15396>
Stefan Dirsch [Mon, 14 Mar 2022 12:41:28 +0000 (13:41 +0100)]
meson: restore private requires to libdrm in dri.pc file
Due to a typo the private requires to libdrm were lost in dri.pc.
Fixed another typo: Infastructure --> Infrastructure
Fixes:
3ae3569d822 ("meson: restore dri.pc file")
Signed-off-by: Stefan Dirsch <sndirsch@suse.com>
Tested-by: Stefan Dirsch <sndirsch@suse.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15375>
Emma Anholt [Thu, 10 Mar 2022 19:15:16 +0000 (11:15 -0800)]
turnip: use vk_shader_module_to_nir().
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15305>
Jason Ekstrand [Wed, 9 Mar 2022 18:18:05 +0000 (12:18 -0600)]
panvk: Use vk_shader_module_to_nir()
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15305>
Jason Ekstrand [Wed, 9 Mar 2022 18:05:39 +0000 (12:05 -0600)]
panvk: Use vk_shader_module
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15305>
Jason Ekstrand [Wed, 9 Mar 2022 17:37:11 +0000 (11:37 -0600)]
anv: Use vk_shader_module_to_nir()
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15305>
Jason Ekstrand [Wed, 9 Mar 2022 17:26:03 +0000 (11:26 -0600)]
vulkan: Add a vk_shader_module_to_nir() helper
This encapsulates all the little bits needed to turn a shader module
into some mostly reasonable NIR. It handles inlining functions,
lowering variable initializers, handling per-member structs and other
trickiness that is needed for consuming the output of spirv_to_nir.
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15305>
Mike Blumenkrantz [Mon, 14 Mar 2022 13:34:39 +0000 (09:34 -0400)]
lavapipe: enable KHR_memory_model support
lavapipe's memory is always coherent, so this is already supported
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15377>
Mike Blumenkrantz [Mon, 14 Mar 2022 13:45:28 +0000 (09:45 -0400)]
llvmpipe: set nir_shader_compiler_options::use_scoped_barrier
required for vk memory model
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15377>
Mike Blumenkrantz [Mon, 14 Mar 2022 14:04:42 +0000 (10:04 -0400)]
lavapipe: strip unneeded scoped barriers
most of these do nothing and can't be emitted without breaking shaders
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15377>
Connor Abbott [Tue, 22 Feb 2022 17:01:27 +0000 (18:01 +0100)]
ir3: Use isam for bindless readonly ssbo loads
Since this isn't hooked up in gallium, only do it for bindless for now.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15288>
Connor Abbott [Tue, 8 Mar 2022 19:49:01 +0000 (20:49 +0100)]
ir3: Actually use wrmask in emit_sam
I noticed that isam emitted for SSBO loads was writing all 4 components,
which this fixes.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15288>
Connor Abbott [Tue, 8 Mar 2022 12:57:04 +0000 (13:57 +0100)]
ir3/lower_spill: Fix corner case with oob offsets
If the base register is killed, it may be reused as the destination of a
ldp. In that case we should just skip resetting it afterwards.
Fixes regressions in dEQP-VK.ssbo.layout.random.scalar.38 later.
Fixes:
9912c61362b ("ir3/spill: Support larger spill slot offset")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15288>
Connor Abbott [Tue, 8 Mar 2022 12:54:56 +0000 (13:54 +0100)]
ir3/parser: Don't use right recursion
This fixes memory exhaustion errors when doing shader replacement with
very large shaders.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15288>
Connor Abbott [Wed, 23 Feb 2022 15:52:38 +0000 (16:52 +0100)]
tu: Add an extra storage descriptor for isam
Based on a workaround the blob does.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15288>
Connor Abbott [Wed, 23 Feb 2022 15:34:59 +0000 (16:34 +0100)]
tu: Handle UBO/SSBO descriptors with different sizes
We reuse the otherwise-unused offset channel to represent the array
stride, so that reindexing works properly.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15288>
Connor Abbott [Wed, 23 Feb 2022 15:16:03 +0000 (16:16 +0100)]
tu: Rewrite dynamic descriptor handling
We need to prepare for storage buffers having different sizes from
uniform buffers. This switches dynamic_offset_offset to have units of
bytes, the same as offset, and as a nice bonus we can more easily
combine the dynamic and non-dynamic paths in various different places.
This also entails rewriting the code that patches dynamic descriptors,
since we can no longer assume a linear mapping between indices in
dynamicOffsets and descriptor locations which the previous approach
heavily relied on.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15288>
Mike Blumenkrantz [Tue, 8 Mar 2022 20:46:27 +0000 (15:46 -0500)]
zink: export indirect io pipe caps
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15327>
Mike Blumenkrantz [Tue, 8 Mar 2022 20:43:34 +0000 (15:43 -0500)]
zink: fix unreachable() location in ntv streamout info
super annoying to debug otherwise
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15327>
Mike Blumenkrantz [Tue, 8 Mar 2022 20:43:10 +0000 (15:43 -0500)]
zink: add DOUBLE glsl type for streamout export
not used yet but someday
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15327>
Mike Blumenkrantz [Tue, 8 Mar 2022 20:42:09 +0000 (15:42 -0500)]
zink: add nir_var_function_temp support to ntv
I said I'd never do this, but here we are
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15327>
Emma Anholt [Fri, 11 Mar 2022 21:14:46 +0000 (13:14 -0800)]
turnip: Enable VK_EXT_display_control using the common code.
It's all implemented now, so we can turn it back on. Passes 15/16 tests
when X11 isn't running, and 1/16 when it is, with no failures in either
mode.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15351>
Samuel Pitoiset [Mon, 14 Mar 2022 16:30:57 +0000 (17:30 +0100)]
radv: fix returning empty drmFormatModifierTilingFeatures
From the Vulkan spec:
"drmFormatModifierTilingFeatures is a bitmask of
VkFormatFeatureFlagBits that are supported by any image created
with format and drmFormatModifier. The returned
drmFormatModifierTilingFeatures must contain at least one bit."
This fixes recent CTS dEQP-VK.drm_format_modifiers.*.
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/15383>
Samuel Pitoiset [Wed, 9 Mar 2022 08:48:08 +0000 (09:48 +0100)]
radv: remove VK_AMD_shader_info support
This extension is quite old and useless now.
VK_KHR_pipeline_executable_properties should be used instead.
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/15299>
Bas Nieuwenhuizen [Sun, 13 Mar 2022 18:10:38 +0000 (19:10 +0100)]
radv: Expose VK_VALVE_descriptor_set_host_mapping for vkd3d only.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15363>
Hans-Kristian Arntzen [Tue, 22 Feb 2022 10:42:54 +0000 (11:42 +0100)]
radv: Implement VK_VALVE_descriptor_set_host_mapping.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15363>
Bas Nieuwenhuizen [Sun, 13 Mar 2022 18:02:34 +0000 (19:02 +0100)]
vk: Update xml and headers to 1.3.207.
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15363>
Dave Airlie [Mon, 14 Mar 2022 19:22:54 +0000 (05:22 +1000)]
llvmpipe/fs: add missing depth_clamp key printing
Helps debugging shaders better.
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15385>
Mike Blumenkrantz [Mon, 14 Mar 2022 17:52:09 +0000 (13:52 -0400)]
lavapipe: KHR_shader_integer_dot_product
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15384>