Commit graph

2079 commits

Author SHA1 Message Date
Echo J
8c92ac3ee3 nvk: Add NVK to the Vulkan device name
Other Mesa Vulkan drivers do the same thing (this helps to identify
the driver better especially with the recent official name import)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28262>
2024-03-19 14:12:31 +00:00
Faith Ekstrand
7bd1d4848c Revert "nvk: Enable VK_KHR_shader_subgroup_uniform_control_flow"
This reverts commit ac5d529c65.  We're
failing 4 of the tests:

dEQP-VK.reconvergence.subgroup_uniform_control_flow_ballot.compute.nesting4.1.2
dEQP-VK.reconvergence.subgroup_uniform_control_flow_elect.compute.nesting4.1.2
dEQP-VK.reconvergence.workgroup_uniform_control_flow_ballot.compute.nesting4.1.2
dEQP-VK.reconvergence.workgroup_uniform_control_flow_elect.compute.nesting4.1.2

This is because we aren't guaranteeing re-convergence for loop
continues.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28221>
2024-03-15 21:46:00 -05:00
Faith Ekstrand
3bed7b22fe nvk: Always set SET_ATTRIBUTE_POINT_SIZE
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28217>
2024-03-15 21:08:35 +00:00
Valentine Burley
5bde82b353 nvk: Expose VK_EXT_swapchain_colorspace
This extension is basically a no-op exposing some new enums.

Signed-off-by: Valentine Burley <valentine.burley@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28203>
2024-03-15 17:48:29 +00:00
Valentine Burley
68e93cce5e nvk: Expose VK_EXT_surface/swapchain_maintenance1
Passes dEQP-VK.wsi.*.maintenance1.*.

Signed-off-by: Valentine Burley <valentine.burley@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28203>
2024-03-15 17:48:29 +00:00
Valentine Burley
547636dc43 nvk: Expose VK_EXT_display_control
Use the common implementation.

Signed-off-by: Valentine Burley <valentine.burley@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28203>
2024-03-15 17:48:29 +00:00
Valentine Burley
3da1c0b6c9 nvk: Fix missing implementation of creating images from swapchains
These pNext structs are part of VK_KHR_swapchain which is core Vulkan
1.1 but they were missing. Based on ANV and RADV.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10806

Signed-off-by: Valentine Burley <valentine.burley@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28203>
2024-03-15 17:48:29 +00:00
Faith Ekstrand
160aa8ba48 nvk: Ignore rasterizationSamples when handling sampleShadingEnable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28192>
2024-03-15 01:31:55 +00:00
Faith Ekstrand
7604697ec6 nvk: Implement shaderStorageImageMultisample
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9660
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28159>
2024-03-13 23:49:12 +00:00
Faith Ekstrand
357720c5a7 nvk: Use different descriptor layouts for storage vs. sampled images
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28159>
2024-03-13 23:49:12 +00:00
Faith Ekstrand
86a462fb96 nvk: Stop pretending to handle Intel image intrinsics
This is probably just a copy+paste from ANV when I wrote the descriptor
code.  There's no actual point to pretending to do anything with these.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28159>
2024-03-13 23:49:12 +00:00
Faith Ekstrand
bd9836a0b8 nvk: Use a HW generation names instead of chipsets
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28159>
2024-03-13 23:49:12 +00:00
Faith Ekstrand
be1ef1a8d8 nil: Expose nil_pix_extent_sa()
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28159>
2024-03-13 23:49:11 +00:00
Faith Ekstrand
418f8be9ea nil: Add a helper to view a MSAA image as samples
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28159>
2024-03-13 23:49:11 +00:00
Faith Ekstrand
ed6fd25a62 nil: Add support for larger textures on Pascal+
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28159>
2024-03-13 23:49:11 +00:00
Faith Ekstrand
c3177e4fc2 nil: Whitespace fix
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28159>
2024-03-13 23:49:11 +00:00
Valentine Burley
72e1a57752 nvk: Reorder device features
Sort device features by KHR, EXT, vendor and then alphabetically within that.

Signed-off-by: Valentine Burley <valentine.burley@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28094>
2024-03-13 23:30:46 +00:00
Valentine Burley
94622ae491 nvk: Advertise VK_KHR_vertex_attribute_divisor
This is a promotion from the EXT, except the new property
supportsNonZeroFirstInstance which is already supported.

