cancel
Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

thom
Adept I

Bug in AMD Vulkan implementation

The latest version of Crimson ReLive software has a bug in Vulkan implementation (amdvlk32.dll) producing wrong depth buffering results.

When using a reverse-z technique (minDepth>maxDepth) depth isn't calculated properly.

More info about the technique:

- https://www.khronos.org/registry/vulkan/specs/1.0/man/html/VkViewport.html

- https://software.intel.com/en-us/articles/api-without-secrets-introduction-to-vulkan-part-3

Steps to reproduce:

- set viewport.minDepth=1.0f and viewport.maxDepth=0.0f with vkCmdSetViewport()

- render a triangle with depth=0.95f (for example)

- notice depth written to z-buffer is 0.0f instead of 0.05f

On NVIDIA hardware (GTX 960) this works correctly.

Tested (and reproducible) on:

AMD Graphics Card

- Radeon RX 560 (MSI Radeon RX 560 AERO ITX 4G OC)

Desktop or Laptop System

- Custom built desktop

Operating System

- Windows 7 x64 / Windows 10 x64

Driver version installed

- Catalyst Crimson ReLive 17.7.2 and 17.10.1

Display Devices

- ASUS MX239H EFP

Motherboard + Bios Revision

- ASUS Z170-K (BIOS 3301)

CPU/APU

- Intel i7 6700K

Power Supply Unit Make, Model & Wattage

- SilentiumPC Supremo FM2 Gold 750W

RAM

- 16GB DDR4

Depth format used

- VK_FORMAT_D32_SFLOAT_S8_UINT

Please let me know if you need more info.

0 Likes
10 Replies