Commit graph

175278 commits

Author SHA1 Message Date
Karol Herbst
1f8682a1e7 nvk: implicitly reset the command buffer
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:54 +00:00
Faith Ekstrand
eae2eac3cf nvk: Add a skeleton for pipelines
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:54 +00:00
Dave Airlie
c165e5b5b0 nvk: Initial wiring in of the compiler
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:54 +00:00
Faith Ekstrand
124f2708ef nvk: Add an nvk_device_physical helper
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:54 +00:00
Dave Airlie
8050f61b62 nvk: link in codegen without gallium bits.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:54 +00:00
Karol Herbst
325109122a nvk: advertise VK_KHR_copy_commands2
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:54 +00:00
Karol Herbst
eaed2a4340 nvk: implement CmdCopyBuffer2
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:54 +00:00
Karol Herbst
198d2da5b1 nvk: implement CmdUpdateBuffer
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:53 +00:00
Karol Herbst
dc84cf6ccb nvk: implement CmdFillBuffer
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:53 +00:00
Karol Herbst
fd7d38875d nvk: optimize blit command buffer gen
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:53 +00:00
Dave Airlie
6df4eda000 nouveau/ws: drop the old push generators.
leave drf.h as it's need for the compute qmd stuff.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:53 +00:00
Dave Airlie
af823ae71a nvk: port the blit and copy code to new command submission.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:53 +00:00
Dave Airlie
4cd3d74136 nvk: move to new command stream generator.
This auto generates macros/inlines/structs from the nvidia
class headers using a python for noobs script

v2: use argparse.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:53 +00:00
Faith Ekstrand
b5010e630a nvk/copy: Use nvk_image_base_address()
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:53 +00:00
Faith Ekstrand
13dca99623 nvk/image: Add image address helpers
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:53 +00:00
Faith Ekstrand
1f42ab6f30 nvk/copy: Use nvk_buffer_address in CmdCopyBuffer
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:53 +00:00
Faith Ekstrand
1a906072db nvk/buffer: Add a push_buffer_ref helper
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:53 +00:00
Faith Ekstrand
d59c6dc4a7 nvk/buffer: Take an offset in nvk_buffer_address
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:53 +00:00
Karol Herbst
b783809270 nvk: report maxMipLevels as 1
the CTS uses that value in some places

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:53 +00:00
Karol Herbst
242c5ddb67 nvk: add support for blits
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:53 +00:00
Karol Herbst
aa0ac90ed3 nvk: simple format table
this is enough to run the image copy and blit tests on a couple of formats

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:53 +00:00
Karol Herbst
d98540c645 nvk: add basic support for images
enough to get basic operations working

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:53 +00:00
Karol Herbst
7e2f7e38bf nvk: use fermi class definitions
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:53 +00:00
Karol Herbst
36e5573ef0 nouveau/ws: bind 2D class
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:53 +00:00
Karol Herbst
acbd4523a4 nouveau/ws: set GPU object class
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:53 +00:00
Karol Herbst
8e382f197d nouveau/ws: PUSH_IMMD only works with 16 bit values
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:53 +00:00
Faith Ekstrand
78a94be05a nvk: Re-format descriptor sets some more
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:53 +00:00
Faith Ekstrand
f57a3ef7f3 nvk: Re-format pipeline layouts
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:53 +00:00
Faith Ekstrand
e9fbac9002 nvk: Re-format descriptor set layouts
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:53 +00:00
Dave Airlie
0b675ef7a3 nvk: descriptor set freeing fix
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:53 +00:00
Dave Airlie
d4e71940c2 nvk: implement buffer address.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:53 +00:00
Dave Airlie
56a5ed2b70 nvk: add descriptor set bo allocation.
This allocates the backing bo for the pool, and allocates the
sets from it.

This is mostly ported from radv.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:53 +00:00
Faith Ekstrand
79c9223864 nvk: Expose nvk_descriptor_stride_align_for_type
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:53 +00:00
Dave Airlie
3033681f93 nvk: some boilerplate for descriptor sets
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:53 +00:00
Dave Airlie
50ca748b6a nvk: add initial descriptor pool framework.
destruct has internal impl for create to call on errors later.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:53 +00:00
Dave Airlie
0930936a6e nvk: reindent descriptor sets to mesa std.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:53 +00:00
Faith Ekstrand
b8a6a4cb7d nvk: Implement vkUpdateDescriptorSets
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:53 +00:00
Faith Ekstrand
1b2656b674 nvk: Add initial descriptor set lowering
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:53 +00:00
Faith Ekstrand
04e52c25ac nvk: Implement VkPipelineLayout
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:53 +00:00
Faith Ekstrand
3137f9df6e nvk: Implement VkDescriptorSetLayout
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:53 +00:00
Dave Airlie
fc6f9a45e9 nvk: Reset pushbufs on command buffer reset
Karol: also reset on VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:53 +00:00
Karol Herbst
464534995f nouveau/ws: fix setting push bo domains
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:53 +00:00
Karol Herbst
927de5918f nvk: impl nvk_CmdCopyBuffer
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:53 +00:00
Karol Herbst
bc4f7b4bf1 nvk: add nvk_CmdPipelineBarrier2 stub
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:53 +00:00
Karol Herbst
47b95416ae nvk: add nvk_bo_sync
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:53 +00:00
Dave Airlie
6e0089307e nvk: add cmd buffer framework
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:53 +00:00
Karol Herbst
decb8c6fd4 nvk: allocate a GPU context for each VkDevice
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:53 +00:00
Dave Airlie
f190398049 nvk: Add initial queue
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:53 +00:00
Karol Herbst
cd46cf852b novueau/bo: add nouveau_ws_bo_wait
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:53 +00:00
Karol Herbst
d71a4d73b8 novueau/bo: refcount it
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24326>
2023-08-04 21:31:53 +00:00