Skip to content

Commit 21f7b49

Browse files
committed
optional invalidation
1 parent c3cba4e commit 21f7b49

9 files changed

+44
-0
lines changed

include/nbl/asset/filters/CBlitImageFilter.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -448,6 +448,11 @@ class CBlitImageFilter :
448448
CBasicImageFilterCommon::executePerRegion(policy,outImg,scaleCoverage,outRegions, clip);
449449
};
450450

451+
{ // invalidate hash
452+
outImg->setContentHash({});
453+
outImg->getBuffer()->setContentHash({});
454+
}
455+
451456
// process
452457
state->normalization.template initialize<double>();
453458
const core::vectorSIMDf fInExtent(inExtentLayerCount);

include/nbl/asset/filters/CCopyImageFilter.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,11 @@ class CCopyImageFilter : public CImageFilter<CCopyImageFilter>, public CMatchedS
7373
return true;
7474
};
7575

76+
{ // invalidate image and buffer hash
77+
state->outImage->setContentHash({});
78+
state->outImage->getBuffer()->setContentHash({});
79+
}
80+
7681
return commonExecute(state,perOutputRegion);
7782
}
7883
static inline bool execute(state_type* state)

include/nbl/asset/filters/CFillImageFilter.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,11 @@ class CFillImageFilter : public CImageFilter<CFillImageFilter>
5454
auto regions = img->getRegions(state->subresource.mipLevel);
5555
CBasicImageFilterCommon::executePerRegion(std::forward<ExecutionPolicy>(policy),img,fill,regions,clip);
5656

57+
{ // invalidate image and buffer hash
58+
state->outImage->setContentHash({});
59+
state->outImage->getBuffer()->setContentHash({});
60+
}
61+
5762
return true;
5863
}
5964
static inline bool execute(state_type* state)

include/nbl/asset/filters/CMipMapGenerationImageFilter.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,12 @@ class CMipMapGenerationImageFilter : public CImageFilter<CMipMapGenerationImageF
9595
if (!pseudo_base_t::template execute<ExecutionPolicy>(std::forward<ExecutionPolicy>(policy),&blit))
9696
return false;
9797
}
98+
99+
{ // invalidate image and buffer hash
100+
state->inOutImage->setContentHash({});
101+
state->inOutImage->getBuffer()->setContentHash({});
102+
}
103+
98104
return true;
99105
}
100106
static inline bool execute(state_type* state)

include/nbl/asset/filters/CPaddedCopyImageFilter.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,11 @@ class CPaddedCopyImageFilter : public CImageFilter<CPaddedCopyImageFilter>, publ
211211
}
212212
}
213213

214+
{ // invalidate image and buffer hash
215+
state->outImage->setContentHash({});
216+
state->outImage->getBuffer()->setContentHash({});
217+
}
218+
214219
return true;
215220
}
216221
static inline bool execute(state_type* state)

include/nbl/asset/filters/CRegionBlockFunctorFilter.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,12 @@ class CRegionBlockFunctorFilter : public CImageFilter<CRegionBlockFunctorFilter<
5959

6060
CBasicImageFilterCommon::executePerBlock<ExecutionPolicy,Functor>(std::forward<ExecutionPolicy>(policy),state->image,*state->regionIterator,state->functor);
6161

62+
if constexpr(!ConstImage)
63+
{ // invalidate image and buffer hash
64+
state->image->setContentHash({});
65+
state->image->getBuffer()->setContentHash({});
66+
}
67+
6268
return true;
6369
}
6470
static inline bool execute(state_type* state)

include/nbl/asset/filters/CSummedAreaTableImageFilter.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -407,6 +407,11 @@ class CSummedAreaTableImageFilter : public CMatchedSizeInOutImageFilterCommon, p
407407
++state->outBaseLayer;
408408
}
409409

410+
{ // invalidate image and buffer hash
411+
state->outImage->setContentHash({});
412+
state->outImage->getBuffer()->setContentHash({});
413+
}
414+
410415
resetState();
411416
return true;
412417
}

include/nbl/asset/filters/CSwizzleAndConvertImageFilter.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,6 +373,12 @@ class CSwizzleAndConvertImageFilter<inFormat,EF_UNKNOWN,Swizzle,Dither,Normaliza
373373
CBasicImageFilterCommon::executePerRegion(policy, commonExecuteData.inImg, swizzle, commonExecuteData.inRegions, clip);
374374
return true;
375375
};
376+
377+
{ // invalidate image and buffer hash
378+
state->outImage->setContentHash({});
379+
state->outImage->getBuffer()->setContentHash({});
380+
}
381+
376382
return CMatchedSizeInOutImageFilterCommon::commonExecute(state, perOutputRegion);
377383
}
378384
static inline bool execute(state_type* state)

include/nbl/asset/filters/dithering/CPrecomputedDither.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ namespace nbl
5959

6060
const core::vector3du32_SIMD decodeBufferByteStrides = TexelBlockInfo(decodeFormat).convert3DTexelStridesTo1DByteStrides(core::vector3du32_SIMD(extent.x, extent.y, extent.z));
6161
auto decodeFlattenBuffer = core::make_smart_refctd_ptr<ICPUBuffer>(newDecodeBufferSize);
62+
decodeFlattenBuffer->setContentHash({});
6263

6364
auto* inData = reinterpret_cast<uint8_t*>(flattenDitheringImage->getBuffer()->getPointer());
6465
auto* outData = reinterpret_cast<uint8_t*>(decodeFlattenBuffer->getPointer());

0 commit comments

Comments
 (0)