Commit Graph

191712 Commits

Author SHA1 Message Date
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
Faith Ekstrand 7aac3ea26a vulkan/wsi/x11: 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 3ba664c640 vulkan/wsi/x11: Use c11/threads for thread spawning
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 a0820a2a37 vulkan/wsi/wayland: 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 bf3052009a util/cnd_monotonic: Use a void * on Windows
This is the same thing that our win32 implementation of c11/threads does
and it allows us to avoid using CONDITION_VARIABLE in a header.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29924>
2024-07-08 22:09:06 +00:00
Faith Ekstrand 71524fc82e util/cnd_monotonic: Move the guts to a c file
We need to be able to include windows.h which is pretty mean to pull in
globally.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29924>
2024-07-08 22:09:06 +00:00
Esdras Tarsis 2bbb859343 nvk: Enable 8bit and 16bit access in VK_KHR_workgroup_memory_explicit_layout.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30059>
2024-07-08 21:59:42 +00:00
David Rosca 20b76fe1d4 gallium: Remove pipe_h264_picture_desc.slice_parameter.slice_count
This is a duplicate of pipe_h264_picture_desc.slice_count and is not
currently used anywhere.

Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Reviewed-by: Boyuan Zhang <Boyuan.Zhang@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30011>
2024-07-08 19:09:38 +00:00