Signed-off-by: Valentine Burley <valentine.burley@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28094>
2024-03-13 23:30:46 +00:00
Dave Airlie
133c73da85 nvk: enable a mappable bar heap when rebar is disabled.
Now that we've resolved the kernel side issues, this should be fine
to expose on non-rebar systems.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28144>
2024-03-13 23:13:40 +00:00
Valentine Burley
ac5d529c65 nvk: Enable VK_KHR_shader_subgroup_uniform_control_flow
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9622

Signed-off-by: Valentine Burley <valentine.burley@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28033>
2024-03-13 18:40:17 +00:00
Karol Herbst
821f4c8d99 nouveau: import libdrm_nouveau
Most of the code is copied as is, but there are a couple of changes:
- drop pre nvif code
- nouveau_list -> list_head
- pthread_mutex_t -> simple_mtx_t
- nvif_unwrap removed
- no assignments in if statements
- nouveau_object_mthd -> nouveau_device_info
- reworked object allocation UAPI calls

Most of the reworked code was copied from NVK or a previous version of it

Signed-off-by: Karol Herbst <kherbst@redhat.com>
Acked-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27853>
2024-03-13 15:21:07 +00:00
Karol Herbst
a62fba6b62 nvk: use c.get_supported_arguments for compiler flags
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27853>
2024-03-13 15:21:07 +00:00
Mary Guillemard
80eac1337d nvk: Always copy conditional rendering value before compare
The spec requires a compare on 32-bit but the hardware actually compare 64-bit.

As such, we are required to copy the value to a temporary buffer before
the compare.

Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com>
Fixes: 8c25cd307a ("nvk: EXT_conditional_rendering")
Reviewed-by: M Henning <drawoc@darkrefraction.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28106>
2024-03-12 20:22:27 +00:00
Alyssa Rosenzweig
3f287d100c nvk: derive ht
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28056>
2024-03-12 19:41:49 +00:00
Alyssa Rosenzweig
a6123a80da nir/opt_shrink_vectors: shrink some intrinsics from start
If the backend supports it, intrinsics with a component() are straightforward to
shrink from the start. Notably helps vectorized I/O.

v2: add an option for this and enable only on grown up backends, because some
backends ignore the component() parameter.

RADV GFX11:
Totals from 921 (1.16% of 79439) affected shaders:
Instrs: 616558 -> 615529 (-0.17%); split: -0.30%, +0.14%
CodeSize: 3099864 -> 3095632 (-0.14%); split: -0.25%, +0.11%
Latency: 2177075 -> 2160966 (-0.74%); split: -0.79%, +0.05%
InvThroughput: 299997 -> 298664 (-0.44%); split: -0.47%, +0.02%
VClause: 16343 -> 16395 (+0.32%); split: -0.01%, +0.32%
SClause: 10715 -> 10714 (-0.01%)
Copies: 24736 -> 24701 (-0.14%); split: -0.37%, +0.23%
PreVGPRs: 30179 -> 30173 (-0.02%)
VALU: 353472 -> 353439 (-0.01%); split: -0.03%, +0.02%
SALU: 40323 -> 40322 (-0.00%)
VMEM: 25353 -> 25352 (-0.00%)

AGX:

total instructions in shared programs: 2038217 -> 2038049 (<.01%)
instructions in affected programs: 10249 -> 10081 (-1.64%)

total alu in shared programs: 1593094 -> 1592939 (<.01%)
alu in affected programs: 7145 -> 6990 (-2.17%)

total fscib in shared programs: 1589254 -> 1589102 (<.01%)
fscib in affected programs: 7217 -> 7065 (-2.11%)

total bytes in shared programs: 13975666 -> 13974722 (<.01%)
bytes in affected programs: 65942 -> 64998 (-1.43%)

