From 4bfc03020ad76719b8932056fdabb0601ffb328b Mon Sep 17 00:00:00 2001 From: Jason Macnak Date: Tue, 9 Jun 2026 14:12:08 -0700 Subject: [PATCH] gfxstream: Avoid transfering VkAllocationCallbacks between guest and host Test: cvd create --gpu_mode=gfxstream_guest_angle Reviewed-by: David Gilhooley Part-of: --- .../codegen/scripts/cereal/common/vulkantypes.py | 2 +- src/gfxstream/codegen/scripts/cereal/deepcopy.py | 11 ++++++++--- src/gfxstream/codegen/scripts/cereal/transform.py | 2 +- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/gfxstream/codegen/scripts/cereal/common/vulkantypes.py b/src/gfxstream/codegen/scripts/cereal/common/vulkantypes.py index 51446c5721e..e582e821f77 100644 --- a/src/gfxstream/codegen/scripts/cereal/common/vulkantypes.py +++ b/src/gfxstream/codegen/scripts/cereal/common/vulkantypes.py @@ -553,7 +553,7 @@ class VulkanType(object): def getFullName(self) -> str: if self.parent is None: return self.paramName - return f"{self.parent.name}.{self.paramName}" + return f"{self.parent.name}.{self.paramName}" def getProtectStreamFeature(self) -> Optional[str]: key = self.getFullName() diff --git a/src/gfxstream/codegen/scripts/cereal/deepcopy.py b/src/gfxstream/codegen/scripts/cereal/deepcopy.py index 392c4c255bf..81583aa15e2 100644 --- a/src/gfxstream/codegen/scripts/cereal/deepcopy.py +++ b/src/gfxstream/codegen/scripts/cereal/deepcopy.py @@ -8,6 +8,11 @@ from .common.vulkantypes import \ from .wrapperdefs import VulkanWrapperGenerator from .wrapperdefs import STRUCT_EXTENSION_PARAM, STRUCT_EXTENSION_PARAM_FOR_WRITE, EXTENSION_SIZE_API_NAME + +VULKAN_TYPES_THAT_ARE_NEVER_TRANSMITTED = [ + "VkAllocationCallbacks", +] + class DeepcopyCodegen(VulkanTypeIterator): def __init__(self, cgen, inputVars, poolVarName, rootVarName, prefix, skipValues=False): self.cgen = cgen @@ -41,7 +46,7 @@ class DeepcopyCodegen(VulkanTypeIterator): self.checked = False def needSkip(self, vulkanType): - return False + return vulkanType.typeName in VULKAN_TYPES_THAT_ARE_NEVER_TRANSMITTED def makeCastExpr(self, vulkanType): return "(%s)" % ( @@ -75,7 +80,7 @@ class DeepcopyCodegen(VulkanTypeIterator): def onCompoundType(self, vulkanType): if self.needSkip(vulkanType): - self.cgen.line("// TODO: Unsupported : %s" % + self.cgen.line("// Deepcopy intentionally skipped for `%s`" % self.cgen.makeCTypeDecl(vulkanType)) return @@ -200,7 +205,7 @@ class DeepcopyCodegen(VulkanTypeIterator): self.cgen.stmt("%s = %s(%s, %s)" % ( sizeVar, EXTENSION_SIZE_API_NAME, self.rootVarName, nextVar)) self.cgen.endWhile() - + self.cgen.stmt("%s = nullptr" % rhs) self.cgen.beginIf(sizeVar) diff --git a/src/gfxstream/codegen/scripts/cereal/transform.py b/src/gfxstream/codegen/scripts/cereal/transform.py index d0026bc5ba1..0dc4e5830f9 100644 --- a/src/gfxstream/codegen/scripts/cereal/transform.py +++ b/src/gfxstream/codegen/scripts/cereal/transform.py @@ -19,7 +19,7 @@ def deviceMemoryTransform(resourceTrackerVarName, structOrApiInfo, getExpr, getL "size", "typeIndex", "typeBits",] - + casts = { "handle" : "VkDeviceMemory*", "offset" : "VkDeviceSize*",