From ee9db8b0480de0ca55ae2f7f4ef4232d29c0bc03 Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Mon, 2 Aug 2021 13:04:12 -0700 Subject: [PATCH] vkr: validate non-optional pointers While this should be the job of VVL, vkr dereferences the pointers sometimes before calling down to the driver. It should be better for the decoder to validate for us. Signed-off-by: Chia-I Wu Reviewed-by: Yiwei Zhang Reviewed-by: Ryan Neph --- .../venus-protocol/vn_protocol_renderer.h | 2 +- .../vn_protocol_renderer_buffer.h | 7 ++++ .../vn_protocol_renderer_buffer_view.h | 2 ++ .../vn_protocol_renderer_command_buffer.h | 9 ++++++ .../vn_protocol_renderer_command_pool.h | 2 ++ .../vn_protocol_renderer_descriptor_pool.h | 2 ++ .../vn_protocol_renderer_descriptor_set.h | 1 + ..._protocol_renderer_descriptor_set_layout.h | 4 +++ ...ocol_renderer_descriptor_update_template.h | 2 ++ .../vn_protocol_renderer_device.h | 32 +++++++++++++++++++ .../vn_protocol_renderer_device_memory.h | 4 +++ .../vn_protocol_renderer_event.h | 2 ++ .../vn_protocol_renderer_fence.h | 2 ++ .../vn_protocol_renderer_framebuffer.h | 2 ++ .../vn_protocol_renderer_image.h | 11 +++++++ .../vn_protocol_renderer_image_view.h | 2 ++ .../vn_protocol_renderer_instance.h | 5 +++ .../vn_protocol_renderer_pipeline.h | 1 + .../vn_protocol_renderer_pipeline_cache.h | 3 ++ .../vn_protocol_renderer_pipeline_layout.h | 2 ++ .../vn_protocol_renderer_query_pool.h | 2 ++ .../vn_protocol_renderer_render_pass.h | 5 +++ .../vn_protocol_renderer_sampler.h | 2 ++ ...otocol_renderer_sampler_ycbcr_conversion.h | 2 ++ .../vn_protocol_renderer_semaphore.h | 5 +++ .../vn_protocol_renderer_shader_module.h | 2 ++ .../vn_protocol_renderer_transport.h | 4 +++ 27 files changed, 118 insertions(+), 1 deletion(-) diff --git a/src/venus/venus-protocol/vn_protocol_renderer.h b/src/venus/venus-protocol/vn_protocol_renderer.h index 96d5d44..21bac7b 100644 --- a/src/venus/venus-protocol/vn_protocol_renderer.h +++ b/src/venus/venus-protocol/vn_protocol_renderer.h @@ -1,4 +1,4 @@ -/* This file is generated by venus-protocol git-f59e7aad. */ +/* This file is generated by venus-protocol git-2c162241. */ /* * Copyright 2020 Google LLC diff --git a/src/venus/venus-protocol/vn_protocol_renderer_buffer.h b/src/venus/venus-protocol/vn_protocol_renderer_buffer.h index c85ab81..91b3c8c 100644 --- a/src/venus/venus-protocol/vn_protocol_renderer_buffer.h +++ b/src/venus/venus-protocol/vn_protocol_renderer_buffer.h @@ -605,6 +605,7 @@ static inline void vn_decode_vkGetBufferMemoryRequirements_args_temp(struct vn_c vn_decode_VkMemoryRequirements_partial_temp(dec, args->pMemoryRequirements); } else { args->pMemoryRequirements = NULL; + vn_cs_decoder_set_fatal(dec); } } @@ -661,6 +662,7 @@ static inline void vn_decode_vkCreateBuffer_args_temp(struct vn_cs_decoder *dec, vn_decode_VkBufferCreateInfo_temp(dec, (VkBufferCreateInfo *)args->pCreateInfo); } else { args->pCreateInfo = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_decode_simple_pointer(dec)) { vn_cs_decoder_set_fatal(dec); @@ -673,6 +675,7 @@ static inline void vn_decode_vkCreateBuffer_args_temp(struct vn_cs_decoder *dec, vn_decode_VkBuffer(dec, args->pBuffer); } else { args->pBuffer = NULL; + vn_cs_decoder_set_fatal(dec); } } @@ -769,6 +772,7 @@ static inline void vn_decode_vkGetBufferMemoryRequirements2_args_temp(struct vn_ vn_decode_VkBufferMemoryRequirementsInfo2_temp(dec, (VkBufferMemoryRequirementsInfo2 *)args->pInfo); } else { args->pInfo = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_decode_simple_pointer(dec)) { args->pMemoryRequirements = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pMemoryRequirements)); @@ -776,6 +780,7 @@ static inline void vn_decode_vkGetBufferMemoryRequirements2_args_temp(struct vn_ vn_decode_VkMemoryRequirements2_partial_temp(dec, args->pMemoryRequirements); } else { args->pMemoryRequirements = NULL; + vn_cs_decoder_set_fatal(dec); } } @@ -806,6 +811,7 @@ static inline void vn_decode_vkGetBufferOpaqueCaptureAddress_args_temp(struct vn vn_decode_VkBufferDeviceAddressInfo_temp(dec, (VkBufferDeviceAddressInfo *)args->pInfo); } else { args->pInfo = NULL; + vn_cs_decoder_set_fatal(dec); } } @@ -834,6 +840,7 @@ static inline void vn_decode_vkGetBufferDeviceAddress_args_temp(struct vn_cs_dec vn_decode_VkBufferDeviceAddressInfo_temp(dec, (VkBufferDeviceAddressInfo *)args->pInfo); } else { args->pInfo = NULL; + vn_cs_decoder_set_fatal(dec); } } diff --git a/src/venus/venus-protocol/vn_protocol_renderer_buffer_view.h b/src/venus/venus-protocol/vn_protocol_renderer_buffer_view.h index 2ddab48..c56d77b 100644 --- a/src/venus/venus-protocol/vn_protocol_renderer_buffer_view.h +++ b/src/venus/venus-protocol/vn_protocol_renderer_buffer_view.h @@ -88,6 +88,7 @@ static inline void vn_decode_vkCreateBufferView_args_temp(struct vn_cs_decoder * vn_decode_VkBufferViewCreateInfo_temp(dec, (VkBufferViewCreateInfo *)args->pCreateInfo); } else { args->pCreateInfo = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_decode_simple_pointer(dec)) { vn_cs_decoder_set_fatal(dec); @@ -100,6 +101,7 @@ static inline void vn_decode_vkCreateBufferView_args_temp(struct vn_cs_decoder * vn_decode_VkBufferView(dec, args->pView); } else { args->pView = NULL; + vn_cs_decoder_set_fatal(dec); } } diff --git a/src/venus/venus-protocol/vn_protocol_renderer_command_buffer.h b/src/venus/venus-protocol/vn_protocol_renderer_command_buffer.h index 39cc6db..3b015be 100644 --- a/src/venus/venus-protocol/vn_protocol_renderer_command_buffer.h +++ b/src/venus/venus-protocol/vn_protocol_renderer_command_buffer.h @@ -1192,6 +1192,7 @@ static inline void vn_decode_vkAllocateCommandBuffers_args_temp(struct vn_cs_dec vn_decode_VkCommandBufferAllocateInfo_temp(dec, (VkCommandBufferAllocateInfo *)args->pAllocateInfo); } else { args->pAllocateInfo = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_peek_array_size(dec)) { args->pCommandBuffers = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pCommandBuffers) * (args->pAllocateInfo ? args->pAllocateInfo->commandBufferCount : 0)); @@ -1276,6 +1277,7 @@ static inline void vn_decode_vkBeginCommandBuffer_args_temp(struct vn_cs_decoder vn_decode_VkCommandBufferBeginInfo_temp(dec, (VkCommandBufferBeginInfo *)args->pBeginInfo); } else { args->pBeginInfo = NULL; + vn_cs_decoder_set_fatal(dec); } } @@ -2248,6 +2250,7 @@ static inline void vn_decode_vkCmdClearDepthStencilImage_args_temp(struct vn_cs_ vn_decode_VkClearDepthStencilValue_temp(dec, (VkClearDepthStencilValue *)args->pDepthStencil); } else { args->pDepthStencil = NULL; + vn_cs_decoder_set_fatal(dec); } vn_decode_uint32_t(dec, &args->rangeCount); if (vn_peek_array_size(dec)) { @@ -2797,6 +2800,7 @@ static inline void vn_decode_vkCmdBeginRenderPass_args_temp(struct vn_cs_decoder vn_decode_VkRenderPassBeginInfo_temp(dec, (VkRenderPassBeginInfo *)args->pRenderPassBegin); } else { args->pRenderPassBegin = NULL; + vn_cs_decoder_set_fatal(dec); } vn_decode_VkSubpassContents(dec, &args->contents); } @@ -2954,6 +2958,7 @@ static inline void vn_decode_vkCmdBeginRenderPass2_args_temp(struct vn_cs_decode vn_decode_VkRenderPassBeginInfo_temp(dec, (VkRenderPassBeginInfo *)args->pRenderPassBegin); } else { args->pRenderPassBegin = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_decode_simple_pointer(dec)) { args->pSubpassBeginInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pSubpassBeginInfo)); @@ -2961,6 +2966,7 @@ static inline void vn_decode_vkCmdBeginRenderPass2_args_temp(struct vn_cs_decode vn_decode_VkSubpassBeginInfo_temp(dec, (VkSubpassBeginInfo *)args->pSubpassBeginInfo); } else { args->pSubpassBeginInfo = NULL; + vn_cs_decoder_set_fatal(dec); } } @@ -2991,6 +2997,7 @@ static inline void vn_decode_vkCmdNextSubpass2_args_temp(struct vn_cs_decoder *d vn_decode_VkSubpassBeginInfo_temp(dec, (VkSubpassBeginInfo *)args->pSubpassBeginInfo); } else { args->pSubpassBeginInfo = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_decode_simple_pointer(dec)) { args->pSubpassEndInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pSubpassEndInfo)); @@ -2998,6 +3005,7 @@ static inline void vn_decode_vkCmdNextSubpass2_args_temp(struct vn_cs_decoder *d vn_decode_VkSubpassEndInfo_temp(dec, (VkSubpassEndInfo *)args->pSubpassEndInfo); } else { args->pSubpassEndInfo = NULL; + vn_cs_decoder_set_fatal(dec); } } @@ -3028,6 +3036,7 @@ static inline void vn_decode_vkCmdEndRenderPass2_args_temp(struct vn_cs_decoder vn_decode_VkSubpassEndInfo_temp(dec, (VkSubpassEndInfo *)args->pSubpassEndInfo); } else { args->pSubpassEndInfo = NULL; + vn_cs_decoder_set_fatal(dec); } } diff --git a/src/venus/venus-protocol/vn_protocol_renderer_command_pool.h b/src/venus/venus-protocol/vn_protocol_renderer_command_pool.h index 2312a68..4974368 100644 --- a/src/venus/venus-protocol/vn_protocol_renderer_command_pool.h +++ b/src/venus/venus-protocol/vn_protocol_renderer_command_pool.h @@ -82,6 +82,7 @@ static inline void vn_decode_vkCreateCommandPool_args_temp(struct vn_cs_decoder vn_decode_VkCommandPoolCreateInfo_temp(dec, (VkCommandPoolCreateInfo *)args->pCreateInfo); } else { args->pCreateInfo = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_decode_simple_pointer(dec)) { vn_cs_decoder_set_fatal(dec); @@ -94,6 +95,7 @@ static inline void vn_decode_vkCreateCommandPool_args_temp(struct vn_cs_decoder vn_decode_VkCommandPool(dec, args->pCommandPool); } else { args->pCommandPool = NULL; + vn_cs_decoder_set_fatal(dec); } } diff --git a/src/venus/venus-protocol/vn_protocol_renderer_descriptor_pool.h b/src/venus/venus-protocol/vn_protocol_renderer_descriptor_pool.h index 8b8f6c1..805173c 100644 --- a/src/venus/venus-protocol/vn_protocol_renderer_descriptor_pool.h +++ b/src/venus/venus-protocol/vn_protocol_renderer_descriptor_pool.h @@ -114,6 +114,7 @@ static inline void vn_decode_vkCreateDescriptorPool_args_temp(struct vn_cs_decod vn_decode_VkDescriptorPoolCreateInfo_temp(dec, (VkDescriptorPoolCreateInfo *)args->pCreateInfo); } else { args->pCreateInfo = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_decode_simple_pointer(dec)) { vn_cs_decoder_set_fatal(dec); @@ -126,6 +127,7 @@ static inline void vn_decode_vkCreateDescriptorPool_args_temp(struct vn_cs_decod vn_decode_VkDescriptorPool(dec, args->pDescriptorPool); } else { args->pDescriptorPool = NULL; + vn_cs_decoder_set_fatal(dec); } } diff --git a/src/venus/venus-protocol/vn_protocol_renderer_descriptor_set.h b/src/venus/venus-protocol/vn_protocol_renderer_descriptor_set.h index 39b98ea..b0f01cb 100644 --- a/src/venus/venus-protocol/vn_protocol_renderer_descriptor_set.h +++ b/src/venus/venus-protocol/vn_protocol_renderer_descriptor_set.h @@ -404,6 +404,7 @@ static inline void vn_decode_vkAllocateDescriptorSets_args_temp(struct vn_cs_dec vn_decode_VkDescriptorSetAllocateInfo_temp(dec, (VkDescriptorSetAllocateInfo *)args->pAllocateInfo); } else { args->pAllocateInfo = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_peek_array_size(dec)) { args->pDescriptorSets = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pDescriptorSets) * (args->pAllocateInfo ? args->pAllocateInfo->descriptorSetCount : 0)); diff --git a/src/venus/venus-protocol/vn_protocol_renderer_descriptor_set_layout.h b/src/venus/venus-protocol/vn_protocol_renderer_descriptor_set_layout.h index de449a0..e26d7c1 100644 --- a/src/venus/venus-protocol/vn_protocol_renderer_descriptor_set_layout.h +++ b/src/venus/venus-protocol/vn_protocol_renderer_descriptor_set_layout.h @@ -365,6 +365,7 @@ static inline void vn_decode_vkCreateDescriptorSetLayout_args_temp(struct vn_cs_ vn_decode_VkDescriptorSetLayoutCreateInfo_temp(dec, (VkDescriptorSetLayoutCreateInfo *)args->pCreateInfo); } else { args->pCreateInfo = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_decode_simple_pointer(dec)) { vn_cs_decoder_set_fatal(dec); @@ -377,6 +378,7 @@ static inline void vn_decode_vkCreateDescriptorSetLayout_args_temp(struct vn_cs_ vn_decode_VkDescriptorSetLayout(dec, args->pSetLayout); } else { args->pSetLayout = NULL; + vn_cs_decoder_set_fatal(dec); } } @@ -437,6 +439,7 @@ static inline void vn_decode_vkGetDescriptorSetLayoutSupport_args_temp(struct vn vn_decode_VkDescriptorSetLayoutCreateInfo_temp(dec, (VkDescriptorSetLayoutCreateInfo *)args->pCreateInfo); } else { args->pCreateInfo = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_decode_simple_pointer(dec)) { args->pSupport = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pSupport)); @@ -444,6 +447,7 @@ static inline void vn_decode_vkGetDescriptorSetLayoutSupport_args_temp(struct vn vn_decode_VkDescriptorSetLayoutSupport_partial_temp(dec, args->pSupport); } else { args->pSupport = NULL; + vn_cs_decoder_set_fatal(dec); } } diff --git a/src/venus/venus-protocol/vn_protocol_renderer_descriptor_update_template.h b/src/venus/venus-protocol/vn_protocol_renderer_descriptor_update_template.h index 343f761..7ab941b 100644 --- a/src/venus/venus-protocol/vn_protocol_renderer_descriptor_update_template.h +++ b/src/venus/venus-protocol/vn_protocol_renderer_descriptor_update_template.h @@ -130,6 +130,7 @@ static inline void vn_decode_vkCreateDescriptorUpdateTemplate_args_temp(struct v vn_decode_VkDescriptorUpdateTemplateCreateInfo_temp(dec, (VkDescriptorUpdateTemplateCreateInfo *)args->pCreateInfo); } else { args->pCreateInfo = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_decode_simple_pointer(dec)) { vn_cs_decoder_set_fatal(dec); @@ -142,6 +143,7 @@ static inline void vn_decode_vkCreateDescriptorUpdateTemplate_args_temp(struct v vn_decode_VkDescriptorUpdateTemplate(dec, args->pDescriptorUpdateTemplate); } else { args->pDescriptorUpdateTemplate = NULL; + vn_cs_decoder_set_fatal(dec); } } diff --git a/src/venus/venus-protocol/vn_protocol_renderer_device.h b/src/venus/venus-protocol/vn_protocol_renderer_device.h index 4e7f05c..6bddbee 100644 --- a/src/venus/venus-protocol/vn_protocol_renderer_device.h +++ b/src/venus/venus-protocol/vn_protocol_renderer_device.h @@ -7428,6 +7428,7 @@ static inline void vn_decode_vkEnumeratePhysicalDevices_args_temp(struct vn_cs_d vn_decode_uint32_t(dec, args->pPhysicalDeviceCount); } else { args->pPhysicalDeviceCount = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_peek_array_size(dec)) { args->pPhysicalDevices = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pPhysicalDevices) * (args->pPhysicalDeviceCount ? *args->pPhysicalDeviceCount : 0)); @@ -7474,6 +7475,7 @@ static inline void vn_decode_vkGetPhysicalDeviceProperties_args_temp(struct vn_c vn_decode_VkPhysicalDeviceProperties_partial_temp(dec, args->pProperties); } else { args->pProperties = NULL; + vn_cs_decoder_set_fatal(dec); } } @@ -7501,6 +7503,7 @@ static inline void vn_decode_vkGetPhysicalDeviceQueueFamilyProperties_args_temp( vn_decode_uint32_t(dec, args->pQueueFamilyPropertyCount); } else { args->pQueueFamilyPropertyCount = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_peek_array_size(dec)) { args->pQueueFamilyProperties = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pQueueFamilyProperties) * (args->pQueueFamilyPropertyCount ? *args->pQueueFamilyPropertyCount : 0)); @@ -7546,6 +7549,7 @@ static inline void vn_decode_vkGetPhysicalDeviceMemoryProperties_args_temp(struc vn_decode_VkPhysicalDeviceMemoryProperties_partial_temp(dec, args->pMemoryProperties); } else { args->pMemoryProperties = NULL; + vn_cs_decoder_set_fatal(dec); } } @@ -7573,6 +7577,7 @@ static inline void vn_decode_vkGetPhysicalDeviceFeatures_args_temp(struct vn_cs_ vn_decode_VkPhysicalDeviceFeatures_partial_temp(dec, args->pFeatures); } else { args->pFeatures = NULL; + vn_cs_decoder_set_fatal(dec); } } @@ -7601,6 +7606,7 @@ static inline void vn_decode_vkGetPhysicalDeviceFormatProperties_args_temp(struc vn_decode_VkFormatProperties_partial_temp(dec, args->pFormatProperties); } else { args->pFormatProperties = NULL; + vn_cs_decoder_set_fatal(dec); } } @@ -7635,6 +7641,7 @@ static inline void vn_decode_vkGetPhysicalDeviceImageFormatProperties_args_temp( vn_decode_VkImageFormatProperties_partial_temp(dec, args->pImageFormatProperties); } else { args->pImageFormatProperties = NULL; + vn_cs_decoder_set_fatal(dec); } } @@ -7673,6 +7680,7 @@ static inline void vn_decode_vkCreateDevice_args_temp(struct vn_cs_decoder *dec, vn_decode_VkDeviceCreateInfo_temp(dec, (VkDeviceCreateInfo *)args->pCreateInfo); } else { args->pCreateInfo = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_decode_simple_pointer(dec)) { vn_cs_decoder_set_fatal(dec); @@ -7685,6 +7693,7 @@ static inline void vn_decode_vkCreateDevice_args_temp(struct vn_cs_decoder *dec, vn_decode_VkDevice_temp(dec, args->pDevice); } else { args->pDevice = NULL; + vn_cs_decoder_set_fatal(dec); } } @@ -7742,6 +7751,7 @@ static inline void vn_decode_vkEnumerateDeviceLayerProperties_args_temp(struct v vn_decode_uint32_t(dec, args->pPropertyCount); } else { args->pPropertyCount = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_peek_array_size(dec)) { args->pProperties = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pProperties) * (args->pPropertyCount ? *args->pPropertyCount : 0)); @@ -7797,6 +7807,7 @@ static inline void vn_decode_vkEnumerateDeviceExtensionProperties_args_temp(stru vn_decode_uint32_t(dec, args->pPropertyCount); } else { args->pPropertyCount = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_peek_array_size(dec)) { args->pProperties = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pProperties) * (args->pPropertyCount ? *args->pPropertyCount : 0)); @@ -7847,6 +7858,7 @@ static inline void vn_decode_vkGetDeviceQueue_args_temp(struct vn_cs_decoder *de vn_decode_VkQueue_temp(dec, args->pQueue); } else { args->pQueue = NULL; + vn_cs_decoder_set_fatal(dec); } } @@ -7901,6 +7913,7 @@ static inline void vn_decode_vkGetPhysicalDeviceSparseImageFormatProperties_args vn_decode_uint32_t(dec, args->pPropertyCount); } else { args->pPropertyCount = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_peek_array_size(dec)) { args->pProperties = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pProperties) * (args->pPropertyCount ? *args->pPropertyCount : 0)); @@ -7956,6 +7969,7 @@ static inline void vn_decode_vkGetPhysicalDeviceFeatures2_args_temp(struct vn_cs vn_decode_VkPhysicalDeviceFeatures2_partial_temp(dec, args->pFeatures); } else { args->pFeatures = NULL; + vn_cs_decoder_set_fatal(dec); } } @@ -7983,6 +7997,7 @@ static inline void vn_decode_vkGetPhysicalDeviceProperties2_args_temp(struct vn_ vn_decode_VkPhysicalDeviceProperties2_partial_temp(dec, args->pProperties); } else { args->pProperties = NULL; + vn_cs_decoder_set_fatal(dec); } } @@ -8011,6 +8026,7 @@ static inline void vn_decode_vkGetPhysicalDeviceFormatProperties2_args_temp(stru vn_decode_VkFormatProperties2_partial_temp(dec, args->pFormatProperties); } else { args->pFormatProperties = NULL; + vn_cs_decoder_set_fatal(dec); } } @@ -8040,6 +8056,7 @@ static inline void vn_decode_vkGetPhysicalDeviceImageFormatProperties2_args_temp vn_decode_VkPhysicalDeviceImageFormatInfo2_temp(dec, (VkPhysicalDeviceImageFormatInfo2 *)args->pImageFormatInfo); } else { args->pImageFormatInfo = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_decode_simple_pointer(dec)) { args->pImageFormatProperties = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pImageFormatProperties)); @@ -8047,6 +8064,7 @@ static inline void vn_decode_vkGetPhysicalDeviceImageFormatProperties2_args_temp vn_decode_VkImageFormatProperties2_partial_temp(dec, args->pImageFormatProperties); } else { args->pImageFormatProperties = NULL; + vn_cs_decoder_set_fatal(dec); } } @@ -8078,6 +8096,7 @@ static inline void vn_decode_vkGetPhysicalDeviceQueueFamilyProperties2_args_temp vn_decode_uint32_t(dec, args->pQueueFamilyPropertyCount); } else { args->pQueueFamilyPropertyCount = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_peek_array_size(dec)) { args->pQueueFamilyProperties = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pQueueFamilyProperties) * (args->pQueueFamilyPropertyCount ? *args->pQueueFamilyPropertyCount : 0)); @@ -8123,6 +8142,7 @@ static inline void vn_decode_vkGetPhysicalDeviceMemoryProperties2_args_temp(stru vn_decode_VkPhysicalDeviceMemoryProperties2_partial_temp(dec, args->pMemoryProperties); } else { args->pMemoryProperties = NULL; + vn_cs_decoder_set_fatal(dec); } } @@ -8150,6 +8170,7 @@ static inline void vn_decode_vkGetPhysicalDeviceSparseImageFormatProperties2_arg vn_decode_VkPhysicalDeviceSparseImageFormatInfo2_temp(dec, (VkPhysicalDeviceSparseImageFormatInfo2 *)args->pFormatInfo); } else { args->pFormatInfo = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_decode_simple_pointer(dec)) { args->pPropertyCount = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pPropertyCount)); @@ -8157,6 +8178,7 @@ static inline void vn_decode_vkGetPhysicalDeviceSparseImageFormatProperties2_arg vn_decode_uint32_t(dec, args->pPropertyCount); } else { args->pPropertyCount = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_peek_array_size(dec)) { args->pProperties = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pProperties) * (args->pPropertyCount ? *args->pPropertyCount : 0)); @@ -8205,6 +8227,7 @@ static inline void vn_decode_vkGetPhysicalDeviceExternalBufferProperties_args_te vn_decode_VkPhysicalDeviceExternalBufferInfo_temp(dec, (VkPhysicalDeviceExternalBufferInfo *)args->pExternalBufferInfo); } else { args->pExternalBufferInfo = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_decode_simple_pointer(dec)) { args->pExternalBufferProperties = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pExternalBufferProperties)); @@ -8212,6 +8235,7 @@ static inline void vn_decode_vkGetPhysicalDeviceExternalBufferProperties_args_te vn_decode_VkExternalBufferProperties_partial_temp(dec, args->pExternalBufferProperties); } else { args->pExternalBufferProperties = NULL; + vn_cs_decoder_set_fatal(dec); } } @@ -8242,6 +8266,7 @@ static inline void vn_decode_vkGetPhysicalDeviceExternalSemaphoreProperties_args vn_decode_VkPhysicalDeviceExternalSemaphoreInfo_temp(dec, (VkPhysicalDeviceExternalSemaphoreInfo *)args->pExternalSemaphoreInfo); } else { args->pExternalSemaphoreInfo = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_decode_simple_pointer(dec)) { args->pExternalSemaphoreProperties = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pExternalSemaphoreProperties)); @@ -8249,6 +8274,7 @@ static inline void vn_decode_vkGetPhysicalDeviceExternalSemaphoreProperties_args vn_decode_VkExternalSemaphoreProperties_partial_temp(dec, args->pExternalSemaphoreProperties); } else { args->pExternalSemaphoreProperties = NULL; + vn_cs_decoder_set_fatal(dec); } } @@ -8279,6 +8305,7 @@ static inline void vn_decode_vkGetPhysicalDeviceExternalFenceProperties_args_tem vn_decode_VkPhysicalDeviceExternalFenceInfo_temp(dec, (VkPhysicalDeviceExternalFenceInfo *)args->pExternalFenceInfo); } else { args->pExternalFenceInfo = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_decode_simple_pointer(dec)) { args->pExternalFenceProperties = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pExternalFenceProperties)); @@ -8286,6 +8313,7 @@ static inline void vn_decode_vkGetPhysicalDeviceExternalFenceProperties_args_tem vn_decode_VkExternalFenceProperties_partial_temp(dec, args->pExternalFenceProperties); } else { args->pExternalFenceProperties = NULL; + vn_cs_decoder_set_fatal(dec); } } @@ -8316,6 +8344,7 @@ static inline void vn_decode_vkEnumeratePhysicalDeviceGroups_args_temp(struct vn vn_decode_uint32_t(dec, args->pPhysicalDeviceGroupCount); } else { args->pPhysicalDeviceGroupCount = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_peek_array_size(dec)) { args->pPhysicalDeviceGroupProperties = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pPhysicalDeviceGroupProperties) * (args->pPhysicalDeviceGroupCount ? *args->pPhysicalDeviceGroupCount : 0)); @@ -8364,6 +8393,7 @@ static inline void vn_decode_vkGetDeviceGroupPeerMemoryFeatures_args_temp(struct if (!args->pPeerMemoryFeatures) return; } else { args->pPeerMemoryFeatures = NULL; + vn_cs_decoder_set_fatal(dec); } } @@ -8397,6 +8427,7 @@ static inline void vn_decode_vkGetDeviceQueue2_args_temp(struct vn_cs_decoder *d vn_decode_VkDeviceQueueInfo2_temp(dec, (VkDeviceQueueInfo2 *)args->pQueueInfo); } else { args->pQueueInfo = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_decode_simple_pointer(dec)) { args->pQueue = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pQueue)); @@ -8404,6 +8435,7 @@ static inline void vn_decode_vkGetDeviceQueue2_args_temp(struct vn_cs_decoder *d vn_decode_VkQueue_temp(dec, args->pQueue); } else { args->pQueue = NULL; + vn_cs_decoder_set_fatal(dec); } } diff --git a/src/venus/venus-protocol/vn_protocol_renderer_device_memory.h b/src/venus/venus-protocol/vn_protocol_renderer_device_memory.h index e601e14..da62720 100644 --- a/src/venus/venus-protocol/vn_protocol_renderer_device_memory.h +++ b/src/venus/venus-protocol/vn_protocol_renderer_device_memory.h @@ -613,6 +613,7 @@ static inline void vn_decode_vkAllocateMemory_args_temp(struct vn_cs_decoder *de vn_decode_VkMemoryAllocateInfo_temp(dec, (VkMemoryAllocateInfo *)args->pAllocateInfo); } else { args->pAllocateInfo = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_decode_simple_pointer(dec)) { vn_cs_decoder_set_fatal(dec); @@ -625,6 +626,7 @@ static inline void vn_decode_vkAllocateMemory_args_temp(struct vn_cs_decoder *de vn_decode_VkDeviceMemory(dec, args->pMemory); } else { args->pMemory = NULL; + vn_cs_decoder_set_fatal(dec); } } @@ -777,6 +779,7 @@ static inline void vn_decode_vkGetDeviceMemoryCommitment_args_temp(struct vn_cs_ if (!args->pCommittedMemoryInBytes) return; } else { args->pCommittedMemoryInBytes = NULL; + vn_cs_decoder_set_fatal(dec); } } @@ -806,6 +809,7 @@ static inline void vn_decode_vkGetDeviceMemoryOpaqueCaptureAddress_args_temp(str vn_decode_VkDeviceMemoryOpaqueCaptureAddressInfo_temp(dec, (VkDeviceMemoryOpaqueCaptureAddressInfo *)args->pInfo); } else { args->pInfo = NULL; + vn_cs_decoder_set_fatal(dec); } } diff --git a/src/venus/venus-protocol/vn_protocol_renderer_event.h b/src/venus/venus-protocol/vn_protocol_renderer_event.h index e1a2073..e7089ca 100644 --- a/src/venus/venus-protocol/vn_protocol_renderer_event.h +++ b/src/venus/venus-protocol/vn_protocol_renderer_event.h @@ -80,6 +80,7 @@ static inline void vn_decode_vkCreateEvent_args_temp(struct vn_cs_decoder *dec, vn_decode_VkEventCreateInfo_temp(dec, (VkEventCreateInfo *)args->pCreateInfo); } else { args->pCreateInfo = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_decode_simple_pointer(dec)) { vn_cs_decoder_set_fatal(dec); @@ -92,6 +93,7 @@ static inline void vn_decode_vkCreateEvent_args_temp(struct vn_cs_decoder *dec, vn_decode_VkEvent(dec, args->pEvent); } else { args->pEvent = NULL; + vn_cs_decoder_set_fatal(dec); } } diff --git a/src/venus/venus-protocol/vn_protocol_renderer_fence.h b/src/venus/venus-protocol/vn_protocol_renderer_fence.h index 4c1bce3..b79094c 100644 --- a/src/venus/venus-protocol/vn_protocol_renderer_fence.h +++ b/src/venus/venus-protocol/vn_protocol_renderer_fence.h @@ -160,6 +160,7 @@ static inline void vn_decode_vkCreateFence_args_temp(struct vn_cs_decoder *dec, vn_decode_VkFenceCreateInfo_temp(dec, (VkFenceCreateInfo *)args->pCreateInfo); } else { args->pCreateInfo = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_decode_simple_pointer(dec)) { vn_cs_decoder_set_fatal(dec); @@ -172,6 +173,7 @@ static inline void vn_decode_vkCreateFence_args_temp(struct vn_cs_decoder *dec, vn_decode_VkFence(dec, args->pFence); } else { args->pFence = NULL; + vn_cs_decoder_set_fatal(dec); } } diff --git a/src/venus/venus-protocol/vn_protocol_renderer_framebuffer.h b/src/venus/venus-protocol/vn_protocol_renderer_framebuffer.h index 264f1f7..20798ec 100644 --- a/src/venus/venus-protocol/vn_protocol_renderer_framebuffer.h +++ b/src/venus/venus-protocol/vn_protocol_renderer_framebuffer.h @@ -275,6 +275,7 @@ static inline void vn_decode_vkCreateFramebuffer_args_temp(struct vn_cs_decoder vn_decode_VkFramebufferCreateInfo_temp(dec, (VkFramebufferCreateInfo *)args->pCreateInfo); } else { args->pCreateInfo = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_decode_simple_pointer(dec)) { vn_cs_decoder_set_fatal(dec); @@ -287,6 +288,7 @@ static inline void vn_decode_vkCreateFramebuffer_args_temp(struct vn_cs_decoder vn_decode_VkFramebuffer(dec, args->pFramebuffer); } else { args->pFramebuffer = NULL; + vn_cs_decoder_set_fatal(dec); } } diff --git a/src/venus/venus-protocol/vn_protocol_renderer_image.h b/src/venus/venus-protocol/vn_protocol_renderer_image.h index 62bb895..6867c2d 100644 --- a/src/venus/venus-protocol/vn_protocol_renderer_image.h +++ b/src/venus/venus-protocol/vn_protocol_renderer_image.h @@ -1085,6 +1085,7 @@ static inline void vn_decode_vkGetImageMemoryRequirements_args_temp(struct vn_cs vn_decode_VkMemoryRequirements_partial_temp(dec, args->pMemoryRequirements); } else { args->pMemoryRequirements = NULL; + vn_cs_decoder_set_fatal(dec); } } @@ -1142,6 +1143,7 @@ static inline void vn_decode_vkGetImageSparseMemoryRequirements_args_temp(struct vn_decode_uint32_t(dec, args->pSparseMemoryRequirementCount); } else { args->pSparseMemoryRequirementCount = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_peek_array_size(dec)) { args->pSparseMemoryRequirements = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pSparseMemoryRequirements) * (args->pSparseMemoryRequirementCount ? *args->pSparseMemoryRequirementCount : 0)); @@ -1189,6 +1191,7 @@ static inline void vn_decode_vkCreateImage_args_temp(struct vn_cs_decoder *dec, vn_decode_VkImageCreateInfo_temp(dec, (VkImageCreateInfo *)args->pCreateInfo); } else { args->pCreateInfo = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_decode_simple_pointer(dec)) { vn_cs_decoder_set_fatal(dec); @@ -1201,6 +1204,7 @@ static inline void vn_decode_vkCreateImage_args_temp(struct vn_cs_decoder *dec, vn_decode_VkImage(dec, args->pImage); } else { args->pImage = NULL; + vn_cs_decoder_set_fatal(dec); } } @@ -1262,6 +1266,7 @@ static inline void vn_decode_vkGetImageSubresourceLayout_args_temp(struct vn_cs_ vn_decode_VkImageSubresource_temp(dec, (VkImageSubresource *)args->pSubresource); } else { args->pSubresource = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_decode_simple_pointer(dec)) { args->pLayout = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pLayout)); @@ -1269,6 +1274,7 @@ static inline void vn_decode_vkGetImageSubresourceLayout_args_temp(struct vn_cs_ vn_decode_VkSubresourceLayout_partial_temp(dec, args->pLayout); } else { args->pLayout = NULL; + vn_cs_decoder_set_fatal(dec); } } @@ -1337,6 +1343,7 @@ static inline void vn_decode_vkGetImageMemoryRequirements2_args_temp(struct vn_c vn_decode_VkImageMemoryRequirementsInfo2_temp(dec, (VkImageMemoryRequirementsInfo2 *)args->pInfo); } else { args->pInfo = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_decode_simple_pointer(dec)) { args->pMemoryRequirements = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pMemoryRequirements)); @@ -1344,6 +1351,7 @@ static inline void vn_decode_vkGetImageMemoryRequirements2_args_temp(struct vn_c vn_decode_VkMemoryRequirements2_partial_temp(dec, args->pMemoryRequirements); } else { args->pMemoryRequirements = NULL; + vn_cs_decoder_set_fatal(dec); } } @@ -1374,6 +1382,7 @@ static inline void vn_decode_vkGetImageSparseMemoryRequirements2_args_temp(struc vn_decode_VkImageSparseMemoryRequirementsInfo2_temp(dec, (VkImageSparseMemoryRequirementsInfo2 *)args->pInfo); } else { args->pInfo = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_decode_simple_pointer(dec)) { args->pSparseMemoryRequirementCount = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pSparseMemoryRequirementCount)); @@ -1381,6 +1390,7 @@ static inline void vn_decode_vkGetImageSparseMemoryRequirements2_args_temp(struc vn_decode_uint32_t(dec, args->pSparseMemoryRequirementCount); } else { args->pSparseMemoryRequirementCount = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_peek_array_size(dec)) { args->pSparseMemoryRequirements = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pSparseMemoryRequirements) * (args->pSparseMemoryRequirementCount ? *args->pSparseMemoryRequirementCount : 0)); @@ -1430,6 +1440,7 @@ static inline void vn_decode_vkGetImageDrmFormatModifierPropertiesEXT_args_temp( vn_decode_VkImageDrmFormatModifierPropertiesEXT_partial_temp(dec, args->pProperties); } else { args->pProperties = NULL; + vn_cs_decoder_set_fatal(dec); } } diff --git a/src/venus/venus-protocol/vn_protocol_renderer_image_view.h b/src/venus/venus-protocol/vn_protocol_renderer_image_view.h index 2929fc9..6f6283e 100644 --- a/src/venus/venus-protocol/vn_protocol_renderer_image_view.h +++ b/src/venus/venus-protocol/vn_protocol_renderer_image_view.h @@ -181,6 +181,7 @@ static inline void vn_decode_vkCreateImageView_args_temp(struct vn_cs_decoder *d vn_decode_VkImageViewCreateInfo_temp(dec, (VkImageViewCreateInfo *)args->pCreateInfo); } else { args->pCreateInfo = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_decode_simple_pointer(dec)) { vn_cs_decoder_set_fatal(dec); @@ -193,6 +194,7 @@ static inline void vn_decode_vkCreateImageView_args_temp(struct vn_cs_decoder *d vn_decode_VkImageView(dec, args->pView); } else { args->pView = NULL; + vn_cs_decoder_set_fatal(dec); } } diff --git a/src/venus/venus-protocol/vn_protocol_renderer_instance.h b/src/venus/venus-protocol/vn_protocol_renderer_instance.h index 24369eb..aadd596 100644 --- a/src/venus/venus-protocol/vn_protocol_renderer_instance.h +++ b/src/venus/venus-protocol/vn_protocol_renderer_instance.h @@ -209,6 +209,7 @@ static inline void vn_decode_vkCreateInstance_args_temp(struct vn_cs_decoder *de vn_decode_VkInstanceCreateInfo_temp(dec, (VkInstanceCreateInfo *)args->pCreateInfo); } else { args->pCreateInfo = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_decode_simple_pointer(dec)) { vn_cs_decoder_set_fatal(dec); @@ -221,6 +222,7 @@ static inline void vn_decode_vkCreateInstance_args_temp(struct vn_cs_decoder *de vn_decode_VkInstance_temp(dec, args->pInstance); } else { args->pInstance = NULL; + vn_cs_decoder_set_fatal(dec); } } @@ -274,6 +276,7 @@ static inline void vn_decode_vkEnumerateInstanceVersion_args_temp(struct vn_cs_d if (!args->pApiVersion) return; } else { args->pApiVersion = NULL; + vn_cs_decoder_set_fatal(dec); } } @@ -299,6 +302,7 @@ static inline void vn_decode_vkEnumerateInstanceLayerProperties_args_temp(struct vn_decode_uint32_t(dec, args->pPropertyCount); } else { args->pPropertyCount = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_peek_array_size(dec)) { args->pProperties = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pProperties) * (args->pPropertyCount ? *args->pPropertyCount : 0)); @@ -351,6 +355,7 @@ static inline void vn_decode_vkEnumerateInstanceExtensionProperties_args_temp(st vn_decode_uint32_t(dec, args->pPropertyCount); } else { args->pPropertyCount = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_peek_array_size(dec)) { args->pProperties = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pProperties) * (args->pPropertyCount ? *args->pPropertyCount : 0)); diff --git a/src/venus/venus-protocol/vn_protocol_renderer_pipeline.h b/src/venus/venus-protocol/vn_protocol_renderer_pipeline.h index 0b857c2..897f58b 100644 --- a/src/venus/venus-protocol/vn_protocol_renderer_pipeline.h +++ b/src/venus/venus-protocol/vn_protocol_renderer_pipeline.h @@ -1145,6 +1145,7 @@ vn_decode_VkGraphicsPipelineCreateInfo_self_temp(struct vn_cs_decoder *dec, VkGr vn_decode_VkPipelineRasterizationStateCreateInfo_temp(dec, (VkPipelineRasterizationStateCreateInfo *)val->pRasterizationState); } else { val->pRasterizationState = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_decode_simple_pointer(dec)) { val->pMultisampleState = vn_cs_decoder_alloc_temp(dec, sizeof(*val->pMultisampleState)); diff --git a/src/venus/venus-protocol/vn_protocol_renderer_pipeline_cache.h b/src/venus/venus-protocol/vn_protocol_renderer_pipeline_cache.h index 11d9ba7..1ebb0df 100644 --- a/src/venus/venus-protocol/vn_protocol_renderer_pipeline_cache.h +++ b/src/venus/venus-protocol/vn_protocol_renderer_pipeline_cache.h @@ -92,6 +92,7 @@ static inline void vn_decode_vkCreatePipelineCache_args_temp(struct vn_cs_decode vn_decode_VkPipelineCacheCreateInfo_temp(dec, (VkPipelineCacheCreateInfo *)args->pCreateInfo); } else { args->pCreateInfo = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_decode_simple_pointer(dec)) { vn_cs_decoder_set_fatal(dec); @@ -104,6 +105,7 @@ static inline void vn_decode_vkCreatePipelineCache_args_temp(struct vn_cs_decode vn_decode_VkPipelineCache(dec, args->pPipelineCache); } else { args->pPipelineCache = NULL; + vn_cs_decoder_set_fatal(dec); } } @@ -165,6 +167,7 @@ static inline void vn_decode_vkGetPipelineCacheData_args_temp(struct vn_cs_decod vn_decode_size_t(dec, args->pDataSize); } else { args->pDataSize = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_peek_array_size(dec)) { const size_t array_size = vn_decode_array_size(dec, (args->pDataSize ? *args->pDataSize : 0)); diff --git a/src/venus/venus-protocol/vn_protocol_renderer_pipeline_layout.h b/src/venus/venus-protocol/vn_protocol_renderer_pipeline_layout.h index cdc903c..0d1eac1 100644 --- a/src/venus/venus-protocol/vn_protocol_renderer_pipeline_layout.h +++ b/src/venus/venus-protocol/vn_protocol_renderer_pipeline_layout.h @@ -130,6 +130,7 @@ static inline void vn_decode_vkCreatePipelineLayout_args_temp(struct vn_cs_decod vn_decode_VkPipelineLayoutCreateInfo_temp(dec, (VkPipelineLayoutCreateInfo *)args->pCreateInfo); } else { args->pCreateInfo = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_decode_simple_pointer(dec)) { vn_cs_decoder_set_fatal(dec); @@ -142,6 +143,7 @@ static inline void vn_decode_vkCreatePipelineLayout_args_temp(struct vn_cs_decod vn_decode_VkPipelineLayout(dec, args->pPipelineLayout); } else { args->pPipelineLayout = NULL; + vn_cs_decoder_set_fatal(dec); } } diff --git a/src/venus/venus-protocol/vn_protocol_renderer_query_pool.h b/src/venus/venus-protocol/vn_protocol_renderer_query_pool.h index 7aefb7f..1bcfcf6 100644 --- a/src/venus/venus-protocol/vn_protocol_renderer_query_pool.h +++ b/src/venus/venus-protocol/vn_protocol_renderer_query_pool.h @@ -86,6 +86,7 @@ static inline void vn_decode_vkCreateQueryPool_args_temp(struct vn_cs_decoder *d vn_decode_VkQueryPoolCreateInfo_temp(dec, (VkQueryPoolCreateInfo *)args->pCreateInfo); } else { args->pCreateInfo = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_decode_simple_pointer(dec)) { vn_cs_decoder_set_fatal(dec); @@ -98,6 +99,7 @@ static inline void vn_decode_vkCreateQueryPool_args_temp(struct vn_cs_decoder *d vn_decode_VkQueryPool(dec, args->pQueryPool); } else { args->pQueryPool = NULL; + vn_cs_decoder_set_fatal(dec); } } diff --git a/src/venus/venus-protocol/vn_protocol_renderer_render_pass.h b/src/venus/venus-protocol/vn_protocol_renderer_render_pass.h index 69c6144..5f8389e 100644 --- a/src/venus/venus-protocol/vn_protocol_renderer_render_pass.h +++ b/src/venus/venus-protocol/vn_protocol_renderer_render_pass.h @@ -1200,6 +1200,7 @@ static inline void vn_decode_vkCreateRenderPass_args_temp(struct vn_cs_decoder * vn_decode_VkRenderPassCreateInfo_temp(dec, (VkRenderPassCreateInfo *)args->pCreateInfo); } else { args->pCreateInfo = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_decode_simple_pointer(dec)) { vn_cs_decoder_set_fatal(dec); @@ -1212,6 +1213,7 @@ static inline void vn_decode_vkCreateRenderPass_args_temp(struct vn_cs_decoder * vn_decode_VkRenderPass(dec, args->pRenderPass); } else { args->pRenderPass = NULL; + vn_cs_decoder_set_fatal(dec); } } @@ -1273,6 +1275,7 @@ static inline void vn_decode_vkGetRenderAreaGranularity_args_temp(struct vn_cs_d vn_decode_VkExtent2D_partial_temp(dec, args->pGranularity); } else { args->pGranularity = NULL; + vn_cs_decoder_set_fatal(dec); } } @@ -1302,6 +1305,7 @@ static inline void vn_decode_vkCreateRenderPass2_args_temp(struct vn_cs_decoder vn_decode_VkRenderPassCreateInfo2_temp(dec, (VkRenderPassCreateInfo2 *)args->pCreateInfo); } else { args->pCreateInfo = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_decode_simple_pointer(dec)) { vn_cs_decoder_set_fatal(dec); @@ -1314,6 +1318,7 @@ static inline void vn_decode_vkCreateRenderPass2_args_temp(struct vn_cs_decoder vn_decode_VkRenderPass(dec, args->pRenderPass); } else { args->pRenderPass = NULL; + vn_cs_decoder_set_fatal(dec); } } diff --git a/src/venus/venus-protocol/vn_protocol_renderer_sampler.h b/src/venus/venus-protocol/vn_protocol_renderer_sampler.h index 6efa167..1849c74 100644 --- a/src/venus/venus-protocol/vn_protocol_renderer_sampler.h +++ b/src/venus/venus-protocol/vn_protocol_renderer_sampler.h @@ -201,6 +201,7 @@ static inline void vn_decode_vkCreateSampler_args_temp(struct vn_cs_decoder *dec vn_decode_VkSamplerCreateInfo_temp(dec, (VkSamplerCreateInfo *)args->pCreateInfo); } else { args->pCreateInfo = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_decode_simple_pointer(dec)) { vn_cs_decoder_set_fatal(dec); @@ -213,6 +214,7 @@ static inline void vn_decode_vkCreateSampler_args_temp(struct vn_cs_decoder *dec vn_decode_VkSampler(dec, args->pSampler); } else { args->pSampler = NULL; + vn_cs_decoder_set_fatal(dec); } } diff --git a/src/venus/venus-protocol/vn_protocol_renderer_sampler_ycbcr_conversion.h b/src/venus/venus-protocol/vn_protocol_renderer_sampler_ycbcr_conversion.h index 0cc9ef6..ff14dfd 100644 --- a/src/venus/venus-protocol/vn_protocol_renderer_sampler_ycbcr_conversion.h +++ b/src/venus/venus-protocol/vn_protocol_renderer_sampler_ycbcr_conversion.h @@ -94,6 +94,7 @@ static inline void vn_decode_vkCreateSamplerYcbcrConversion_args_temp(struct vn_ vn_decode_VkSamplerYcbcrConversionCreateInfo_temp(dec, (VkSamplerYcbcrConversionCreateInfo *)args->pCreateInfo); } else { args->pCreateInfo = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_decode_simple_pointer(dec)) { vn_cs_decoder_set_fatal(dec); @@ -106,6 +107,7 @@ static inline void vn_decode_vkCreateSamplerYcbcrConversion_args_temp(struct vn_ vn_decode_VkSamplerYcbcrConversion(dec, args->pYcbcrConversion); } else { args->pYcbcrConversion = NULL; + vn_cs_decoder_set_fatal(dec); } } diff --git a/src/venus/venus-protocol/vn_protocol_renderer_semaphore.h b/src/venus/venus-protocol/vn_protocol_renderer_semaphore.h index 07de8a6..90840be 100644 --- a/src/venus/venus-protocol/vn_protocol_renderer_semaphore.h +++ b/src/venus/venus-protocol/vn_protocol_renderer_semaphore.h @@ -337,6 +337,7 @@ static inline void vn_decode_vkCreateSemaphore_args_temp(struct vn_cs_decoder *d vn_decode_VkSemaphoreCreateInfo_temp(dec, (VkSemaphoreCreateInfo *)args->pCreateInfo); } else { args->pCreateInfo = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_decode_simple_pointer(dec)) { vn_cs_decoder_set_fatal(dec); @@ -349,6 +350,7 @@ static inline void vn_decode_vkCreateSemaphore_args_temp(struct vn_cs_decoder *d vn_decode_VkSemaphore(dec, args->pSemaphore); } else { args->pSemaphore = NULL; + vn_cs_decoder_set_fatal(dec); } } @@ -409,6 +411,7 @@ static inline void vn_decode_vkGetSemaphoreCounterValue_args_temp(struct vn_cs_d if (!args->pValue) return; } else { args->pValue = NULL; + vn_cs_decoder_set_fatal(dec); } } @@ -439,6 +442,7 @@ static inline void vn_decode_vkWaitSemaphores_args_temp(struct vn_cs_decoder *de vn_decode_VkSemaphoreWaitInfo_temp(dec, (VkSemaphoreWaitInfo *)args->pWaitInfo); } else { args->pWaitInfo = NULL; + vn_cs_decoder_set_fatal(dec); } vn_decode_uint64_t(dec, &args->timeout); } @@ -470,6 +474,7 @@ static inline void vn_decode_vkSignalSemaphore_args_temp(struct vn_cs_decoder *d vn_decode_VkSemaphoreSignalInfo_temp(dec, (VkSemaphoreSignalInfo *)args->pSignalInfo); } else { args->pSignalInfo = NULL; + vn_cs_decoder_set_fatal(dec); } } diff --git a/src/venus/venus-protocol/vn_protocol_renderer_shader_module.h b/src/venus/venus-protocol/vn_protocol_renderer_shader_module.h index 6e03987..74cd451 100644 --- a/src/venus/venus-protocol/vn_protocol_renderer_shader_module.h +++ b/src/venus/venus-protocol/vn_protocol_renderer_shader_module.h @@ -92,6 +92,7 @@ static inline void vn_decode_vkCreateShaderModule_args_temp(struct vn_cs_decoder vn_decode_VkShaderModuleCreateInfo_temp(dec, (VkShaderModuleCreateInfo *)args->pCreateInfo); } else { args->pCreateInfo = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_decode_simple_pointer(dec)) { vn_cs_decoder_set_fatal(dec); @@ -104,6 +105,7 @@ static inline void vn_decode_vkCreateShaderModule_args_temp(struct vn_cs_decoder vn_decode_VkShaderModule(dec, args->pShaderModule); } else { args->pShaderModule = NULL; + vn_cs_decoder_set_fatal(dec); } } diff --git a/src/venus/venus-protocol/vn_protocol_renderer_transport.h b/src/venus/venus-protocol/vn_protocol_renderer_transport.h index a53075c..7bb052e 100644 --- a/src/venus/venus-protocol/vn_protocol_renderer_transport.h +++ b/src/venus/venus-protocol/vn_protocol_renderer_transport.h @@ -286,6 +286,7 @@ static inline void vn_decode_vkSetReplyCommandStreamMESA_args_temp(struct vn_cs_ vn_decode_VkCommandStreamDescriptionMESA_temp(dec, (VkCommandStreamDescriptionMESA *)args->pStream); } else { args->pStream = NULL; + vn_cs_decoder_set_fatal(dec); } } @@ -392,6 +393,7 @@ static inline void vn_decode_vkCreateRingMESA_args_temp(struct vn_cs_decoder *de vn_decode_VkRingCreateInfoMESA_temp(dec, (VkRingCreateInfoMESA *)args->pCreateInfo); } else { args->pCreateInfo = NULL; + vn_cs_decoder_set_fatal(dec); } } @@ -483,6 +485,7 @@ static inline void vn_decode_vkGetMemoryResourcePropertiesMESA_args_temp(struct vn_decode_VkMemoryResourcePropertiesMESA_partial_temp(dec, args->pMemoryResourceProperties); } else { args->pMemoryResourceProperties = NULL; + vn_cs_decoder_set_fatal(dec); } } @@ -512,6 +515,7 @@ static inline void vn_decode_vkGetVenusExperimentalFeatureData100000MESA_args_te vn_decode_size_t(dec, args->pDataSize); } else { args->pDataSize = NULL; + vn_cs_decoder_set_fatal(dec); } if (vn_peek_array_size(dec)) { const size_t array_size = vn_decode_array_size(dec, (args->pDataSize ? *args->pDataSize : 0));