Commit graph

184774 commits

Author SHA1 Message Date
Faith Ekstrand
b2fe4c7729 nvk: Print an error message if VM_BIND support is missing
This should prevent a lot of bug reports.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
Faith Ekstrand
0b6afbc407 nouveau/winsys: Allow nouveau_ws_device_new() without VM_BIND
Silently fall back to non-VM_BIND.  The client can check for the
has_vm_bind flag in the device to detect whether VM_BIND is actually
available or not.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
Dave Airlie
1a6a198ab5 nvk: add new internal bo allocation flag.
This is to allow the kernel to use a single resv object, this might
need more work.

Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
Faith Ekstrand
766a6a5a4d nvk: Use an empty EXEC for the empty submit case
The new UAPI allows for an EXEC with zero pushes just fine so we no
longer need the no-op push just for synchronization.  This lets us drop
the whole empty push we allocate per-queue as well.

Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
Dave Airlie
9cb945015c nvk: enable sparse residency buffer on maxwell+
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
Dave Airlie
0fe8090bc7 nvk: enable a bunch of external fence/semaphore bits
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
Dave Airlie
921fc517ce nvk: enable sparse features
There is a bug on my turing with
dEQP-VK.sparse_resources.buffer.ssbo.sparse_residency.buffer_size_2_24
but none of the others and we aren't seeing it on some other devices.

Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
Dave Airlie
9a0a5f8561 nvk: Handle pre-turing indirect buffers with sparse
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
Dave Airlie
723041a3ed nvk/queue: add support for syncobjs and sparse binds
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
Dave Airlie
7321d151a9 nvk: Add support for sparse images
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
Dave Airlie
03f0f01904 nvk: Add support for sparse buffers
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
Faith Ekstrand
6dbf02ec64 nouveau/mme: Support the new UAPI
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
Dave Airlie
fa8bbfaa55 nouveau/winsys: add support for the vma bind interfaces
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
Dave Airlie
c815ff1661 nvk: always sync internal cmd bufs for vma lifetimes.
We always sync on the internal push buf submissions for zero vram
and ctx setup, these shouldn't be bottlenecks.

Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
Faith Ekstrand
9d7d76cddc nouveau/shim: Use the imported nouveau_drm.h headers
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
Faith Ekstrand
5fd1b8e086 nvk: Use the imported nouveau_drm.h headers
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
Faith Ekstrand
300df8e177 nouveau/winsys: Use the imported nouveau_drm.h headers
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
Faith Ekstrand
fc1fb3a516 drm-uapi: Import nouveau_drm.h
From https://cgit.freedesktop.org/drm-misc/

    commit e02238990b1ab2dfc8abb4c28369f1da6e863f81
    Author: Danilo Krummrich <dakr@redhat.com>
    Date:   Fri Aug 4 20:23:43 2023 +0200

        drm/nouveau: new VM_BIND uAPI interfaces

Signed-off-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
Faith Ekstrand
ae37fbba12 nouveau: Move shader topology info to nv_device_info
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
Faith Ekstrand
d8b7b1d784 nvk: Decorate CmdBegin/EndRendering entrypoints
These decorations are necessary for proper building on Android and
Windows.  You don't notice them in regular Linux builds, though.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
Faith Ekstrand
40ab58035e nvk: Implement GetRenderingAreaGranularityKHR
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
Faith Ekstrand
8636597c4a nvk: Implement CmdBindIndexBuffer2KHR
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
Faith Ekstrand
c4b7754e7c nvk: Use VkBufferUsageFlags2
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
Faith Ekstrand
98a3bc699b nvk: Implement the maintenance5 image layout queries
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
Faith Ekstrand
af72961ff1 nvk: Rework memory requirements to handle aspects correctly
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
Faith Ekstrand
733d20277c nvk: Misc. style nits
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
Dave Airlie
50e5ee586c nvk: enable EXT_depth_clip_enable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
Dave Airlie
15d12bb615 nvk: enable EXT_depth_clip_control
This is already handled in the dynamic state.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
Faith Ekstrand
57c38a5669 nvk: Implement CopyQueryPoolResults with a compute shader
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
Faith Ekstrand
4a049f0d2c nvk: Separate the MME query copy code out a bit
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
Faith Ekstrand
f090efa8dc nvk: Enable the SPIR-V DeviceGroup capability
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
Faith Ekstrand
dadf9d59e6 nvk: Add support for variable pointers
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
Faith Ekstrand
0241ed6025 nvk: Add a root_desc_addr to the root descriptor table
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
Faith Ekstrand
2e709a9278 nvk: Use nvk_root_descriptor_offset for drawInfoBase
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
Faith Ekstrand
0afc57afad nvk: Rework multi-plane format features a bit
We need to avoid returning certain feature flags such as rendering or
storage from vkGetPhysicalDeviceFormatFeatures*() but still allow those
for single-plane views of the image which means allowing them in
vkGetPhysicalDeviceImageFormatProperties*().

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
Faith Ekstrand
b883031b91 nvk: Improve image format properties and limits
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
Mohamed Ahmed
2b85ccacf0 nouveau/nvk: Enable VK_KHR_sampler_ycbcr
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
Mohamed Ahmed
e311b24b79 nouveau/nvk: Add multiple sampler planes for CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
Mohamed Ahmed
67a2d78477 nouveau/nvk: Create helper function for sampler creation
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
Mohamed Ahmed
41b2034460 nouveau/nvk: Support multi-plane descriptors in nvk_nir_lower_descriptors.c
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
Mohamed Ahmed
a863ddcf9e nouveau/nvk: Add YCbCr sampler NIR lowering pass
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
Faith Ekstrand
fd03f4cd1a nvk: Use the new NIL helper for image level extents for copies
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
Faith Ekstrand
866fc8b3f4 nil: Add a nil_image_level_extent_px() helper
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
Dave Airlie
113d3447bb nvk: enable rgb32 texel buffer support
This is needed for zink.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
Emma Anholt
758973fb62 nvk: Disable shaderStorageImageReadWithoutFormat pre-Maxwell.
On Kepler and earlier, image loads must get lowered based on the declared
format, since we don't have a SULDP op.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
Faith Ekstrand
1bbfdccc9f nouveau: Drop GART size from nv_device_info
The kernel always returns something rediculously high, like 40 bits or
something.  There's really no point in us tracking it.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:07 +00:00
George Ouzounoudis
b2fa2ed04e nouveau/codegen: Do not keep redundant info for tessellation domain
Just add an assert instead.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:06 +00:00
George Ouzounoudis
94e5eb68f4 nvk: Do not keep redundant info for tessellation domain
This is not needed after merge_tess_info that or's the info of both the
tesc and tese shaders.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:06 +00:00
Dave Airlie
2d670169ce nvk: fix independent color write masks.
This fixes:
dEQP-VK.renderpass.suballocation.attachment_write_mask.attachment_count_*

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:06 +00:00
Faith Ekstrand
b844b6b66a docs/relnotes: Stick something about NVK in new_features.txt
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:32:06 +00:00