Jump to: Board index » General » Fusion

OpenGL performance

Learn about 3D compositing, animation, broadcast design and VFX workflows.
  • Author
  • Message
Offline

Hideki Inoue

  • Posts: 226
  • Joined: Sun Nov 23, 2014 8:26 am
  • Location: Tokyo, Japan

OpenGL performance

PostMon Aug 10, 2015 10:02 am

Hi,

I make simple 3D flow. I have two image planes that each node has a Displace3D. Each textures are single frame. Animation is only Camera.

Then I render it with OpenGL Renderer. Default setting of OGL Renderer is fast. (GPU usage is 10-15% constantly)

But When I use SS(HiQ mode) and Transparency Sorted, It takes considerable time. Of course I know that the Renderer3D needs more calculation.

How can I speed up it? I need to buy more expensive GPU card? My GPU is Quadro K4200.

I check CPU usage. Fusion use 5%. (I have dual six core Xeon)
I check GPU usage. Fusion use 0 -45%.(long idle state, sometimes 15%, sometimes 45%)

hmmm... I don't think so. What do you think?

Code: Select all
{
   Tools = ordered() {
      Ellipse1_1 = EllipseMask {
         Inputs = {
            SoftEdge = Input { Value = 0.2, },
            MaskWidth = Input { Value = 1920, },
            MaskHeight = Input { Value = 1080, },
            PixelAspect = Input { Value = { 1, 1, }, },
            ClippingMode = Input { Value = FuID { "None", }, },
         },
         ViewInfo = OperatorInfo { Pos = { 901, 215, }, },
      },
      Camera3D2 = Camera3D {
         Inputs = {
            AoV = Input { Value = 24.3265863475745, },
            ["Stereo.Mode"] = Input { Value = FuID { "OffAxis", }, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 3, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 3, },
         },
         ViewInfo = OperatorInfo { Pos = { 1079, 270, }, },
      },
      Background1_1 = Background {
         Inputs = {
            GlobalOut = Input { Value = 150, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2", }, },
            TopLeftRed = Input { Value = 1, },
            TopLeftGreen = Input { Value = 1, },
            TopLeftBlue = Input { Value = 1, },
            Gradient = Input {
               Value = Gradient {
                  Colors = {
                     [0] = { 0, 0, 0, 1, },
                     [1] = { 1, 1, 1, 1, },
                  },
               },
            },
            EffectMask = Input {
               SourceOp = "Ellipse1_1",
               Source = "Mask",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 901, 329, }, },
      },
      Displace3D1 = Displace3D {
         Inputs = {
            SceneInput = Input {
               SourceOp = "Merge3D2",
               Source = "Output",
            },
            Scale = Input { Value = 0.5, },
            CameraDisplacement = Input { Value = 1, },
            PointCamera = Input { Value = 1, },
            CameraSelector = Input { Value = FuID { "Camera3D2", }, },
            Input = Input {
               SourceOp = "Background1_1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1261, 450, }, },
      },
      ImagePlane3D1 = ImagePlane3D {
         Inputs = {
            ["Transform3DOp.Translate.Z"] = Input { Value = -1, },
            ["SurfacePlaneInputs.SubdivisionWidth"] = Input { Value = 200, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 1, },
            MaterialInput = Input {
               SourceOp = "Loader2",
               Source = "Output",
            },
            ["MtlStdInputs.MaterialID"] = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 1260, 229, }, },
      },
      Merge3D2 = Merge3D {
         Inputs = {
            SceneInput1 = Input {
               SourceOp = "ImagePlane3D1",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "Camera3D2",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1260, 383, }, },
      },
      Loader2 = Loader {
         Clips = {
         },
         Inputs = {
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2", }, },
         },
         ViewInfo = OperatorInfo { Pos = { 1258, 104, }, },
      },
      Camera3D1 = Camera3D {
         Inputs = {
            ["Transform3DOp.Translate.Z"] = Input {
               SourceOp = "Camera3D1ZOffset",
               Source = "Value",
            },
            AoV = Input { Value = 24.3265863475745, },
            ["Stereo.Mode"] = Input { Value = FuID { "OffAxis", }, },
            ["SurfacePlaneInputs.ObjectID.ObjectID"] = Input { Value = 2, },
            ["MtlStdInputs.MaterialID"] = Input { Value = 2, },
         },
         ViewInfo = OperatorInfo { Pos = { 1062, 479, }, },
      },
      Camera3D1ZOffset = BezierSpline {
         SplineColor = { Red = 254, Green = 56, Blue = 46, },
         NameSet = true,
         KeyFrames = {
            [0] = { 0, RH = { 50, -0.106976533809333, }, Flags = { Linear = true, }, },
            [150] = { -0.320929601428, LH = { 100, -0.213953067618667, }, Flags = { Linear = true, }, },
         },
      },
      Merge3D1 = Merge3D {
         Inputs = {
            SceneInput1 = Input {
               SourceOp = "Displace3D1",
               Source = "Output",
            },
            SceneInput2 = Input {
               SourceOp = "Camera3D1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 1263, 503, }, },
      },
      Renderer3D1 = Renderer3D {
         CtrlWZoom = false,
         Inputs = {
            GlobalOut = Input { Value = 150, },
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2", }, },
            SceneInput = Input {
               SourceOp = "Merge3D1",
               Source = "Output",
            },
            CameraSelector = Input { Value = FuID { "Camera3D1", }, },
            RendererType = Input { Value = FuID { "RendererOpenGL", }, },
            ["RendererOpenGL.Channels.Nest"] = Input { Value = 1, },
            ["RendererOpenGL.Channels.RGBASS"] = Input { Value = 1, },
            ["RendererOpenGL.TransparencySorting"] = Input { Value = 1, },
         },
         ViewInfo = OperatorInfo { Pos = { 1263, 588, }, },
      },
   },
}
Last edited by Hideki Inoue on Tue Aug 11, 2015 6:50 am, edited 1 time in total.
Fusion Studio v18.6.6 / DeckLink Mini Monitor 4K
Intel® Core™ i9-13900KS / 128GB RAM / Nvidia Geforce RTX 4090 (546.33) / Windows 10 Pro 22H2
Intel® Core™ i9-7980XE / 128GB RAM / Nvidia RTX A5000 (536.67) / Windows 10 Pro 22H2
Offline
User avatar

Johnny Farmfield

  • Posts: 190
  • Joined: Tue Feb 10, 2015 8:26 am
  • Location: Goteborg - Sweden

Re: OpenGL performance

PostMon Aug 10, 2015 10:07 pm

Post a setup for us to try - copy the nodes and paste it into a ^code tag -easy as pie.

And it might be a driver issue or something but doesn't sound "normal".
*** Pushing pixels, vectors and voxels since 25 years - www.farmfield-vfx.com ***
Offline

Hideki Inoue

  • Posts: 226
  • Joined: Sun Nov 23, 2014 8:26 am
  • Location: Tokyo, Japan

Re: OpenGL performance

PostTue Aug 11, 2015 6:11 am

I found a cause.

Low Subdivision ImagePlane is faster, High Subdiv is slower. Yes, I know this is normal. But GPU usage is higher when Subdiv is lower, GPU usage is lower when Subdiv is higher.

Displace3D is processed by the CPU. And furthermore, it is single thread(I have 24 threads, so CPU usage is 4-5%). Because GPU is waiting CPU process, overall, GPU and CPU is almost idle. The performance of Renderer3D(OpenGL) may increases in the performance of the card proportionally. But other node become the bottleneck.

A half year ago, I replaced my GPU for Quadro K4200 from Quadro 4000. Single OpenCL node became faster. But I can't feel speedup in my Fusion's work. I think that only a few nodes support OpenCL, OpenGL or Multithread is the point.

I do not know where BMD Fusion goes to next. But I hope they think about these bottleneck.
Fusion Studio v18.6.6 / DeckLink Mini Monitor 4K
Intel® Core™ i9-13900KS / 128GB RAM / Nvidia Geforce RTX 4090 (546.33) / Windows 10 Pro 22H2
Intel® Core™ i9-7980XE / 128GB RAM / Nvidia RTX A5000 (536.67) / Windows 10 Pro 22H2

Return to Fusion

Who is online

Users browsing this forum: No registered users and 55 guests