diff --git a/src/gfxstream/guest/vulkan_enc/ResourceTracker.cpp b/src/gfxstream/guest/vulkan_enc/ResourceTracker.cpp index fef9880c431..25a2fe99574 100644 --- a/src/gfxstream/guest/vulkan_enc/ResourceTracker.cpp +++ b/src/gfxstream/guest/vulkan_enc/ResourceTracker.cpp @@ -4669,8 +4669,8 @@ VkResult ResourceTracker::on_vkCreateSampler(void* context, VkResult, VkDevice d VkSampler* pSampler) { VkSamplerCreateInfo localCreateInfo = vk_make_orphan_copy(*pCreateInfo); -#if defined(VK_USE_PLATFORM_ANDROID_KHR) || defined(VK_USE_PLATFORM_FUCHSIA) vk_struct_chain_iterator structChainIter = vk_make_chain_iterator(&localCreateInfo); +#if defined(VK_USE_PLATFORM_ANDROID_KHR) || defined(VK_USE_PLATFORM_FUCHSIA) VkSamplerYcbcrConversionInfo localVkSamplerYcbcrConversionInfo; const VkSamplerYcbcrConversionInfo* samplerYcbcrConversionInfo = vk_find_struct_const(pCreateInfo, SAMPLER_YCBCR_CONVERSION_INFO); @@ -4691,6 +4691,15 @@ VkResult ResourceTracker::on_vkCreateSampler(void* context, VkResult, VkDevice d } #endif + VkSamplerReductionModeCreateInfo localVkSamplerReductionModeCreateInfo; + const VkSamplerReductionModeCreateInfo* samplerReductionModeCreateInfo = + vk_find_struct_const(pCreateInfo, SAMPLER_REDUCTION_MODE_CREATE_INFO); + if (samplerReductionModeCreateInfo) { + localVkSamplerReductionModeCreateInfo = + vk_make_orphan_copy(*samplerReductionModeCreateInfo); + vk_append_struct(&structChainIter, &localVkSamplerReductionModeCreateInfo); + } + VkEncoder* enc = (VkEncoder*)context; return enc->vkCreateSampler(device, &localCreateInfo, pAllocator, pSampler, true /* do lock */); }