Skip to content

Implement depth bounds testing. #35

Open
@crud89

Description

@crud89

This is a follow up to issue #17.

We should add support for depth bounds. The static pipeline state controls whether to use depth bounds or not, whilst the bounds themselves are part of the dynamic state. Support for this feature is optional and must be checked. In Vulkan the VkPhysicalDeviceFeatures::depthBounds property is used for this, in DirectX 12 CheckFeatureSupport must be called. If the feature is not available, the static state must be disabled.

To implement this...

... in DX12:

  • Set the DepthClipEnable property of the D3D12_RASTERIZER_DESC.
  • Call OMSetDepthBounds on the pipeline.

In Vulkan:

  • Set depthBoundsTestEnable on the pipeline static state.
  • Use VK_DYNAMIC_STATE_DEPTH_BOUNDS/vkCmdSetDepthBounds to set dynamic state.

We could extent the DepthStencilState to cover this.

Metadata

Metadata

Assignees

No one assigned

    Labels

    DX12 ❎The issue involves the DX12 backend.Feature RequestNew feature or request.Priority: LowA low priority issue.Vulkan 🌋The issue involves the Vulkan backend.

    Projects

    Status

    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions