Vixen
02b45cc4
csharp
public static class VulkanDiagnostics

Everything the validation layers have said, so that a test can assert they said nothing.

No guide page documents this yet — the page shows what the code says about itself.

Remarks

Validation-clean-in-debug is a stated non-negotiable ([00](../../docs/plan/00-vision-and-principles.md)), and a warning printed to the console is not a gate — it is a thing that scrolls past. This exists so the test suite can fail on one.

Written to by the debug-messenger callback, which Vulkan invokes on whatever thread hit the problem, so it is a concurrent collection rather than a list with a lock: the callback runs inside a driver call and blocking there is a good way to turn a warning into a deadlock.

Process-wide static, deliberately. The callback Vulkan holds is a bare function pointer with no room for a this, and the alternative — a pinned per-instance context — buys nothing when the question being asked is "did anything at all complain during this test".

Fields and properties (4)

  • public const int Capacity

    How many messages to keep before dropping them.

  • public static int ErrorCount

    How many errors the layers have reported.

  • public static int WarningCount

    How many warnings the layers have reported.

  • public static IReadOnlyCollection<string> Messages

    What they said, up to Capacity messages.

Methods (1)

  • public static void Reset()

    Forgets everything, so that a test can attribute what follows to itself.

Used by (32)

  • AccelerationStructureDeviceTestsVixen.Graphics.Golden.Tests
  • BindlessSamplingDeviceTestsVixen.Graphics.Golden.Tests
  • BindlessTableDeviceTestsVixen.Graphics.Golden.Tests
  • BufferTransferDeviceTestsVixen.Graphics.Golden.Tests
  • ClusterCullingDeviceTestsVixen.Graphics.Golden.Tests
  • FixtureVixen.Graphics.Golden.Tests
  • IrradianceBounceDeviceTestsVixen.Graphics.Golden.Tests
  • IrradianceCaptureDeviceTestsVixen.Graphics.Golden.Tests
  • IrradianceFillDeviceTestsVixen.Graphics.Golden.Tests
  • IrradianceRepairDeviceTestsVixen.Graphics.Golden.Tests
  • ReflectionRendererDeviceTestsVixen.Graphics.Golden.Tests
  • ReflectionTraceDeviceTestsVixen.Graphics.Golden.Tests
  • ScreenProbeAccumulateDeviceTestsVixen.Graphics.Golden.Tests
  • ScreenProbeBilateralImageTestsVixen.Graphics.Golden.Tests
  • ScreenProbeResolveDeviceTestsVixen.Graphics.Golden.Tests
  • ScreenProbeTraceDeviceTestsVixen.Graphics.Golden.Tests
  • ScreenProbeUpsampleImageTestsVixen.Graphics.Golden.Tests
  • ScreenPyramidDeviceTestsVixen.Graphics.Golden.Tests
  • ShaderRunVixen.Raven.Gpu.Tests
  • SurfaceCacheRadiosityDeviceTestsVixen.Graphics.Golden.Tests
  • SurfaceCacheRendererDeviceTestsVixen.Graphics.Golden.Tests
  • SurfaceCardCaptureDeviceTestsVixen.Graphics.Golden.Tests
  • UiFrameLifetimeTestsVixen.Graphics.Golden.Tests
  • ValidationCleanTestsVixen.Graphics.Vulkan.Tests
  • VfxAgreementTestsVixen.Vfx.Gpu.Tests
  • VfxReapTestsVixen.Vfx.Gpu.Tests
  • VfxSortTestsVixen.Vfx.Gpu.Tests
  • ViewCullingDeviceTestsVixen.Graphics.Golden.Tests
  • VulkanComputeTestsVixen.Graphics.Vulkan.Tests
  • VulkanDrawTestsVixen.Graphics.Vulkan.Tests
  • VulkanInstanceVixen.Graphics.Vulkan
  • VulkanPipelineTestsVixen.Graphics.Vulkan.Tests