lavapipe: NV_device_generated_commands
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Fri, 2 Jun 2023 14:22:11 +0000 (10:22 -0400)
committerMarge Bot <emma+marge@anholt.net>
Thu, 8 Jun 2023 01:22:01 +0000 (01:22 +0000)
commit976dd26004ff6b52e14c031398edae840ded005a
treeb1776daf56ba568894d5b1248bb513fb3664f4e4
parent32096095356c1ea1fb6681d77338c7f209c4cc62
lavapipe: NV_device_generated_commands

this adds sufficient handling to pass the vkd3d-proton tests as well
as running cts on zink, which is gonna have to be enough since there's
no vkcts

it works by dynamically generating a vk_cmd_queue list of commands just
like the regular cmd queue would generate, with the minor change that
the final link has a nulled next pointer to correctly handle buffer copies,
where the last link would otherwise have a next pointer pointing to the
original cmd list

Acked-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23394>
src/gallium/frontends/lavapipe/lvp_device.c
src/gallium/frontends/lavapipe/lvp_execute.c
src/gallium/frontends/lavapipe/lvp_pipeline.c
src/gallium/frontends/lavapipe/lvp_private.h