From 13946ba27b21d7220fba746b3335f35c3e7eb4aa Mon Sep 17 00:00:00 2001 From: Gurchetan Singh Date: Wed, 13 Sep 2023 13:50:50 -0700 Subject: [PATCH] gfxstream/guest: add GetRingParamsFromCapset function Every capset provides ASG ring metadata. Have a function for that. Reviewed-by: Aaron Ruby Acked-by: Yonggang Luo Acked-by: Adam Jackson Part-of: --- .../VirtioGpuAddressSpaceStream.cpp | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/src/gfxstream/guest/GoldfishAddressSpace/VirtioGpuAddressSpaceStream.cpp b/src/gfxstream/guest/GoldfishAddressSpace/VirtioGpuAddressSpaceStream.cpp index 12d8446e15b..f32fb045636 100644 --- a/src/gfxstream/guest/GoldfishAddressSpace/VirtioGpuAddressSpaceStream.cpp +++ b/src/gfxstream/guest/GoldfishAddressSpace/VirtioGpuAddressSpaceStream.cpp @@ -16,6 +16,37 @@ #include "util.h" +static bool GetRingParamsFromCapset(enum VirtGpuCapset capset, const VirtGpuCaps& caps, + uint32_t& ringSize, uint32_t& bufferSize, + uint32_t& blobAlignment) { + switch (capset) { + case kCapsetGfxStreamVulkan: + ringSize = caps.vulkanCapset.ringSize; + bufferSize = caps.vulkanCapset.bufferSize; + blobAlignment = caps.vulkanCapset.blobAlignment; + break; + case kCapsetGfxStreamMagma: + ringSize = caps.magmaCapset.ringSize; + bufferSize = caps.magmaCapset.bufferSize; + blobAlignment = caps.magmaCapset.blobAlignment; + break; + case kCapsetGfxStreamGles: + ringSize = caps.glesCapset.ringSize; + bufferSize = caps.glesCapset.bufferSize; + blobAlignment = caps.glesCapset.blobAlignment; + break; + case kCapsetGfxStreamComposer: + ringSize = caps.composerCapset.ringSize; + bufferSize = caps.composerCapset.bufferSize; + blobAlignment = caps.composerCapset.blobAlignment; + break; + default: + return false; + } + + return true; +} + address_space_handle_t virtgpu_address_space_open() { return (address_space_handle_t)(-EINVAL); }