total regs in shared programs: 592758 -> 591187 (-0.27%)
regs in affected programs: 6936 -> 5365 (-22.65%)

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> (v1)
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28004>
2024-03-12 18:17:17 +00:00
Faith Ekstrand
626502d7c7 nil: Advertise support for PIPE_FORMAT_R5G6B5_UNORM
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28103>
2024-03-12 01:20:18 +00:00
Faith Ekstrand
edd3379c09 nvk: Manually offset array and Z slices in BeginRendering
We can't trust the hardware above about 4095 so we're better off just
offsetting manually now that we have the code to do so.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10655
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28103>
2024-03-12 01:20:18 +00:00
Faith Ekstrand
81db82bd8c nvk: Add a nil_image helper variable in BeginRendering
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28103>
2024-03-12 01:20:18 +00:00
Faith Ekstrand
696e2064bd nil: Move Z slice offset calculations to a helper
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28103>
2024-03-12 01:20:18 +00:00
Faith Ekstrand
cda4ca53b8 nvk: Drop nvk_device::pdev
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28105>
2024-03-11 17:46:15 +00:00
Faith Ekstrand
4b38ba5d70 nvk: Replace more dev->pdev with nvk_device_physical()
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28105>
2024-03-11 17:46:15 +00:00
Faith Ekstrand
9ddaa4ea10 nvk: Add and use more cmd_buffer_*_cls helpers
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28105>
2024-03-11 17:46:15 +00:00
Faith Ekstrand
f55bb91159 nvk: Drop a bunch of dev->pdev and just use pdev
In all these cases, we already have a pdev temporary, we're just not
using it.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28105>
2024-03-11 17:46:15 +00:00
Faith Ekstrand
cc74a819e4 nvk: Disable the Out Of Range Address exception
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27927>
2024-03-10 17:30:48 +00:00
Faith Ekstrand
0ed7bce8e5 nvk: Always wait for the FALCON in set_priv_reg
The previous version had an optimization where, instead of actually
waiting on the FALCON to return, it would just do a bunch of nops in
some cases.  This seems broken at least on Turing+ and results in
registers not ending up with the right values.  It only really shows up
when you set two registers back-to-back in which case the second
SET_PRIV_REG may mess up the first.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27927>
2024-03-10 17:30:48 +00:00
Faith Ekstrand
df90d80d9d nvk: Document the register name for the helper load workaround
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27927>
2024-03-10 17:30:48 +00:00
Faith Ekstrand
cbcef73668 nil: Fix a typo in a comment
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27927>
2024-03-10 17:30:48 +00:00
Echo J
f8f9bceb17 nak: Rip out a few dead_code statements
This is a far less radical solution (but I still removed a decent
amount of them)

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27991>
2024-03-10 16:28:14 +00:00
Mohamed Ahmed
3b05ebaa62 nvk: advertise shader resource residency
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26719>
2024-03-09 00:13:23 +00:00
Mohamed Ahmed
410de4bf69 nak: wire up sparse image loads
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26719>
2024-03-09 00:13:23 +00:00
Faith Ekstrand
b17f139281 nak: Wire up sparse residency for texture ops
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26719>
2024-03-09 00:13:23 +00:00
Faith Ekstrand
140cf8d616 nak/nir: Add sparse support to shrink_image_load()
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26719>
2024-03-09 00:13:23 +00:00
Faith Ekstrand
671c6334bf nak: Plumb is_sparse through from NIR for texture ops
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26719>
2024-03-09 00:13:23 +00:00
Mohamed Ahmed
75390a7aeb nak: wire up shader resource residency intrinsics
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26719>
2024-03-09 00:13:23 +00:00
Faith Ekstrand
09e2917ee8 nak: Rename resident to fault
The predicate returns true if the requisite pixels are NOT resident.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26719>
2024-03-09 00:13:23 +00:00
Mohamed Ahmed
48803ac53d nvk: enable sparse residency features
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26719>
2024-03-09 00:13:23 +00:00
Faith Ekstrand
db45b29f5f nvk/queue: Add support for non-opaque sparse binds
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26719>
2024-03-09 00:13:23 +00:00
Faith Ekstrand
80b417d557 nvk: Refactor opaque image binds
This adds a helper for iterating over the various planes separate from
the actual bind operation.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26719>
2024-03-09 00:13:23 +00:00
Faith Ekstrand
97de81af13 nvk/queue: Add a push_bind helper
This automatically combines consecutive bind ranges so we potentially
pass a smaller set of binds to the kernel.  It also does the assert that
everything is in-bounds.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26719>
2024-03-09 00:13:23 +00:00
Mohamed Ahmed
bd6940a68d nvk: add sparse queries
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26719>
2024-03-09 00:13:23 +00:00