Skip to content

Implement depth bounds testing. #35

@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

Labels

DX12 ❎The issue involves the DX12 backend.FeatureNew feature or request.Nice to have ☕An implementation or fix would nice to have, but is not required.Priority: LowA low priority issue.Vulkan 🌋The issue involves the Vulkan backend.

Projects

Status

v0.5.1

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions