summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaiyi Li <kaiyili@google.com>2022-09-21 12:46:10 -0700
committerKaiyi Li <kaiyili@google.com>2022-09-21 12:46:10 -0700
commitb69cb6405c89bd5c1519614ce818e603ba79f10a (patch)
tree5d0be1d73726f72e18c8e7add7f317729cd8d8f5
parent5a1efeaeb1981a32b436e6cc75dd004da4a4b08c (diff)
downloadgfxstream-protocols-b69cb6405c89bd5c1519614ce818e603ba79f10a.tar.gz
vulkan: add decoder context
Gather the objects injected to VkDecoder in a separate struct. Change-Id: I5d78f3624f4af2785351ec098533213bf4908c15
-rw-r--r--registry/vulkan/scripts/cereal/decoder.py21
-rw-r--r--registry/vulkan/scripts/cerealgenerator.py3
2 files changed, 10 insertions, 14 deletions
diff --git a/registry/vulkan/scripts/cereal/decoder.py b/registry/vulkan/scripts/cereal/decoder.py
index dc1f4e29..798de582 100644
--- a/registry/vulkan/scripts/cereal/decoder.py
+++ b/registry/vulkan/scripts/cereal/decoder.py
@@ -33,8 +33,7 @@ public:
~VkDecoder();
void setForSnapshotLoad(bool forSnapshotLoad);
size_t decode(void* buf, size_t bufsize, IOStream* stream, uint32_t* seqnoPtr,
- emugl::GfxApiLogger& gfx_logger, emugl::HealthMonitor<>& healthMonitor,
- const char* processName);
+ const VkDecoderContext&);
private:
class Impl;
std::unique_ptr<Impl> mImpl;
@@ -43,8 +42,6 @@ private:
decoder_impl_preamble ="""
using emugl::vkDispatch;
-using emugl::GfxApiLogger;
-using emugl::HealthMonitor;
using emugl::HealthWatchdog;
using namespace goldfish_vk;
@@ -67,8 +64,7 @@ public:
}
size_t decode(void* buf, size_t bufsize, IOStream* stream, uint32_t* seqnoPtr,
- GfxApiLogger& gfx_logger, HealthMonitor<>& healthMonitor,
- const char* processName);
+ const VkDecoderContext&);
private:
bool m_logCalls;
@@ -95,9 +91,8 @@ void VkDecoder::setForSnapshotLoad(bool forSnapshotLoad) {
}
size_t VkDecoder::decode(void* buf, size_t bufsize, IOStream* stream, uint32_t* seqnoPtr,
- GfxApiLogger& gfx_logger, HealthMonitor<>& healthMonitor,
- const char* processName) {
- return mImpl->decode(buf, bufsize, stream, seqnoPtr, gfx_logger, healthMonitor, processName);
+ const VkDecoderContext& context) {
+ return mImpl->decode(buf, bufsize, stream, seqnoPtr, context);
}
// VkDecoder::Impl::decode to follow
@@ -729,13 +724,15 @@ class VulkanDecoder(VulkanWrapperGenerator):
self.module.appendImpl(
"""
size_t VkDecoder::Impl::decode(void* buf, size_t len, IOStream* ioStream, uint32_t* seqnoPtr,
- GfxApiLogger& gfx_logger, HealthMonitor<>& healthMonitor,
- const char* processName)
+ const VkDecoderContext& context)
""")
self.cgen.beginBlock() # function body
- self.cgen.stmt("if (len < 8) return 0;")
+ self.cgen.stmt("const char* processName = context.processName")
+ self.cgen.stmt("auto& gfx_logger = *context.gfxApiLogger")
+ self.cgen.stmt("auto& healthMonitor = *context.healthMonitor")
+ self.cgen.stmt("if (len < 8) return 0")
self.cgen.stmt("bool queueSubmitWithCommandsEnabled = feature_is_enabled(kFeature_VulkanQueueSubmitWithCommands)")
self.cgen.stmt("unsigned char *ptr = (unsigned char *)buf")
self.cgen.stmt("const unsigned char* const end = (const unsigned char*)buf + len")
diff --git a/registry/vulkan/scripts/cerealgenerator.py b/registry/vulkan/scripts/cerealgenerator.py
index 7046ffcc..7a5d24df 100644
--- a/registry/vulkan/scripts/cerealgenerator.py
+++ b/registry/vulkan/scripts/cerealgenerator.py
@@ -376,8 +376,7 @@ using DlSymFunc = void* (void*, const char*);
"""
decoderHeaderIncludes = f"""
-#include "{self.baseLibDirPrefix}/GfxApiLogger.h"
-#include "{self.baseLibDirPrefix}/HealthMonitor.h"
+#include "VkDecoderContext.h"
#include <memory>