Low D3D12 performance on machines with discrete GPU

XMLWordPrintable

    • generic
    • windows

      The D3D12 backend performance is lower than D3D9 (sometimes even much lower) on a discrete GPU system (RTX 4080S, Ryzen 7950X). To summarize:
      - 3D examples - ~60% of D3D9 performance (only exception is 3DMesh which happens to confuse the D3D9 driver and make it much slower)
      - 2D examples - 20-40% of D3D9 performance
      - Text rendering - 5% of D3D9 performance

      Cause is not yet known, but it can relate to some things specific to discrete GPUs, notably:
      - 2D Ring Buffer being CPU-visible, which can slow down rendering of 2D primitives - Vertex Data resides on RAM instead of VRAM which can slow down processing on GPU side
      - Use of only one Command Queue - discrete GPU systems tend to expose multiple hardware processing queues for certain operations, which can parallelize and speed up execution

      Thanks to support from the mailing list we saw similar problems on AMD discrete GPUs, so the issues seem to be more discrete GPU focused than tied to a specific vendor.

      Investigate and fix causes of low performance.

            Assignee:
            Lukasz Kostyra
            Reporter:
            Lukasz Kostyra
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: