Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8103124

Add better diagnostic and debug tools for dirty regions, culling, and overdraw

    XMLWordPrintable

    Details

    • Type: Enhancement
    • Status: Resolved
    • Priority: P4
    • Resolution: Fixed
    • Affects Version/s: 8
    • Fix Version/s: 8
    • Component/s: javafx
    • Labels:

      Description

      This issue encompasses a few things. First, we need a printout which shows the different culling bits, opaque regions, render roots, etc. This helps to determine why things are being rendered, etc. Example:

      *=Render Root
      d=Dirty
      dt=Dirty By Translation
      i=Dirty Region Intersects the NGNode
      c=Dirty Region Contains the NGNode
      ef=Effect Filter
      cf=Cache Filter
      cl=This node is a clip node
      b=Blend mode is set
      or=Opaque Region
      ensemble.EnsembleApp$1 [*0 *1 i0 ci1 or=0.0, 0.0, 1024.0, 768.0]
        PageBrowser [i0 ci1]
          HomePage id=HomePage [i0 ci1 or=0.0, 44.0, 1024.0, 724.0]
            VirtualFlow id=virtual-flow [i0 ci1]
        MenuBar [or=0.0, 0.0, 1024.0, 0.0]
          HBox

      Second, we should fix the showDirtyRegions so that it doesn't render the entire scene every time

      Third, we should add a mode to draw overdraw rectangles to indicate how many times a specific part of the scene has been drawn. Ultimately we'd want this to be pixel perfect and completely accurate (basically we should record every time any pixel shader touches a specific pixel), but for now a simple rectangle based approximation will work.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              rbair Richard Bair (Inactive)
              Reporter:
              rbair Richard Bair (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:
                Imported: