Vixen
02b45cc4
csharp
public interface IGraphicsDevice

A logical device: what creates resources, records work and submits it.

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

Remarks

Creation returns handles into tables this device owns, and Destroy returns them. There is no IDisposable per resource and no finaliser anywhere: a GPU object's lifetime is decided by the renderer, not by a collector that runs whenever it likes and has no idea whether the GPU is still reading.

Destroying a resource is deferred internally until the frames that might still reference it have retired. That is the backend's job and not the caller's — a renderer that had to track it would track it wrongly.

Fields and properties (6)

  • IGraphicsAdapter Adapter

    The adapter this device runs on.

  • GraphicsDeviceFeatures Features

    What it can do.

  • ICommandSubmitter GraphicsQueue

    The queue that can do everything.

  • ICommandSubmitter ComputeQueue

    The compute queue, which is GraphicsQueue where the hardware has only one.

  • ICommandSubmitter TransferQueue

    The transfer queue, which is GraphicsQueue where the hardware has only one.

  • int FramesInFlight

    How many frames may be recorded before the first has to have finished.

Methods (34)

Used by (119, showing 40)

  • ArenaFrameThirdPersonShooter
  • ArenaIlluminationThirdPersonShooter
  • DevelopmentEffectsThirdPersonShooter
  • AppBuilderVixen.App.Hosting
  • AppGraphicsVixen.App.Hosting
  • AssetTextureSourceVixen.Engine.Renderer
  • AutoExposureRendererVixen.Rendering.PostFx
  • BinVixen.Rendering
  • BindlessTableVixen.Graphics
  • BloomRendererVixen.Rendering.PostFx
  • BufferReadbackRendererVixen.Rendering
  • CompositorBuilderVixen.Rendering
  • CompositorFrameVixen.Rendering
  • ComputePipelineCacheVixen.Rendering
  • DebugDrawRendererVixen.Engine.Renderer
  • DescriptorAllocatorVixen.Graphics
  • EffectConstantsVixen.Rendering
  • EffectLoaderVixen.Shaders
  • EffectPipelineDescriberVixen.Rendering
  • EnvironmentTextureVixen.Rendering
  • FoliageCullPassVixen.Rendering.Terrain
  • ForwardLightingRenderFeatureVixen.Rendering
  • FullScreenRendererVixen.Rendering
  • GeometryBufferVixen.Rendering
  • GlDeviceVixen.Graphics.OpenGL
  • GlobalDistanceFieldRendererVixen.Rendering
  • GlobalDistanceFieldTextureVixen.Rendering
  • GpuClusterRasterVixen.Rendering
  • GpuClusterResolveVixen.Rendering
  • GpuClusterSoftwareRasterVixen.Rendering
  • GpuClusterVisibilityVixen.Rendering
  • GpuCullingVixen.Rendering
  • GpuDrawArgumentsVixen.Rendering
  • GpuVisibilityGroupVixen.Rendering
  • GpuVisibilityTilesVixen.Rendering
  • GraphicsCompositorVixen.Rendering
  • GrassDispatchVixen.Rendering.Terrain
  • GrassDrawPassVixen.Rendering.Terrain
  • HiZPyramidVixen.Rendering
  • IGraphicsBackendVixen.App.Hosting