Faith Ekstrand
32f2317223
nvk: Use meta for doing blits with the 3D hardware
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:00 +00:00
Faith Ekstrand
2a319d0fe9
nvk/meta: Save/restore descriptor set 0
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:00 +00:00
Faith Ekstrand
1ed8fe749d
nvk: Support load_layer_id
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:00 +00:00
Faith Ekstrand
cda469428d
vulkan/meta: Implement vkCmdBlitImage()
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:00 +00:00
Faith Ekstrand
98867ad976
vulkan/meta: Fixes for clear
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:00 +00:00
Faith Ekstrand
edef53c337
vulkan/meta: Add a create_sampler helper
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:00 +00:00
Faith Ekstrand
c13c6d04d7
vulkan/meta: Add a helper for image view types
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:00 +00:00
Faith Ekstrand
ecf5c5c46d
vulkan/meta: Add key types
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:00 +00:00
Faith Ekstrand
07530902b2
nvk: Properly implement robustBufferAccess
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:00 +00:00
Faith Ekstrand
acf067d635
nvk: Add lowering for load_global_constant_bounded
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:00 +00:00
Faith Ekstrand
9f57d958c3
nvk: drop nvk_nir.h
...
Instead, move the definition of nvk_nir_lower_descriptors to
nvk_shader.h.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:00 +00:00
Thomas H.P. Andersen
f098d26e91
nvk: use common pipeline layout code
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:00 +00:00
Thomas H.P. Andersen
04e7c38fd6
nvk: use common descriptor set layout code
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:00 +00:00
Faith Ekstrand
e0c551599f
nvk: Bring back push sync and dumping
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:00 +00:00
Faith Ekstrand
13c73e3214
nvk: Also store the push BO map in nvk_queue_state
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:00 +00:00
Faith Ekstrand
23aaa4e179
nvk: Add an nvk_queue_submit wrapper
...
Instead of having the common queue code call into drm_nouveau code
directly, add a wrapper layer. This gives us a place to put things like
command buffer dumping. Importantly, we move calling
`vk_queue_set_error()` to this layer because it may abort if the
`VK_ABORT_ON_DEVICE_LOST` is set and we may want to dump before that
happens.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:00 +00:00
Faith Ekstrand
f249555504
nvk: Embed a nv_device_info in nvk_physical_device
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:00 +00:00
Faith Ekstrand
e523c04006
nvk: Reference descriptor set layouts in the sets themselves
...
We need descriptor set layouts for vkUpdateDescriptorSets() but they
have different lifetimes. This is the entire reason for doing reference
counting at all but we haven't actually set up the descriptor set code
to take references yet.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:00 +00:00
Faith Ekstrand
687900de4b
nvk: Implement VK_KHR_push_descriptor
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:00 +00:00
Faith Ekstrand
87956e98c1
nvk: Fix up whitespace in nvk_descriptor_set.c
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:00 +00:00
Faith Ekstrand
f1611979b4
nvk: Use vk_object_zalloc/free for descriptor pools/sets
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:00 +00:00
Faith Ekstrand
b6ce5af12b
nvk: Re-indent vk_instance.c
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:00 +00:00
Faith Ekstrand
ed2898eb2d
nouveau: Drop nouveau_ws_push
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:00 +00:00
Faith Ekstrand
6315ebf58d
nouveau: Use DRM interfaces directly in MME tests
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:00 +00:00
Faith Ekstrand
cf7b5de3e1
nvk: Remove remaining references to nouveau_push.h
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:00 +00:00
Faith Ekstrand
4e58eb39ad
nvk: Implement vkCmdExecuteCommands()
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:32:00 +00:00
Faith Ekstrand
40eedabd4a
nvk: Use nvk_cmd_bo for push bufs
...
This allows us to recycle them. It also makes implementing secondary
command buffers tractable.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:31:59 +00:00
Faith Ekstrand
4998896ae8
nvk: Allocate upload buffers from the command pool
...
Instead of the growing BO thing
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:31:59 +00:00
Faith Ekstrand
c1b92bdf71
nvk: Add an nvk_cmd_buffer_ref_bo helper
...
We only need this for internal stuff that isn't tracked any other way.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:31:59 +00:00
Faith Ekstrand
567148c172
nvk: Add an nvk_cmd_buffer_push helper
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:31:59 +00:00
Faith Ekstrand
87686a2220
nvk: Rework side-band data upload
...
Instead of doing magic alignments, it now takes an explicit alignment
parameter. Also, we now have a version of the helper which does the
memcpy. This should encourage users to avoid reading reading upload
maps in case they're ever write-combine in the future.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:31:59 +00:00
Faith Ekstrand
56843707c1
nvk: Constant buffer alignment is actually 64B
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:31:59 +00:00
Faith Ekstrand
42fb0646a1
nvk: Fully populate QMDs before uploading
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:31:59 +00:00
Faith Ekstrand
9ae0a5fb16
nvk: memcpy root descriptors for compute instead of doing a DMA
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:31:59 +00:00
Faith Ekstrand
9bc97bc208
nvk: Return VkResult from nvk_cmd_buffer_upload_alloc
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:31:59 +00:00
Faith Ekstrand
903c000055
nvk: Add BO recycling to the command pool
...
Command BOs (nvk_cmd_bo) are automatically mapped recyclable BOs to use
for upload and push buffers.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:31:59 +00:00
Faith Ekstrand
366fa3c7e1
nvk: Use cmd instead of cmd_buffer
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:31:59 +00:00
Faith Ekstrand
8b4f441e84
nvk: Break nvk_cmd_pool into its own file
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:31:59 +00:00
Faith Ekstrand
4bdeaef7f2
nvk: Use queue_submit_simple for zero_vram
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:31:59 +00:00
Faith Ekstrand
4ebb6ca41b
nvk: Use submit_simple for draw state init
...
We also move it to being a queue function. This architecturally makes
more sense even if it seems a bit redundant at first. Worst case, we
initialize multiple times but this guarantees that we're initialized by
the time we try to submit something. It also doesn't matter now because
we only have the one queue.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:31:59 +00:00
Faith Ekstrand
a132e18846
nvk: Initialize the queue later in device setup
...
We basically want it at the end but before we set up meta.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:31:59 +00:00
Faith Ekstrand
b660d064c2
nvk: Add an nvk_queue_submit_simple helper
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:31:59 +00:00
Faith Ekstrand
1094ffa82c
nvk: Use a regular BO for the queue state push
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:31:59 +00:00
Faith Ekstrand
08d0231dac
nvk: Use a regular BO for the empty push
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:31:59 +00:00
Faith Ekstrand
1cf4eea7b3
nvk: Submit pushbufs directly
...
By getting rid of the winsys stuff we can batch everything into a single
ioctl which should be a bit more efficient. It also simplifies BO
reference handling because we no longer need any of the save/restore
nonsense because we're the ones building the BO list, not the pushbuf
code. This should be a lot more robust.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:31:59 +00:00
Faith Ekstrand
3ffa526c04
nvk: Move queue_sumbit to nvk_queue_drm_nouveau.c
...
We're about to start doing nouveau DRM specific stuff in here so let's
move it to a nouveau DRM specific file.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:31:59 +00:00
Faith Ekstrand
1832acbac6
nvk: Always allocate empty_push
...
We always allocate it on queue_submit anyway so we may as well allocate
it up-front.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:31:59 +00:00
Faith Ekstrand
75a97b6cb7
nvk: Use bo_new_mapped for the zero page
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:31:59 +00:00
Faith Ekstrand
b8d092afb1
nouveau: Add a nouveau_ws_bo_new_mapped helper
...
Error handling for allocating a bo and immediately mapping it is a pain.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:31:59 +00:00
Faith Ekstrand
dee921f46d
nvk: Use nv_push directly for graphics pipelines
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326 >
2023-08-04 21:31:59 +00:00