Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8271050 Implement 3D rendering
  3. JDK-8321099

Improve 3D rendering performance

XMLWordPrintable

    • generic
    • os_x

      We have reached s suitable state in 3D functional completion that we can take a look at improving performance of 3D rendering using Metal.

      We will be using 3DLighting and RenderPerfTest to measure 3D rendering performance.

      Current performance numbers of Metal compared to OpenGL in these 2 tests are :

      1) 3DLighting numbers with default light and -Djavafx.animation.fullspeed=true:

      OpenGL Sphere 1000 Vertices:
      instant fps: 585.2698054075341
      average fps: 584.6180149207024

      Metal Sphere 1000 Vertices:
      instant fps: 220.267217414662
      average fps: 220.25653183903336

      OpenGL Mesh 5000 Vertices:
      instant fps: 5.005141499842315
      average fps: 5.292156203391599

      Metal Mesh 5000 Vertices:
      instant fps: 55.361513141101014
      average fps: 53.91321485213615

      OpenGL Boxes:
      instant fps: 818.8574573881052
      average fps: 819.2276466305976

      Metal Boxes:
      instant fps: 203.45546352968262
      average fps: 198.75532124311889

      2) RenderPerfTest numbers:

      OpenGL:
      3DBox (Objects Frames FPS), 15000, 187, 18.599
      3DCylinder (Objects Frames FPS), 15000, 192, 19.131
      3DSphere (Objects Frames FPS), 15000, 187, 18.672
      3DMesh (Objects Frames FPS), 12000, 186, 18.561

      Metal:
      3DBox (Objects Frames FPS), 15000, 5, 0.463
      3DCylinder (Objects Frames FPS), 15000, 4, 0.359
      3DSphere: Test workload could be too high. Try running the test with lesser number of objects.
      3DMesh (Objects Frames FPS), 12000, 5, 0.433

      Some optimization relates to memory consumption are already done to improve numbers of 3DLighting tests. We need to make more optimizations like re-using RenderEncoders/PipelineState or clubbing continuous calls with same state to achieve better performance numbers.

            jdv Jayathirth D V
            jdv Jayathirth D V
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: