summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-05-10 16:09:50 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-05-10 16:09:50 +0000
commit090f68b1cf700e26c5ae68ff8c094e20f7b469f1 (patch)
tree5cef8f2b0acbd492c19071c70cb736ca939b2089
parent4140efcefc95925c7db454a523832801cf7b5a9b (diff)
parent433b520f3be28b80af427745980cb03d659d0016 (diff)
downloadgfxstream-protocols-090f68b1cf700e26c5ae68ff8c094e20f7b469f1.tar.gz
Snap for 10103804 from 433b520f3be28b80af427745980cb03d659d0016 to mainline-tzdata5-release
Change-Id: Ic0eb62914628fc4671c6fde881c09fdb7ac78304
-rw-r--r--include/vulkan/include/vulkan/vulkan_core.h5
-rw-r--r--registry/vulkan/scripts/cereal/api_log_decoder.py1
-rw-r--r--registry/vulkan/scripts/cereal/common/codegen.py2
-rw-r--r--registry/vulkan/scripts/cereal/common/vulkantypes.py2
-rw-r--r--registry/vulkan/scripts/cereal/decoder.py77
-rw-r--r--registry/vulkan/scripts/cereal/decodersnapshot.py2
-rw-r--r--registry/vulkan/scripts/cereal/encoder.py7
-rw-r--r--registry/vulkan/scripts/cereal/marshalingdefs.py3
-rw-r--r--registry/vulkan/scripts/cereal/subdecode.py17
-rw-r--r--registry/vulkan/scripts/cereal/wrapperdefs.py2
-rw-r--r--registry/vulkan/scripts/cerealgenerator.py19
-rw-r--r--registry/vulkan/xml/vk.xml39
12 files changed, 91 insertions, 85 deletions
diff --git a/include/vulkan/include/vulkan/vulkan_core.h b/include/vulkan/include/vulkan/vulkan_core.h
index 3b97ee8c..19e9ffe6 100644
--- a/include/vulkan/include/vulkan/vulkan_core.h
+++ b/include/vulkan/include/vulkan/vulkan_core.h
@@ -908,9 +908,8 @@ typedef enum VkStructureType {
VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR = 1000413002,
VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR = 1000413003,
VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE = 1000385000,
- VK_STRUCTURE_TYPE_IMPORT_PHYSICAL_ADDRESS_GOOGLE = 1000385001,
- VK_STRUCTURE_TYPE_IMPORT_BUFFER_HANDLE_GOOGLE = 1000385002,
- VK_STRUCTURE_TYPE_IMPORT_BUFFER_GOOGLE = 1000385003,
+ VK_STRUCTURE_TYPE_IMPORT_BUFFER_GOOGLE = 1000385001,
+ VK_STRUCTURE_TYPE_CREATE_BLOB_GOOGLE = 1000385002,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
diff --git a/registry/vulkan/scripts/cereal/api_log_decoder.py b/registry/vulkan/scripts/cereal/api_log_decoder.py
index dfca0717..97930f5f 100644
--- a/registry/vulkan/scripts/cereal/api_log_decoder.py
+++ b/registry/vulkan/scripts/cereal/api_log_decoder.py
@@ -72,6 +72,7 @@ class ApiLogDecoder(VulkanWrapperGenerator):
"vkFreeMemorySyncGOOGLE",
"vkGetFenceStatus",
"vkGetMemoryHostAddressInfoGOOGLE",
+ "vkGetBlobGOOGLE",
"vkGetPhysicalDeviceFormatProperties",
"vkGetPhysicalDeviceProperties2KHR",
"vkGetPipelineCacheData",
diff --git a/registry/vulkan/scripts/cereal/common/codegen.py b/registry/vulkan/scripts/cereal/common/codegen.py
index 0fcac4ae..b6b8a6b3 100644
--- a/registry/vulkan/scripts/cereal/common/codegen.py
+++ b/registry/vulkan/scripts/cereal/common/codegen.py
@@ -947,7 +947,7 @@ class VulkanWrapperGenerator(object):
},
"VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT": {
"VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2": "VkPhysicalDeviceFragmentDensityMapPropertiesEXT",
- "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO": "VkImportPhysicalAddressGOOGLE",
+ "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO": "VkCreateBlobGOOGLE",
"default": "VkPhysicalDeviceFragmentDensityMapPropertiesEXT",
},
"VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT": {
diff --git a/registry/vulkan/scripts/cereal/common/vulkantypes.py b/registry/vulkan/scripts/cereal/common/vulkantypes.py
index 31284e26..dc3a9072 100644
--- a/registry/vulkan/scripts/cereal/common/vulkantypes.py
+++ b/registry/vulkan/scripts/cereal/common/vulkantypes.py
@@ -750,7 +750,7 @@ class VulkanCompoundType(object):
class VulkanAPI(object):
- def __init__(self, name: str, retType: VulkanType, parameters: list[VulkanType], origName=None):
+ def __init__(self, name: str, retType: VulkanType, parameters, origName=None):
self.name: str = name
self.origName = name
self.retType: VulkanType = retType
diff --git a/registry/vulkan/scripts/cereal/decoder.py b/registry/vulkan/scripts/cereal/decoder.py
index 5363f635..e082db0c 100644
--- a/registry/vulkan/scripts/cereal/decoder.py
+++ b/registry/vulkan/scripts/cereal/decoder.py
@@ -26,27 +26,37 @@ global_state_prefix = "m_state->on_"
decoder_decl_preamble = """
+namespace gfxstream {
class IOStream;
+class ProcessResources;
+} // namespace gfxstream
+
+namespace gfxstream {
+namespace vk {
class VkDecoder {
public:
VkDecoder();
~VkDecoder();
void setForSnapshotLoad(bool forSnapshotLoad);
- size_t decode(void* buf, size_t bufsize, IOStream* stream, uint32_t* seqnoPtr,
- const VkDecoderContext&);
+ size_t decode(void* buf, size_t bufsize, IOStream* stream,
+ const ProcessResources* processResources, const VkDecoderContext&);
private:
class Impl;
std::unique_ptr<Impl> mImpl;
};
+
+} // namespace vk
+} // namespace gfxstream
+
"""
decoder_impl_preamble ="""
+namespace gfxstream {
+namespace vk {
+
using android::base::MetricEventBadPacketLength;
using android::base::MetricEventDuplicateSequenceNum;
-using emugl::vkDispatch;
-
-using namespace goldfish_vk;
class VkDecoder::Impl {
public:
@@ -66,8 +76,8 @@ public:
m_forSnapshotLoad = forSnapshotLoad;
}
- size_t decode(void* buf, size_t bufsize, IOStream* stream, uint32_t* seqnoPtr,
- const VkDecoderContext&);
+ size_t decode(void* buf, size_t bufsize, IOStream* stream,
+ const ProcessResources* processResources, const VkDecoderContext&);
private:
bool m_logCalls;
@@ -94,14 +104,22 @@ void VkDecoder::setForSnapshotLoad(bool forSnapshotLoad) {
mImpl->setForSnapshotLoad(forSnapshotLoad);
}
-size_t VkDecoder::decode(void* buf, size_t bufsize, IOStream* stream, uint32_t* seqnoPtr,
+size_t VkDecoder::decode(void* buf, size_t bufsize, IOStream* stream,
+ const ProcessResources* processResources,
const VkDecoderContext& context) {
- return mImpl->decode(buf, bufsize, stream, seqnoPtr, context);
+ return mImpl->decode(buf, bufsize, stream, processResources, context);
}
// VkDecoder::Impl::decode to follow
""" % (VULKAN_STREAM_TYPE, VULKAN_STREAM_TYPE)
+decoder_impl_postamble = """
+
+} // namespace vk
+} // namespace gfxstream
+
+"""
+
READ_STREAM = "vkReadStream"
WRITE_STREAM = "vkStream"
@@ -319,14 +337,12 @@ def emit_dispatch_call(api, cgen):
if delay:
cgen.line("};")
-def emit_global_state_wrapped_call(api, cgen, logger, context):
+def emit_global_state_wrapped_call(api, cgen, context):
if api.name in DELAYED_DECODER_DELETES:
print("Error: Cannot generate a global state wrapped call that is also a delayed delete (yet)");
raise
customParams = ["&m_pool"] + list(map(lambda p: p.paramName, api.parameters))
- if logger:
- customParams += ["gfx_logger"]
if context:
customParams += ["context"]
cgen.vkApiCall(api, customPrefix=global_state_prefix, \
@@ -423,7 +439,7 @@ def emit_pool_free(cgen):
cgen.stmt("%s->clearPool()" % READ_STREAM)
def emit_seqno_incr(api, cgen):
- cgen.stmt("if (queueSubmitWithCommandsEnabled) __atomic_fetch_add(seqnoPtr, 1, __ATOMIC_SEQ_CST)")
+ cgen.stmt("if (queueSubmitWithCommandsEnabled) seqnoPtr->fetch_add(1, std::memory_order_seq_cst)")
def emit_snapshot(typeInfo, api, cgen):
@@ -461,7 +477,7 @@ def emit_snapshot(typeInfo, api, cgen):
cgen.vkApiCall(apiForSnapshot, customPrefix="m_state->snapshot()->")
cgen.endIf()
-def emit_decoding(typeInfo, api, cgen, globalWrapped=False, logger=False, context=False):
+def emit_decoding(typeInfo, api, cgen, globalWrapped=False, context=False):
isAcquire = api.name in RELAXED_APIS
emit_decode_parameters(typeInfo, api, cgen, globalWrapped)
@@ -469,7 +485,7 @@ def emit_decoding(typeInfo, api, cgen, globalWrapped=False, logger=False, contex
emit_seqno_incr(api, cgen)
if globalWrapped:
- emit_global_state_wrapped_call(api, cgen, logger, context)
+ emit_global_state_wrapped_call(api, cgen, context)
else:
emit_dispatch_call(api, cgen)
@@ -489,9 +505,6 @@ def emit_default_decoding(typeInfo, api, cgen):
def emit_global_state_wrapped_decoding(typeInfo, api, cgen):
emit_decoding(typeInfo, api, cgen, globalWrapped=True)
-def emit_global_state_wrapped_decoding_with_logger(typeInfo, api, cgen):
- emit_decoding(typeInfo, api, cgen, globalWrapped=True, logger=True)
-
def emit_global_state_wrapped_decoding_with_context(typeInfo, api, cgen):
emit_decoding(typeInfo, api, cgen, globalWrapped=True, context=True)
@@ -613,6 +626,9 @@ custom_decodes = {
"vkGetImageMemoryRequirements" : emit_global_state_wrapped_decoding,
"vkGetImageMemoryRequirements2" : emit_global_state_wrapped_decoding,
"vkGetImageMemoryRequirements2KHR" : emit_global_state_wrapped_decoding,
+ "vkGetBufferMemoryRequirements" : emit_global_state_wrapped_decoding,
+ "vkGetBufferMemoryRequirements2": emit_global_state_wrapped_decoding,
+ "vkGetBufferMemoryRequirements2KHR": emit_global_state_wrapped_decoding,
"vkCreateDescriptorSetLayout" : emit_global_state_wrapped_decoding,
"vkDestroyDescriptorSetLayout" : emit_global_state_wrapped_decoding,
@@ -642,8 +658,8 @@ custom_decodes = {
"vkCmdExecuteCommands" : emit_global_state_wrapped_decoding,
"vkQueueSubmit" : emit_global_state_wrapped_decoding,
"vkQueueWaitIdle" : emit_global_state_wrapped_decoding,
- "vkBeginCommandBuffer" : emit_global_state_wrapped_decoding_with_logger,
- "vkEndCommandBuffer" : emit_global_state_wrapped_decoding_with_logger,
+ "vkBeginCommandBuffer" : emit_global_state_wrapped_decoding_with_context,
+ "vkEndCommandBuffer" : emit_global_state_wrapped_decoding_with_context,
"vkResetCommandBuffer" : emit_global_state_wrapped_decoding,
"vkFreeCommandBuffers" : emit_global_state_wrapped_decoding,
"vkCreateCommandPool" : emit_global_state_wrapped_decoding,
@@ -682,10 +698,7 @@ custom_decodes = {
"vkFreeMemorySyncGOOGLE" : emit_global_state_wrapped_decoding,
"vkMapMemoryIntoAddressSpaceGOOGLE" : emit_global_state_wrapped_decoding,
"vkGetMemoryHostAddressInfoGOOGLE" : emit_global_state_wrapped_decoding,
-
- # VK_GOOGLE_color_buffer
- "vkRegisterImageColorBufferGOOGLE" : emit_global_state_wrapped_decoding,
- "vkRegisterBufferColorBufferGOOGLE" : emit_global_state_wrapped_decoding,
+ "vkGetBlobGOOGLE" : emit_global_state_wrapped_decoding,
# Descriptor update templates
"vkCreateDescriptorUpdateTemplate" : emit_global_state_wrapped_decoding,
@@ -695,8 +708,8 @@ custom_decodes = {
"vkUpdateDescriptorSetWithTemplateSizedGOOGLE" : emit_global_state_wrapped_decoding,
# VK_GOOGLE_gfxstream
- "vkBeginCommandBufferAsyncGOOGLE" : emit_global_state_wrapped_decoding_with_logger,
- "vkEndCommandBufferAsyncGOOGLE" : emit_global_state_wrapped_decoding_with_logger,
+ "vkBeginCommandBufferAsyncGOOGLE" : emit_global_state_wrapped_decoding_with_context,
+ "vkEndCommandBufferAsyncGOOGLE" : emit_global_state_wrapped_decoding_with_context,
"vkResetCommandBufferAsyncGOOGLE" : emit_global_state_wrapped_decoding,
"vkCommandBufferHostSyncGOOGLE" : emit_global_state_wrapped_decoding,
"vkCreateImageWithRequirementsGOOGLE" : emit_global_state_wrapped_decoding,
@@ -741,7 +754,8 @@ class VulkanDecoder(VulkanWrapperGenerator):
self.module.appendImpl(
"""
-size_t VkDecoder::Impl::decode(void* buf, size_t len, IOStream* ioStream, uint32_t* seqnoPtr,
+size_t VkDecoder::Impl::decode(void* buf, size_t len, IOStream* ioStream,
+ const ProcessResources* processResources,
const VkDecoderContext& context)
""")
@@ -796,6 +810,9 @@ size_t VkDecoder::Impl::decode(void* buf, size_t len, IOStream* ioStream, uint32
executionData->insert({{"previous_seqno", std::to_string(m_prevSeqno.value())}});
}
}
+
+ std::atomic<uint32_t>* seqnoPtr = processResources->getSequenceNumberPtr();
+
if (queueSubmitWithCommandsEnabled && ((opcode >= OP_vkFirst && opcode < OP_vkLast) || (opcode >= OP_vkFirst_old && opcode < OP_vkLast_old))) {
uint32_t seqno;
memcpy(&seqno, *readStreamPtrPtr, sizeof(uint32_t)); *readStreamPtrPtr += sizeof(uint32_t);
@@ -817,12 +834,11 @@ size_t VkDecoder::Impl::decode(void* buf, size_t len, IOStream* ioStream, uint32
/* Data gathered if this hangs*/
.setOnHangCallback([=]() {
auto annotations = std::make_unique<EventHangMetadata::HangAnnotations>();
- annotations->insert({{"seqnoPtr", std::to_string(__atomic_load_n(
- seqnoPtr, __ATOMIC_SEQ_CST))}});
+ annotations->insert({{"seqnoPtr", std::to_string(seqnoPtr->load(std::memory_order_seq_cst))}});
return annotations;
})
.build();
- while ((seqno - __atomic_load_n(seqnoPtr, __ATOMIC_SEQ_CST) != 1)) {
+ while ((seqno - seqnoPtr->load(std::memory_order_seq_cst) != 1)) {
#if (defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_X64)))
_mm_pause();
#elif (defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)))
@@ -893,3 +909,4 @@ size_t VkDecoder::Impl::decode(void* buf, size_t len, IOStream* ioStream, uint32
self.cgen.stmt("return ptr - (unsigned char*)buf;")
self.cgen.endBlock() # function body
self.module.appendImpl(self.cgen.swapCode())
+ self.module.appendImpl(decoder_impl_postamble)
diff --git a/registry/vulkan/scripts/cereal/decodersnapshot.py b/registry/vulkan/scripts/cereal/decodersnapshot.py
index f4dc6d6f..4ff97a1d 100644
--- a/registry/vulkan/scripts/cereal/decodersnapshot.py
+++ b/registry/vulkan/scripts/cereal/decodersnapshot.py
@@ -39,7 +39,7 @@ private:
decoder_snapshot_impl_preamble ="""
-using namespace goldfish_vk;
+using namespace gfxstream::vk;
using emugl::GfxApiLogger;
using emugl::HealthMonitor;
diff --git a/registry/vulkan/scripts/cereal/encoder.py b/registry/vulkan/scripts/cereal/encoder.py
index 42d1e815..d3e39745 100644
--- a/registry/vulkan/scripts/cereal/encoder.py
+++ b/registry/vulkan/scripts/cereal/encoder.py
@@ -38,7 +38,7 @@ private:
encoder_impl_preamble ="""
-using namespace goldfish_vk;
+using namespace gfxstream::vk;
using android::base::guest::AutoLock;
using android::base::guest::Lock;
@@ -79,9 +79,6 @@ ENCODER_CUSTOM_RESOURCE_POSTPROCESS = [
"vkGetPhysicalDeviceProperties",
"vkGetPhysicalDeviceProperties2",
"vkGetPhysicalDeviceProperties2KHR",
- "vkGetPhysicalDeviceMemoryProperties",
- "vkGetPhysicalDeviceMemoryProperties2",
- "vkGetPhysicalDeviceMemoryProperties2KHR",
"vkCreateDescriptorUpdateTemplate",
"vkCreateDescriptorUpdateTemplateKHR",
"vkGetPhysicalDeviceExternalSemaphoreProperties",
@@ -401,7 +398,7 @@ def emit_parameter_encode_do_parameter_write(typeInfo, api, cgen):
emit_marshal(typeInfo, p, cgen)
dispatchDone = True
-
+
cgen.beginIf("watchdog")
cgen.stmt("size_t watchdogBufSize = std::min<size_t>(static_cast<size_t>(packetSize_%s), kWatchdogBufferMax)" % (api.name))
cgen.stmt("healthMonitorAnnotation_packetContents.resize(watchdogBufSize)")
diff --git a/registry/vulkan/scripts/cereal/marshalingdefs.py b/registry/vulkan/scripts/cereal/marshalingdefs.py
index 19b08d12..88791f68 100644
--- a/registry/vulkan/scripts/cereal/marshalingdefs.py
+++ b/registry/vulkan/scripts/cereal/marshalingdefs.py
@@ -332,8 +332,6 @@ KNOWN_FUNCTION_OPCODES = {
"vkCmdSetCheckpointNV": 20315,
"vkGetQueueCheckpointDataNV": 20316,
"vkMapMemoryIntoAddressSpaceGOOGLE": 20317,
- "vkRegisterImageColorBufferGOOGLE": 20318,
- "vkRegisterBufferColorBufferGOOGLE": 20319,
"vkUpdateDescriptorSetWithTemplateSizedGOOGLE": 20320,
"vkBeginCommandBufferAsyncGOOGLE": 20321,
"vkEndCommandBufferAsyncGOOGLE": 20322,
@@ -355,6 +353,7 @@ KNOWN_FUNCTION_OPCODES = {
"vkUseIOSurfaceMVK": 20338,
"vkGetIOSurfaceMVK": 20339,
"vkQueueFlushCommandsGOOGLE": 20340,
+ "vkGetBlobGOOGLE": 20341,
}
CUSTOM_MARSHAL_TYPES = {
diff --git a/registry/vulkan/scripts/cereal/subdecode.py b/registry/vulkan/scripts/cereal/subdecode.py
index a81f7228..b77cad77 100644
--- a/registry/vulkan/scripts/cereal/subdecode.py
+++ b/registry/vulkan/scripts/cereal/subdecode.py
@@ -261,11 +261,9 @@ def emit_dispatch_call(api, cgen):
cgen.stmt("unlock()")
-def emit_global_state_wrapped_call(api, cgen, logger=False, context=False):
+def emit_global_state_wrapped_call(api, cgen, context=False):
customParams = ["pool", "(VkCommandBuffer)(boxed_dispatchHandle)"] + \
list(map(lambda p: p.paramName, api.parameters[1:]))
- if logger:
- customParams += ["gfx_logger"];
if context:
customParams += ["context"];
cgen.vkApiCall(api, customPrefix=global_state_prefix,
@@ -282,10 +280,6 @@ def emit_global_state_wrapped_decoding(typeInfo, api, cgen):
emit_decode_parameters(typeInfo, api, cgen, globalWrapped=True)
emit_global_state_wrapped_call(api, cgen)
-def emit_global_state_wrapped_decoding_with_logger(typeInfo, api, cgen):
- emit_decode_parameters(typeInfo, api, cgen, globalWrapped=True)
- emit_global_state_wrapped_call(api, cgen, logger=True)
-
def emit_global_state_wrapped_decoding_with_context(typeInfo, api, cgen):
emit_decode_parameters(typeInfo, api, cgen, globalWrapped=True)
emit_global_state_wrapped_call(api, cgen, context=True)
@@ -295,15 +289,15 @@ custom_decodes = {
"vkCmdCopyImage": emit_global_state_wrapped_decoding,
"vkCmdCopyImageToBuffer": emit_global_state_wrapped_decoding,
"vkCmdExecuteCommands": emit_global_state_wrapped_decoding,
- "vkBeginCommandBuffer": emit_global_state_wrapped_decoding_with_logger,
- "vkEndCommandBuffer": emit_global_state_wrapped_decoding_with_logger,
+ "vkBeginCommandBuffer": emit_global_state_wrapped_decoding_with_context,
+ "vkEndCommandBuffer": emit_global_state_wrapped_decoding_with_context,
"vkResetCommandBuffer": emit_global_state_wrapped_decoding,
"vkCmdPipelineBarrier": emit_global_state_wrapped_decoding,
"vkCmdBindPipeline": emit_global_state_wrapped_decoding,
"vkCmdBindDescriptorSets": emit_global_state_wrapped_decoding,
"vkCmdCopyQueryPoolResults": emit_global_state_wrapped_decoding,
- "vkBeginCommandBufferAsyncGOOGLE": emit_global_state_wrapped_decoding_with_logger,
- "vkEndCommandBufferAsyncGOOGLE": emit_global_state_wrapped_decoding_with_logger,
+ "vkBeginCommandBufferAsyncGOOGLE": emit_global_state_wrapped_decoding_with_context,
+ "vkEndCommandBufferAsyncGOOGLE": emit_global_state_wrapped_decoding_with_context,
"vkResetCommandBufferAsyncGOOGLE": emit_global_state_wrapped_decoding,
"vkCommandBufferHostSyncGOOGLE": emit_global_state_wrapped_decoding,
}
@@ -327,7 +321,6 @@ class VulkanSubDecoder(VulkanWrapperGenerator):
self.cgen.beginBlock() # function body
- self.cgen.stmt("auto& gfx_logger = *context.gfxApiLogger")
self.cgen.stmt("auto& metricsLogger = *context.metricsLogger")
self.cgen.stmt("uint32_t count = 0")
self.cgen.stmt("unsigned char *buf = (unsigned char *)pData")
diff --git a/registry/vulkan/scripts/cereal/wrapperdefs.py b/registry/vulkan/scripts/cereal/wrapperdefs.py
index 6d89197e..9b969875 100644
--- a/registry/vulkan/scripts/cereal/wrapperdefs.py
+++ b/registry/vulkan/scripts/cereal/wrapperdefs.py
@@ -98,8 +98,8 @@ STYPE_OVERRIDE = {
"VkPhysicalDeviceFragmentDensityMapPropertiesEXT": "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT",
"VkRenderPassFragmentDensityMapCreateInfoEXT": "VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT",
"VkImportColorBufferGOOGLE": "VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE",
- "VkImportPhysicalAddressGOOGLE": "VK_STRUCTURE_TYPE_IMPORT_PHYSICAL_ADDRESS_GOOGLE",
"VkImportBufferGOOGLE": "VK_STRUCTURE_TYPE_IMPORT_BUFFER_GOOGLE",
+ "VkCreateBlobGOOGLE": "VK_STRUCTURE_TYPE_CREATE_BLOB_GOOGLE",
}
MAX_PACKET_LENGTH = "(400 * 1024 * 1024) // 400MB"
diff --git a/registry/vulkan/scripts/cerealgenerator.py b/registry/vulkan/scripts/cerealgenerator.py
index 29d73219..988cda45 100644
--- a/registry/vulkan/scripts/cerealgenerator.py
+++ b/registry/vulkan/scripts/cerealgenerator.py
@@ -325,11 +325,13 @@ using android::base::BumpPool;
dispatchHeaderDefs = f"""
{self.hostCommonExtraVulkanHeaders}
#include "goldfish_vk_private_defs.h"
-namespace goldfish_vk {{
+namespace gfxstream {{
+namespace vk {{
struct VulkanDispatch;
-}} // namespace goldfish_vk
+}} // namespace vk
+}} // namespace gfxstream
using DlOpenFunc = void* (void);
using DlSymFunc = void* (void*, const char*);
"""
@@ -411,6 +413,7 @@ class BumpPool;
#include "{self.baseLibDirPrefix}/system/System.h"
#include "{self.baseLibDirPrefix}/Tracing.h"
#include "{self.baseLibDirPrefix}/Metrics.h"
+#include "stream-servers/FrameBuffer.h"
#include "stream-servers/IOStream.h"
#include "host-common/feature_control.h"
#include "host-common/GfxstreamFatalError.h"
@@ -651,8 +654,16 @@ class BumpPool;
autogeneratedHeaderTemplate % \
(basename, "(header) generated by %s" % banner_command(sys.argv))
- namespaceBegin = "namespace goldfish_vk {" if useNamespace else ""
- namespaceEnd = "} // namespace goldfish_vk" if useNamespace else ""
+
+ namespaceBegin = """
+namespace gfxstream {
+namespace vk {
+""" if useNamespace else ""
+
+ namespaceEnd = """
+} // namespace vk"
+} // namespace gfxstream
+""" if useNamespace else ""
module.headerPreamble += "#pragma once\n"
if (not suppressVulkanHeaders):
diff --git a/registry/vulkan/xml/vk.xml b/registry/vulkan/xml/vk.xml
index 0e19344e..73245d2e 100644
--- a/registry/vulkan/xml/vk.xml
+++ b/registry/vulkan/xml/vk.xml
@@ -5462,14 +5462,12 @@ typedef void <name>CAMetalLayer</name>;
<member><type>void</type>* <name>pNext</name></member>
<member><type>uint32_t</type> <name>buffer</name></member>
</type>
- <type category="struct" name="VkImportPhysicalAddressGOOGLE" structextends="VkMemoryAllocateInfo">
- <member values="VK_STRUCTURE_TYPE_IMPORT_PHYSICAL_ADDRESS_GOOGLE"><type>VkStructureType</type> <name>sType</name></member>
+ <type category="struct" name="VkCreateBlobGOOGLE" structextends="VkMemoryAllocateInfo">
+ <member values="VK_STRUCTURE_TYPE_CREATE_BLOB_GOOGLE"><type>VkStructureType</type> <name>sType</name></member>
<member><type>void</type>* <name>pNext</name></member>
- <member><type>uint64_t</type> <name>physicalAddress</name></member>
- <member><type>VkDeviceSize</type> <name>size</name></member>
- <member><type>VkFormat</type> <name>format</name></member>
- <member><type>VkImageTiling</type> <name>tiling</name></member>
- <member><type>uint32_t</type> <name>tilingParameter</name></member>
+ <member><type>uint32_t</type> <name>blobMem</name></member>
+ <member><type>uint32_t</type> <name>blobFlags</name></member>
+ <member><type>uint64_t</type> <name>blobId</name></member>
</type>
<type category="struct" name="VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE"><type>VkStructureType</type> <name>sType</name></member>
@@ -10222,18 +10220,6 @@ typedef void <name>CAMetalLayer</name>;
<param externsync="true" devicememoryhandle="1"><type>VkDeviceMemory</type> <name>memory</name></param>
<param optional="false,true"><type>uint64_t</type>* <name>pAddress</name></param>
</command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkRegisterImageColorBufferGOOGLE</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkImage</type> <name>image</name></param>
- <param><type>uint32_t</type> <name>colorBuffer</name></param>
- </command>
- <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_INITIALIZATION_FAILED,VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY">
- <proto><type>VkResult</type> <name>vkRegisterBufferColorBufferGOOGLE</name></proto>
- <param><type>VkDevice</type> <name>device</name></param>
- <param><type>VkBuffer</type> <name>buffer</name></param>
- <param><type>uint32_t</type> <name>colorBuffer</name></param>
- </command>
<command>
<proto><type>void</type> <name>vkUpdateDescriptorSetWithTemplateSizedGOOGLE</name></proto>
<param><type>VkDevice</type> <name>device</name></param>
@@ -10350,6 +10336,11 @@ typedef void <name>CAMetalLayer</name>;
<param><type>VkDeviceSize</type> <name>dataSize</name></param>
<param len="dataSize">const <type>void</type>* <name>pData</name></param>
</command>
+ <command successcodes="VK_SUCCESS" errorcodes="VK_ERROR_OUT_OF_HOST_MEMORY">
+ <proto><type>VkResult</type> <name>vkGetBlobGOOGLE</name></proto>
+ <param><type>VkDevice</type> <name>device</name></param>
+ <param externsync="true" devicememoryhandle="1"><type>VkDeviceMemory</type> <name>memory</name></param>
+ </command>
<command>
<proto><type>void</type> <name>vkGetMTLDeviceMVK</name></proto>
<param><type>VkPhysicalDevice</type> <name>physicalDevice</name></param>
@@ -17657,14 +17648,11 @@ typedef void <name>CAMetalLayer</name>;
<enum value="386" name="VK_GOOGLE_GFXSTREAM_NUMBER"/>
<enum value="&quot;VK_GOOGLE_gfxstream&quot;" name="VK_GOOGLE_GFXSTREAM_EXTENSION_NAME"/>
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE"/>
- <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMPORT_PHYSICAL_ADDRESS_GOOGLE"/>
- <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMPORT_BUFFER_HANDLE_GOOGLE"/>
- <enum offset="3" extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMPORT_BUFFER_GOOGLE"/>
+ <enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMPORT_BUFFER_GOOGLE"/>
+ <enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_CREATE_BLOB_GOOGLE"/>
<type name="VkImportColorBufferGOOGLE"/>
<type name="VkImportBufferGOOGLE"/>
- <type name="VkImportPhysicalAddressGOOGLE"/>
- <command name="vkRegisterImageColorBufferGOOGLE"/>
- <command name="vkRegisterBufferColorBufferGOOGLE"/>
+ <type name="VkCreateBlobGOOGLE"/>
<command name="vkMapMemoryIntoAddressSpaceGOOGLE"/>
<command name="vkUpdateDescriptorSetWithTemplateSizedGOOGLE"/>
<command name="vkBeginCommandBufferAsyncGOOGLE"/>
@@ -17686,6 +17674,7 @@ typedef void <name>CAMetalLayer</name>;
<command name="vkCollectDescriptorPoolIdsGOOGLE"/>
<command name="vkQueueSignalReleaseImageANDROIDAsyncGOOGLE"/>
<command name="vkQueueFlushCommandsFromAuxMemoryGOOGLE"/>
+ <command name="vkGetBlobGOOGLE"/>
</require>
</extension>
</extensions>