Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement depth bounds testing. #35

Open
crud89 opened this issue Jun 23, 2021 · 0 comments
Open

Implement depth bounds testing. #35

crud89 opened this issue Jun 23, 2021 · 0 comments
Labels
Module: DX12 ❎ The issue involves the DX12 backend. Module: Vulkan 🌋 The issue involves the Vulkan backend. Priority: Low A low priority issue. Type: Feature Request New feature or request.

Comments

@crud89
Copy link
Owner

crud89 commented Jun 23, 2021

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.

@crud89 crud89 added Priority: Low A low priority issue. Type: Feature Request New feature or request. Module: Vulkan 🌋 The issue involves the Vulkan backend. Module: DX12 ❎ The issue involves the DX12 backend. labels Jun 23, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Module: DX12 ❎ The issue involves the DX12 backend. Module: Vulkan 🌋 The issue involves the Vulkan backend. Priority: Low A low priority issue. Type: Feature Request New feature or request.
Projects
Status: Backlog
Development

No branches or pull requests

1 participant