anv: add a new execution mode for secondary command buffers
authorLionel Landwerlin <lionel.g.landwerlin@intel.com>
Sat, 4 Apr 2020 10:22:24 +0000 (13:22 +0300)
committerLionel Landwerlin <lionel.g.landwerlin@intel.com>
Wed, 20 May 2020 11:02:27 +0000 (14:02 +0300)
commit34a0ce58c7f85ea3ec3f1026469ce06602f38a5b
treedca96575021a7ff00ccc284474711a349e8ec90f
parenta96d92a689a3e6112b5e2b4cc1b99b1152d7961a
anv: add a new execution mode for secondary command buffers

This change adds a call/return execution mode for secondary command
buffer rather than the existing copy into the primary batch mode.

v2: Rework convention to avoid burning an ALU register (Jason)

v3: Use anv_address_add() (Jason)

v4: Move command emissions to anv_batch_chain.c (Jason)

v5: Also move last MI_BBS emission in secondary command buffer to
    anv_batch_chain.c (Jason)

v6: Fix end secondary command buffer end (Jason)

v7: Refactor anv_batch_address() to remove additional emit functions

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2775>
src/intel/vulkan/anv_batch_chain.c
src/intel/vulkan/anv_private.h