Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-126440

Bone texture not set for depth pre-pass (and possibly other passes)

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • P1: Critical
    • 6.8.0 Beta2, 6.9.0 FF
    • 6.8
    • Quick: 3D
    • None
    • 4feb8acc8 (dev), a100c3b0c (6.8)

    Description

      Have a mesh with joints and weights, and enable the depth pre-pass on the material. This breaks rendering with Vulkan, and gives possibly incorrect results with other APIs as well.

      vkDebug: Validation Error: [ VUID-vkCmdDrawIndexed-None-02699 ] Object 0: handle = 0x72303f0000000052, type = VK_OBJECT_TYPE_DESCRIPTOR_SET; | MessageID = 0xa44449d4 | VkDescriptorSet 0x72303f0000000052[] encountered the following validation error at vkCmdDrawIndexed time: Attempting to validate DrawState for binding #3  which is an invalid binding for this descriptor set. The Vulkan spec states: Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command
      

      This is because qt_boneTexture is in the shader, but is never bound from the CPU side. The logic for adding qt_boneTexture to the shader resource binding list seems to be missing in some places. One is surely the depth pre-pass, but it should be checked if shadows and others handle it correctly.

      Test application: https://git.qt.io/annichol/boneTextureBug
      (the oculus controller mesh contains joints and weights, while some other material in the scene has depthDrawMode: PrincipledMaterial.OpaquePrePassDepthDraw which is one way to trigger having a depth pre-pass)

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            janichol Andy Nichols
            lagocs Laszlo Agocs
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes