• 03/25/2021
  • Public Content
Contents

Configuring Graphics Pipeline State

When configuring pipeline states, consider the following:
  • When creating Pipeline State Objects (PSOs), make sure to take advantage of all the available CPU threads on the system. In previous APIs, the driver would create these threads for you, but now you must create the threads yourself.
  • Compile similar PSOs on the same thread to improve deduplication done by the driver and runtime.
  • Define optimized shaders for PSOs instead of using combinations of generic shaders mixed with specialized shaders.
  • Avoid defining depth plus stencil format if stencil will not be used. Use depth-only formats such as D32.
  • The driver will attempt to reuse shader compilations from PSOs it has already created. However, certain differences between PSOs could lead to the same shader code being recompiled again. Factors and changes that could cause a given stage to be recompiled include but are not limited to:
    • Vertex Shader
      • pRootSignature
      • InputLayout
      • ViewInstancingDesc
      • Using SV_ViewID in a subsequent stage
      • The input signature for the subsequent stage
    • Hull Shader
      • pRootSignature
      • Using SV_ViewID in a subsequent stage
      • The input signature for the DS
    • Domain Shader
      • pRootSignature
      • ViewInstancingDesc
      • Using SV_ViewID in a subsequent stage
      • The input signature for the subsequent stage
    • Geometry Shader
      • pRootSignature
      • ViewInstancingDesc
      • Using SV_ViewID in a subsequent stage
      • The input signature for the PS
    • Pixel Shader
      • pRootSignature
      • BlendState
      • RasterizerState.ForcedSampleCount
      • RasterizerState.ConservativeRasterization
      • DepthStencilState.StencilEnable
      • NumRenderTargets
      • SampleDesc.Count

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.