Faith Ekstrand
a342379c56
nvk: Put CB0 in VRAM
...
This improves frame rates in The Witness by about 2%.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30033 >
2024-07-09 01:22:23 +00:00
Faith Ekstrand
68f1df5ebb
nvk/nvkmd: Be a lot more pedantic about VA alignments
...
The VA alignment now has two pieces: The bind alignment and the base
address alignment. The caller gets to request the later but not the
former. The bind alignment is based entirely on whether or not we know
a priori that the given VA will only ever be used for GART.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30033 >
2024-07-09 01:22:23 +00:00
Faith Ekstrand
7f45d20d2b
nvk/nvkmd: Be more specific about memory alignments
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30033 >
2024-07-09 01:22:23 +00:00
Faith Ekstrand
1db57bb414
nvk/nvkmd: Rework memory placement flags
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30033 >
2024-07-09 01:22:23 +00:00
Faith Ekstrand
e04bb3dffa
nvk: Drop nvk_buffer::is_local
...
It was always kinda BS and we aren't even using it anymore thanks to
alignment requirements.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30033 >
2024-07-09 01:22:23 +00:00
Faith Ekstrand
2689760e38
nvk/nvkmd: Flip the script on NO_SHARED
...
It's a positive flag in the kernel interface because it enables an
optimization and adds restrictions to the BO. But from a userspace PoV,
NO_SHARE shoudd be the default with import/export being something we
expressly have to ask for. This also reduces the number of flags we're
setting everywhere.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30033 >
2024-07-09 01:22:23 +00:00
Faith Ekstrand
1cee0c9cb7
nvk/nvkmd: Add real mem<->bo flag translation
...
This way we can start to disconnect nvkmd_mem_flags from
nouveau_ws_bo_flags.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30033 >
2024-07-09 01:22:23 +00:00
Faith Ekstrand
0c024da291
nvk: Do mem maps directly in nvkmd on nouveau
...
There's no point in the extra layer. It's all just mmap() and friends.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30033 >
2024-07-09 01:22:23 +00:00
Faith Ekstrand
7bd9b9d96c
nvk/nvkmd: Re-implement NVK_DEBUG=vm
...
This new implementation is hooked at the nvkmd level and also works for
queued binds via a bind ctx.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30033 >
2024-07-09 01:22:23 +00:00
Faith Ekstrand
0abd7fa58a
nvk/nvmkd: Plumb parent pointers through everywhere
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30033 >
2024-07-09 01:22:23 +00:00
Faith Ekstrand
d3264fdfb9
nvk: Move debug flags int nvk_debug.h
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30033 >
2024-07-09 01:22:23 +00:00
Faith Ekstrand
d96bf198b4
nvk: Move Heaps and BO binding into nvkmd
...
We may want to move this even higher, into NVK at some point. However
the wrappers in the winsys layer really aren't doing us much. If
anything, now that nvkdm_mem::va is an nvkmd_va *, this actually makes
everything simpler because it's allocated through exactly the same paths
as sparse VA.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30033 >
2024-07-09 01:22:23 +00:00
Faith Ekstrand
0856c27dd1
nouveau/mme: Use fixed BO addresses in the MME test
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30033 >
2024-07-09 01:22:23 +00:00
Faith Ekstrand
c6c4483d0f
nouveau/mme: Don't leak data_bo
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30033 >
2024-07-09 01:22:23 +00:00
Faith Ekstrand
7173ae1130
nouveau/mme: Don't dereference an empty vector
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30033 >
2024-07-09 01:22:23 +00:00
Faith Ekstrand
60c3c272ec
nvk: Remove the last vestages of nouveau/winsys from core NVK
...
Everything now goes through NVKMD.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30033 >
2024-07-09 01:22:23 +00:00
Faith Ekstrand
8a516394f9
nvk: Use nvkmd_ctx for queue submit
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30033 >
2024-07-09 01:22:23 +00:00
Faith Ekstrand
996b152375
nvk: Use an nvkmd_ctx for sparse binding
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30033 >
2024-07-09 01:22:23 +00:00
Faith Ekstrand
a8550862b5
nvk: Convert the upload queue to nvkmd_ctx
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30033 >
2024-07-09 01:22:23 +00:00
Faith Ekstrand
053b7f0f30
nvk/nvkmd: Implement nvkmd_ctx for nouveau
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30033 >
2024-07-09 01:22:23 +00:00
Faith Ekstrand
87ca92d881
nvk/nvkmd: Add a context interface
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30033 >
2024-07-09 01:22:23 +00:00
Faith Ekstrand
29e3b19860
nvk: Use nvkmd_mem for the zero page, VAB, and CB0
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30033 >
2024-07-09 01:22:23 +00:00
Faith Ekstrand
92ac7db7c8
nvk: Use nvkmd_mem for the nvk_queue_state::push
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30033 >
2024-07-09 01:22:23 +00:00
Faith Ekstrand
d0593bb86c
nvk: Drop extra_bos from nvk_queue_submit_simple()
...
We aren't using it anymore and the only reason it existed in the first
place was for providing BO lists to the old UAPI.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30033 >
2024-07-09 01:22:23 +00:00
Faith Ekstrand
b86079d61e
nvk: Use an nvkmd_mem for the SLM area
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30033 >
2024-07-09 01:22:23 +00:00
Faith Ekstrand
d8d2ba9666
nvk: Use nvkmd_mem for query pools
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30033 >
2024-07-09 01:22:23 +00:00
Faith Ekstrand
d072bea5b7
nvk: Use nvkmd_mem for shader and event heaps
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30033 >
2024-07-09 01:22:23 +00:00
Faith Ekstrand
17623bc8a9
nvk: Use nvkmd_mem for descriptor tables
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30033 >
2024-07-09 01:22:23 +00:00
Faith Ekstrand
a87ee75737
nvk: Use nvkmd_mem in nvk_upload_queue
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30033 >
2024-07-09 01:22:23 +00:00
Faith Ekstrand
bf180d2bbf
nvk: Use nvkmd_mem for nvk_descriptor_pool
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30033 >
2024-07-09 01:22:23 +00:00
Faith Ekstrand
586990f89e
nvk: Use nvkmd_mem for nvk_cmd_pool
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30033 >
2024-07-09 01:22:23 +00:00
Faith Ekstrand
bf8115e3c2
nvk: Use nvkmd_mem for nvk_image::linear_tiled_shadow_mem
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30033 >
2024-07-09 01:22:23 +00:00
Faith Ekstrand
99ddddb18d
nvk: Use nvkmd_mem for nvk_device_memory
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30033 >
2024-07-09 01:22:23 +00:00
Faith Ekstrand
93792b5ef2
nvk: Add static wrappers for image/buffer binding
...
This makes the looping and error handling more clear. We're about to
make some of these ops capable of failing so getting that right is
really important.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30033 >
2024-07-09 01:22:23 +00:00
Faith Ekstrand
e63649da11
nvk/nvkmd: Implement the mem and va interfaces for nouveau
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30033 >
2024-07-09 01:22:23 +00:00
Faith Ekstrand
0b93c42ba1
nvk/nvkmd: Add memory and virtual address interfaces
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30033 >
2024-07-09 01:22:23 +00:00
Faith Ekstrand
4323d2ac54
nvk: Use the NVKMD interface for device enumeration
...
We'll keep nvk_device::ws_dev for now because it's useful to not have to
change everything over at once.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30033 >
2024-07-09 01:22:23 +00:00
Faith Ekstrand
4db1bd5846
nvk/nvkmd: Implement dev and pdev for nouveau
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30033 >
2024-07-09 01:22:23 +00:00
Faith Ekstrand
c8b36bbcc0
nvk: Add the start of a KMD abstraction
...
This is just the initial header and structs for device enumeration and a
few dev and pdev queries.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30033 >
2024-07-09 01:22:22 +00:00
Faith Ekstrand
6de4a408f5
nvk: Initialize the debug flags in nvk_instance
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30033 >
2024-07-09 01:22:22 +00:00
Faith Ekstrand
1f405ef9c6
nvk: Fetch debug flags from the physical device
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30033 >
2024-07-09 01:22:22 +00:00
Faith Ekstrand
04bdbb71de
nvk: Align sparse-bound images to the sparse binding size
...
Instead of trusting in nil::Image::align_B, force it to the sparse
binding size because we know we're going to try and sparse bind it.
Otherwise, small sparse images could fail to bind at the bind step.
Fixes: 7321d151a9 ("nvk: Add support for sparse images")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30033 >
2024-07-09 01:22:22 +00:00
Faith Ekstrand
58181b7bbc
nvk: Bump the sparse alignment requirement on buffers to 64K
...
Otherwise, if they live in VRAM, binding might fail.
Fixes: 03f0f01904 ("nvk: Add support for sparse buffers")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30033 >
2024-07-09 01:22:22 +00:00
Faith Ekstrand
9bd64cbefe
nvk: Why are nvk_image.c/h writeable?
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30033 >
2024-07-09 01:22:22 +00:00
Karol Herbst
47377b550f
Revert "rusticl/queue: gracefully stop the worker thread"
...
Apparently this code caused issues and the fix was only papering over the
issue, which I now I can't trigger anyway.
This reverts commit 9d458b7fc1 .
Fixes: 9d458b7fc1 ("rusticl/queue: gracefully stop the worker thread")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30067 >
2024-07-08 23:30:31 +00:00
Karol Herbst
cf27fd22c4
Revert "rusticl/queue: run rustfmt"
...
This reverts commit 47b1241251 .
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30067 >
2024-07-08 23:30:31 +00:00
Faith Ekstrand
4f89af3723
vulkan: Use u_cnd_monotonic for vk_sync_timeline
...
The code we had for handling this with c11 cnd_t was gross. Let's use a
primitive that actually works.
Reviewed-by: Derek Foreman <derek.foreman@collabora.com>
Reviewed-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29924 >
2024-07-08 22:09:06 +00:00
Faith Ekstrand
6aaf6d090c
vulkan/wsi: Delete wsi_init_pthread_cond_monotonic
...
Reviewed-by: Derek Foreman <derek.foreman@collabora.com>
Reviewed-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29924 >
2024-07-08 22:09:06 +00:00
Faith Ekstrand
3c4e1c918c
vulkan/wsi/queue: Use mtx_t and u_cnd_monotonic
...
Reviewed-by: Derek Foreman <derek.foreman@collabora.com>
Reviewed-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29924 >
2024-07-08 22:09:06 +00:00
Faith Ekstrand
97e22b70b4
vulkan/wsi/display: Use mtx_t and u_cnd_monotonic
...
Reviewed-by: Derek Foreman <derek.foreman@collabora.com>
Reviewed-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29924 >
2024-07-08 22:09:06 +00:00