#define VK_STRUCTURE_TYPE_MEMORY_RESOURCE_ALLOCATION_SIZE_PROPERTIES_100000_MESA ((VkStructureType)1000384003)
#define VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_RESOURCE_INFO_100000_MESA ((VkStructureType)1000384004)
#define VK_STRUCTURE_TYPE_DEVICE_QUEUE_TIMELINE_INFO_MESA ((VkStructureType)1000384005)
+#define VK_STRUCTURE_TYPE_RING_MONITOR_INFO_MESA ((VkStructureType)1000384006)
typedef enum VkCommandTypeEXT {
VK_COMMAND_TYPE_vkCreateInstance_EXT = 0,
VK_RING_STATUS_NONE_MESA = 0,
VK_RING_STATUS_IDLE_BIT_MESA = 0x00000001,
VK_RING_STATUS_FATAL_BIT_MESA = 0x00000002,
+ VK_RING_STATUS_ALIVE_BIT_MESA = 0x00000004,
} VkRingStatusFlagBitsMESA;
typedef VkFlags VkCommandFlagsEXT;
size_t extraSize;
} VkRingCreateInfoMESA;
+typedef struct VkRingMonitorInfoMESA {
+ VkStructureType sType;
+ const void* pNext;
+ uint32_t maxReportingPeriodMicroseconds;
+} VkRingMonitorInfoMESA;
+
typedef struct VkMemoryResourcePropertiesMESA {
VkStructureType sType;
void* pNext;
VkBool32 largeRing;
VkBool32 syncFdFencing;
VkBool32 asyncRoundtrip;
+ VkBool32 ringMonitoring;
} VkVenusExperimentalFeatures100000MESA;
typedef struct VkMemoryResourceAllocationSizeProperties100000MESA {
vn_encode_uint32_t(enc, &val->dstCommandStream);
}
+/* struct VkRingMonitorInfoMESA chain */
+
+static inline size_t
+vn_sizeof_VkRingMonitorInfoMESA_pnext(const void *val)
+{
+ /* no known/supported struct */
+ return vn_sizeof_simple_pointer(NULL);
+}
+
+static inline size_t
+vn_sizeof_VkRingMonitorInfoMESA_self(const VkRingMonitorInfoMESA *val)
+{
+ size_t size = 0;
+ /* skip val->{sType,pNext} */
+ size += vn_sizeof_uint32_t(&val->maxReportingPeriodMicroseconds);
+ return size;
+}
+
+static inline size_t
+vn_sizeof_VkRingMonitorInfoMESA(const VkRingMonitorInfoMESA *val)
+{
+ size_t size = 0;
+
+ size += vn_sizeof_VkStructureType(&val->sType);
+ size += vn_sizeof_VkRingMonitorInfoMESA_pnext(val->pNext);
+ size += vn_sizeof_VkRingMonitorInfoMESA_self(val);
+
+ return size;
+}
+
+static inline void
+vn_encode_VkRingMonitorInfoMESA_pnext(struct vn_cs_encoder *enc, const void *val)
+{
+ /* no known/supported struct */
+ vn_encode_simple_pointer(enc, NULL);
+}
+
+static inline void
+vn_encode_VkRingMonitorInfoMESA_self(struct vn_cs_encoder *enc, const VkRingMonitorInfoMESA *val)
+{
+ /* skip val->{sType,pNext} */
+ vn_encode_uint32_t(enc, &val->maxReportingPeriodMicroseconds);
+}
+
+static inline void
+vn_encode_VkRingMonitorInfoMESA(struct vn_cs_encoder *enc, const VkRingMonitorInfoMESA *val)
+{
+ assert(val->sType == VK_STRUCTURE_TYPE_RING_MONITOR_INFO_MESA);
+ vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_RING_MONITOR_INFO_MESA });
+ vn_encode_VkRingMonitorInfoMESA_pnext(enc, val->pNext);
+ vn_encode_VkRingMonitorInfoMESA_self(enc, val);
+}
+
/* struct VkRingCreateInfoMESA chain */
static inline size_t
vn_sizeof_VkRingCreateInfoMESA_pnext(const void *val)
{
- /* no known/supported struct */
+ const VkBaseInStructure *pnext = val;
+ size_t size = 0;
+
+ while (pnext) {
+ switch ((int32_t)pnext->sType) {
+ case VK_STRUCTURE_TYPE_RING_MONITOR_INFO_MESA:
+ size += vn_sizeof_simple_pointer(pnext);
+ size += vn_sizeof_VkStructureType(&pnext->sType);
+ size += vn_sizeof_VkRingCreateInfoMESA_pnext(pnext->pNext);
+ size += vn_sizeof_VkRingMonitorInfoMESA_self((const VkRingMonitorInfoMESA *)pnext);
+ return size;
+ default:
+ /* ignore unknown/unsupported struct */
+ break;
+ }
+ pnext = pnext->pNext;
+ }
+
return vn_sizeof_simple_pointer(NULL);
}
static inline void
vn_encode_VkRingCreateInfoMESA_pnext(struct vn_cs_encoder *enc, const void *val)
{
- /* no known/supported struct */
+ const VkBaseInStructure *pnext = val;
+
+ while (pnext) {
+ switch ((int32_t)pnext->sType) {
+ case VK_STRUCTURE_TYPE_RING_MONITOR_INFO_MESA:
+ vn_encode_simple_pointer(enc, pnext);
+ vn_encode_VkStructureType(enc, &pnext->sType);
+ vn_encode_VkRingCreateInfoMESA_pnext(enc, pnext->pNext);
+ vn_encode_VkRingMonitorInfoMESA_self(enc, (const VkRingMonitorInfoMESA *)pnext);
+ return;
+ default:
+ /* ignore unknown/unsupported struct */
+ break;
+ }
+ pnext = pnext->pNext;
+ }
+
vn_encode_simple_pointer(enc, NULL);
}