Open Bug 1691097 Opened 4 years ago Updated 1 year ago

Implement missing WebRender functionality causing us to use blob images

Categories

(Core :: Graphics: WebRender, enhancement)

enhancement

Tracking

()

People

(Reporter: nical, Unassigned)

References

(Blocks 1 open bug)

Details

Looking at where CreateWebRenderCommands returns false in nsDisplayList,cpp (which triggers the blob image fall-back I gathered this (likely incomplete) list:

  • SVG geometry
  • themed backgrounds
  • nsDisplayBackgroundColor
    • HasBackgroundClipText()
  • nsDisplayOutline
    • IsThemedOutline()
  • nsDisplayBorder
    • Gradient border
    • mBorderImageRepeatH == StyleBorderImageRepeat::Space (etc.)
    • More stuff (I got lost in layers of indirection).
  • nsDisplayBoxShadowOuter
    • nativeTheme
    • if mBoxShadow is emppty (the equivalent painting code early-returns so I think we should not need a blop here)
  • nsDisplayBoxShadowInner
    • nativeTheme
  • nsDisplayPerspective
    • !GetChildren()->GetTop() (sounds like it should be an early-return?)
  • nsDisplayText
    • font size > kWebRenderFontSizeLimit
  • nsDisplayBackdropFilters
    • if the filter chain is compatible with webrender
  • nsDisplayFilters
    • if the filter chain is compatible with webrender
  • nsDisplayBackgroundImage
    • text clip
    • mBackgroundStyle->StyleBackground() is null
    • themed
    • "We only support painting gradients and image for a single style image layer, and we don't support crop-rects."
    • Some more stuff that is hard to understand at a glance in nsCSSRendering::CanBuildWebRenderDisplayItemsForStyleImageLayer
  • nsDisplayBackgroundColor
    • text clip
  • nsDisplayOutline
    • themed
Blocks: wr-todos
You need to log in before you can comment on or make changes to this bug.