public sealed class SamplerCacheSamplers, created once per distinct description.
No guide page documents this yet — the page shows what the code says about itself.
Remarks
The smallest cache in the renderer and the one with the widest reach. A sampler is pure state — twelve fields, no memory, no contents — so two that describe the same filtering are the same sampler, and every post pass in a frame wants LinearClamp. Vulkan puts a hard limit on how many a device will create (4000 on some drivers, and 96 combined image samplers per stage on old Mali), which turns "make one where you need one" from wasteful into a device-lost.
Keyed by the description itself, which works because it is a record struct: structural equality over exactly the fields the driver compiles into the sampler, including Name. Two identical samplers under different names are two entries, deliberately — the name is what a capture shows, and merging them would make a RenderDoc frame name the wrong one.
Fields and properties (3)
public int CountHow many distinct samplers have been created.
public SamplerHandle LinearClampTrilinear and clamped, which is what a full-screen pass reading a render target wants.
public SamplerHandle PointClampUnfiltered and clamped, for a lookup where interpolation would be nonsense.
Methods (3)
public SamplerCache(IGraphicsDevice device)Samplers, created once per distinct description.
public SamplerHandle GetOrCreate(in SamplerDescription description)The sampler for a description, creating it the first time.
public void Dispose()Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
Used by (47, showing 40)
- AmbientCombineRendererVixen.Rendering.PostFx
- AmbientOcclusionRendererVixen.Rendering.PostFx
- AutoExposureRendererVixen.Rendering.PostFx
- AutoExposureTestsVixen.Rendering.PostFx.Tests
- BloomRendererVixen.Rendering.PostFx
- BloomTestsVixen.Rendering.PostFx.Tests
- ClusteredShadingDeviceTestsVixen.Graphics.Golden.Tests
- CompositorAssetTestsVixen.Rendering.Tests
- CompositorBuilderVixen.Rendering
- CompositorImageTestsVixen.Graphics.Golden.Tests
- ComputeRendererVixen.Rendering
- DepthOfFieldRendererVixen.Rendering.PostFx
- DescriptorBindingTestsVixen.Rendering.Tests
- DescriptorBindingsVixen.Rendering
- DistanceFieldAoImageTestsVixen.Graphics.Golden.Tests
- DistanceFieldAoRendererVixen.Rendering.PostFx
- FogRendererVixen.Rendering.PostFx
- ForwardFrameTestsVixen.Rendering.Tests
- FullScreenRendererVixen.Rendering
- FxaaRendererVixen.Rendering.PostFx
- IndirectDiffuseImageTestsVixen.Graphics.Golden.Tests
- IndirectDiffuseRendererVixen.Rendering.PostFx
- IrradianceBounceDeviceTestsVixen.Graphics.Golden.Tests
- IrradianceShadingDeviceTestsVixen.Graphics.Golden.Tests
- LensFlareRendererVixen.Rendering.PostFx
- LocalExposureRendererVixen.Rendering.PostFx
- MotionBlurRendererVixen.Rendering.PostFx
- OutlineRendererVixen.Rendering.PostFx
- PostEffectRendererVixen.Rendering.PostFx
- PostEffectTestsVixen.Rendering.PostFx.Tests
- PostProcessTestsVixen.Rendering.Tests
- PunctualShadowRendererVixen.Rendering
- RenderPassRendererVixen.Rendering
- ScreenProbeBilateralImageTestsVixen.Graphics.Golden.Tests
- ScreenProbeGatherImageTestsVixen.Graphics.Golden.Tests
- ScreenProbeGatherRendererVixen.Rendering.PostFx
- ScreenProbeUpsampleImageTestsVixen.Graphics.Golden.Tests
- ScreenProbeUpsampleRendererVixen.Rendering.PostFx
- ShadowMapRendererVixen.Rendering
- SharpenRendererVixen.Rendering.PostFx