Skip to content

[SPIRV][DirectX] Add multiple viewports support via view instancing #1051

@inbelic

Description

@inbelic

Required for testing of SV_ViewportArrayIndex and SV_ViewID in vertex shaders. View instancing allows a single draw call to broadcast geometry across multiple views, each with its own viewport, without requiring a geometry shader.

Current Status: Both backends hardcode a single viewport. DirectX uses the legacy PSO which has no view instancing support. Vulkan queries multiview capability but does not use it.

The first step will be to refine the following acceptance criteria for refinement/estimation.

AC:

  • Allow YAML test configuration to define multiple viewports for view instancing
  • DX: Query view instancing capability tier (D3D12_VIEW_INSTANCING_TIER_1)
  • DX: Migrate PSO creation to support view instancing configuration
  • DX: Configure multiple viewports and scissor rects at draw time
  • VK: Enable multiview and multi-viewport device features
  • VK: Configure render pass for multiview rendering
  • VK: Configure multiple viewports and scissor rects at draw time
  • Add lit feature for view instancing capability detection
  • Add independent testing of functionality

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No fields configured for Task.

    Projects

    Status

    Planning

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions