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

Using MSAA, IBL and principled material causes graphical artifacts on vulkan

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • P1: Critical
    • 6.8.0 FF
    • 6.7.0 Beta3
    • Quick: 3D
    • None
    • Linux/Wayland, Windows
    • b4c7bd4cb (dev)

    Description

      Run the attached example and you will see some graphical artifacts or worst case hanging or a crash. Disabling either IBL, MSAA or the principled material will make the application run correctly. When running with vulkan validation layers activated the following error is printed:

      {{
      vkDebug: Validation Error: [ VUID-vkCmdDrawIndexed-renderPass-02684 ] Object 0: handle = 0xd6c9a000000000b9, type = VK_OBJECT_TYPE_RENDER_PASS; Object 1: handle = 0x3fbcd60000000028, type = VK_OBJECT_TYPE_RENDER_PASS; | MessageID = 0x8cb637c2 | vkCmdDrawIndexed(): RenderPasses incompatible between active render pass w/ VkRenderPass 0xd6c9a000000000b9[] and pipeline state object w/ VkRenderPass 0x3fbcd60000000028[] Attachment 0 is not compatible with 0: They have different samples.. The Vulkan spec states: The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-vkCmdDrawIndexed-renderPass-02684)
      vkDebug: Validation Error: [ VUID-vkCmdDrawIndexed-renderPass-02684 ] Object 0: handle = 0xd6c9a000000000b9, type = VK_OBJECT_TYPE_RENDER_PASS; Object 1: handle = 0x3fbcd60000000028, type = VK_OBJECT_TYPE_RENDER_PASS; | MessageID = 0x8cb637c2 | vkCmdDrawIndexed(): RenderPasses incompatible between active render pass w/ VkRenderPass 0xd6c9a000000000b9[] and pipeline state object w/ VkRenderPass 0x3fbcd60000000028[] Attachment 1 is not compatible with 1: They have different samples.. The Vulkan spec states: The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-vkCmdDrawIndexed-renderPass-02684)
      vkDebug: Validation Error: [ VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07284 ] Object 0: handle = 0x7fffcde7b8d0, type = VK_OBJECT_TYPE_COMMAND_BUFFER; Object 1: handle = 0x2d15fe00000000bf, type = VK_OBJECT_TYPE_PIPELINE; Object 2: handle = 0xd6c9a000000000b9, type = VK_OBJECT_TYPE_RENDER_PASS; | MessageID = 0x576454a4 | vkCmdDrawIndexed(): In VkPipeline 0x2d15fe00000000bf[] the sample count is VK_SAMPLE_COUNT_4_BIT while the current VkRenderPass 0xd6c9a000000000b9[] has VK_SAMPLE_COUNT_1_BIT and they need to be the same. The Vulkan spec states: If rasterization is not disabled in the bound graphics pipeline, and none of the following is enabled: the VK_AMD_mixed_attachment_samples extension the VK_NV_framebuffer_mixed_samples extension the multisampledRenderToSingleSampled feature then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07284)
      vkDebug: Validation Error: [ VUID-vkCmdDrawIndexed-renderPass-02684 ] Object 0: handle = 0xd6c9a000000000b9, type = VK_OBJECT_TYPE_RENDER_PASS; Object 1: handle = 0x3fbcd60000000028, type = VK_OBJECT_TYPE_RENDER_PASS; | MessageID = 0x8cb637c2 | vkCmdDrawIndexed(): RenderPasses incompatible between active render pass w/ VkRenderPass 0xd6c9a000000000b9[] and pipeline state object w/ VkRenderPass 0x3fbcd60000000028[] Attachment 0 is not compatible with 0: They have different samples.. The Vulkan spec states: The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-vkCmdDrawIndexed-renderPass-02684)
      vkDebug: Validation Error: [ VUID-vkCmdDrawIndexed-renderPass-02684 ] Object 0: handle = 0xd6c9a000000000b9, type = VK_OBJECT_TYPE_RENDER_PASS; Object 1: handle = 0x3fbcd60000000028, type = VK_OBJECT_TYPE_RENDER_PASS; | MessageID = 0x8cb637c2 | vkCmdDrawIndexed(): RenderPasses incompatible between active render pass w/ VkRenderPass 0xd6c9a000000000b9[] and pipeline state object w/ VkRenderPass 0x3fbcd60000000028[] Attachment 1 is not compatible with 1: They have different samples.. The Vulkan spec states: The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-vkCmdDrawIndexed-renderPass-02684)
      vkDebug: Validation Error: [ VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07284 ] Object 0: handle = 0x7fffce509ac0, type = VK_OBJECT_TYPE_COMMAND_BUFFER; Object 1: handle = 0x2d15fe00000000bf, type = VK_OBJECT_TYPE_PIPELINE; Object 2: handle = 0xd6c9a000000000b9, type = VK_OBJECT_TYPE_RENDER_PASS; | MessageID = 0x576454a4 | vkCmdDrawIndexed(): In VkPipeline 0x2d15fe00000000bf[] the sample count is VK_SAMPLE_COUNT_4_BIT while the current VkRenderPass 0xd6c9a000000000b9[] has VK_SAMPLE_COUNT_1_BIT and they need to be the same. The Vulkan spec states: If rasterization is not disabled in the bound graphics pipeline, and none of the following is enabled: the VK_AMD_mixed_attachment_samples extension the VK_NV_framebuffer_mixed_samples extension the multisampledRenderToSingleSampled feature then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07284)
      vkDebug: Validation Error: [ VUID-vkCmdDrawIndexed-renderPass-02684 ] Object 0: handle = 0x18543900000000ff, type = VK_OBJECT_TYPE_RENDER_PASS; Object 1: handle = 0x3fbcd60000000028, type = VK_OBJECT_TYPE_RENDER_PASS; | MessageID = 0x8cb637c2 | vkCmdDrawIndexed(): RenderPasses incompatible between active render pass w/ VkRenderPass 0x18543900000000ff[] and pipeline state object w/ VkRenderPass 0x3fbcd60000000028[] Attachment 0 is not compatible with 0: They have different samples.. The Vulkan spec states: The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-vkCmdDrawIndexed-renderPass-02684)
      vkDebug: Validation Error: [ VUID-vkCmdDrawIndexed-renderPass-02684 ] Object 0: handle = 0x18543900000000ff, type = VK_OBJECT_TYPE_RENDER_PASS; Object 1: handle = 0x3fbcd60000000028, type = VK_OBJECT_TYPE_RENDER_PASS; | MessageID = 0x8cb637c2 | vkCmdDrawIndexed(): RenderPasses incompatible between active render pass w/ VkRenderPass 0x18543900000000ff[] and pipeline state object w/ VkRenderPass 0x3fbcd60000000028[] Attachment 1 is not compatible with 1: They have different samples.. The Vulkan spec states: The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-vkCmdDrawIndexed-renderPass-02684)
      vkDebug: Validation Error: [ VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07284 ] Object 0: handle = 0x7fffcde7b8d0, type = VK_OBJECT_TYPE_COMMAND_BUFFER; Object 1: handle = 0x1cae930000000105, type = VK_OBJECT_TYPE_PIPELINE; Object 2: handle = 0x18543900000000ff, type = VK_OBJECT_TYPE_RENDER_PASS; | MessageID = 0x576454a4 | vkCmdDrawIndexed(): In VkPipeline 0x1cae930000000105[] the sample count is VK_SAMPLE_COUNT_4_BIT while the current VkRenderPass 0x18543900000000ff[] has VK_SAMPLE_COUNT_1_BIT and they need to be the same. The Vulkan spec states: If rasterization is not disabled in the bound graphics pipeline, and none of the following is enabled: the VK_AMD_mixed_attachment_samples extension the VK_NV_framebuffer_mixed_samples extension the multisampledRenderToSingleSampled feature then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07284)
      vkDebug: Validation Error: [ VUID-vkCmdDrawIndexed-renderPass-02684 ] Object 0: handle = 0xc8d350000000149, type = VK_OBJECT_TYPE_RENDER_PASS; Object 1: handle = 0x3fbcd60000000028, type = VK_OBJECT_TYPE_RENDER_PASS; | MessageID = 0x8cb637c2 | vkCmdDrawIndexed(): RenderPasses incompatible between active render pass w/ VkRenderPass 0xc8d350000000149[] and pipeline state object w/ VkRenderPass 0x3fbcd60000000028[] Attachment 0 is not compatible with 0: They have different samples.. The Vulkan spec states: The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-vkCmdDrawIndexed-renderPass-02684)
      vkDebug: Validation Error: [ VUID-vkCmdDrawIndexed-renderPass-02684 ] Object 0: handle = 0xc8d350000000149, type = VK_OBJECT_TYPE_RENDER_PASS; Object 1: handle = 0x3fbcd60000000028, type = VK_OBJECT_TYPE_RENDER_PASS; | MessageID = 0x8cb637c2 | vkCmdDrawIndexed(): RenderPasses incompatible between active render pass w/ VkRenderPass 0xc8d350000000149[] and pipeline state object w/ VkRenderPass 0x3fbcd60000000028[] Attachment 1 is not compatible with 1: They have different samples.. The Vulkan spec states: The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-vkCmdDrawIndexed-renderPass-02684)
      vkDebug: Validation Error: [ VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07284 ] Object 0: handle = 0x7fffcde7b8d0, type = VK_OBJECT_TYPE_COMMAND_BUFFER; Object 1: handle = 0x1cd84000000014f, type = VK_OBJECT_TYPE_PIPELINE; Object 2: handle = 0xc8d350000000149, type = VK_OBJECT_TYPE_RENDER_PASS; | MessageID = 0x576454a4 | vkCmdDrawIndexed(): In VkPipeline 0x1cd84000000014f[] the sample count is VK_SAMPLE_COUNT_4_BIT while the current VkRenderPass 0xc8d350000000149[] has VK_SAMPLE_COUNT_1_BIT and they need to be the same. The Vulkan spec states: If rasterization is not disabled in the bound graphics pipeline, and none of the following is enabled: the VK_AMD_mixed_attachment_samples extension the VK_NV_framebuffer_mixed_samples extension the multisampledRenderToSingleSampled feature then rasterizationSamples for the currently bound graphics pipeline must be the same as the current subpass color and/or depth/stencil attachments (https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07284)
      }}

      Attachments

        1. Main.qml
          1 kB
        2. screenshot-1.png
          screenshot-1.png
          17 kB
        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            lagocs Laszlo Agocs
            jokarlss Jonas Karlsson
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There is 1 open Gerrit change