@@ -37,16 +37,6 @@ void erasep(std::vector<T>& v, std::function<bool(T const&)> f) {
3737 v.erase (newEnd, v.end ());
3838}
3939
40- using ImageData = VulkanExternalImageManager::VulkanExternalImageManager::ImageData;
41- ImageData& findImage (std::vector<ImageData>& images,
42- fvkmemory::resource_ptr<VulkanTexture> texture) {
43- auto itr = std::find_if (images.begin (), images.end (), [&](ImageData const & data) {
44- return data.image == texture;
45- });
46- assert_invariant (itr != images.end ());
47- return *itr;
48- }
49-
5040}// namespace
5141
5242VulkanExternalImageManager::VulkanExternalImageManager (VulkanSamplerCache* samplerCache,
@@ -61,7 +51,6 @@ VulkanExternalImageManager::~VulkanExternalImageManager() = default;
6151
6252void VulkanExternalImageManager::terminate () {
6353 mSetBindings .clear ();
64- mImages .clear ();
6554}
6655
6756void VulkanExternalImageManager::updateSetAndLayout (
@@ -96,9 +85,7 @@ void VulkanExternalImageManager::updateSetAndLayout(
9685 actualExternalSamplers, outSamplers);
9786 // Update the external samplers in the set
9887 for (auto & [binding, sampler, image]: samplerAndBindings) {
99- // We cannot call updateSamplerForExternalSamplerSet because some samplers are non NULL
100- // (RGB) and we cannot do a combined update with a NULL sampler.
101- mDescriptorSetCache ->updateSampler (set, binding, image, sampler, set->boundLayout );
88+ mDescriptorSetCache ->updateSampler (set, binding, image, sampler);
10289 }
10390}
10491
@@ -137,8 +124,6 @@ void VulkanExternalImageManager::removeDescriptorSet(
137124void VulkanExternalImageManager::bindExternallySampledTexture (
138125 fvkmemory::resource_ptr<VulkanDescriptorSet> set, uint8_t bindingPoint,
139126 fvkmemory::resource_ptr<VulkanTexture> image, SamplerParams samplerParams) {
140- // Should we do duplicate validation here?
141- auto & imageData = findImage (mImages , image);
142127 // according to spec, these must match chromaFilter
143128 // https://registry.khronos.org/vulkan/specs/latest/man/html/VkSamplerCreateInfo.html#VUID-VkSamplerCreateInfo-minFilter-01645
144129 samplerParams.filterMag = SamplerMagFilter::NEAREST;
@@ -153,34 +138,10 @@ void VulkanExternalImageManager::bindExternallySampledTexture(
153138
154139 VkSampler const sampler = mSamplerCache ->getSampler ({
155140 .sampler = samplerParams,
156- .conversion = imageData.conversion ,
157- });
158-
159- mSetBindings .push_back ({ bindingPoint, imageData.image , set, sampler });
160- }
161-
162- void VulkanExternalImageManager::addExternallySampledTexture (
163- fvkmemory::resource_ptr<VulkanTexture> image, VkSamplerYcbcrConversion const conversion) {
164- mImages .push_back ({
165- .image = image,
166- .conversion = conversion,
167- });
168- }
169-
170- void VulkanExternalImageManager::removeExternallySampledTexture (
171- fvkmemory::resource_ptr<VulkanTexture> image) {
172- erasep<SetBindingInfo>(mSetBindings ,
173- [&](auto const & bindingInfo) { return (bindingInfo.image == image); });
174- erasep<ImageData>(mImages , [&](auto const & imageData) {
175- return imageData.image == image;
141+ .conversion = image->getYcbcrConversion (),
176142 });
177- }
178143
179- bool VulkanExternalImageManager::isExternallySampledTexture (
180- fvkmemory::resource_ptr<VulkanTexture> image) const {
181- return std::find_if (mImages .begin (), mImages .end (), [&](auto const & imageData) {
182- return imageData.image == image;
183- }) != mImages .end ();
144+ mSetBindings .push_back ({ bindingPoint, image, set, sampler });
184145}
185146
186147void VulkanExternalImageManager::clearTextureBinding (
0 commit comments