gfxstream: host: don't abort when unbox fails

Unboxing fails if a NULL handle is passed in, triggering an abort.

However for vkCmdBeginTransformFeedbackEXT, this is perfectly
valid:

"For each element of pCounterBuffers that is VK_NULL_HANDLE,
transform feedback will start capturing vertex data to byte zero
in the corresponding bound transform feedback buffer."

Reviewed-by: Aaron Ruby <aruby@blackberry.com>
Acked-by: Yonggang Luo <luoyonggang@gmail.com>
Acked-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27246>
This commit is contained in:
Gurchetan Singh
2024-07-15 09:47:41 -07:00
committed by Marge Bot
parent b05f3f8e12
commit a3f888d089
@@ -223,7 +223,7 @@ class VulkanReservedMarshalingCodegen(VulkanTypeIterator):
self.cgen.beginIf(lenAccessGuard)
self.cgen.beginFor("uint32_t k = 0", "k < %s" % lenAccess, "++k")
self.cgen.stmt("uint64_t tmpval; memcpy(&tmpval, %s_ptr + k * 8, sizeof(uint64_t))" % handle64Var)
self.cgen.stmt("*((%s%s) + k) = (%s)%s((%s)tmpval)" % (
self.cgen.stmt("*((%s%s) + k) = tmpval ? (%s)%s((%s)tmpval) : VK_NULL_HANDLE" % (
self.makeCastExpr(vulkanType.getForNonConstAccess()), access,
vulkanType.typeName, mapFunc, vulkanType.typeName))
if lenAccessGuard is not None: