Skip to content
  • Benjamin Otte's avatar
    stylecontext: Compute if things changed before invalidating · aaedc7b6
    Benjamin Otte authored
    This is only a small performance boost by itself, but it's necessary
    for animations, so we need it.
    
    Benchmark numbers for my Glade benchmark for interested people:
            GTK 3.4.0    last commit  this commit
    Raleigh
      real  0m41.879s    0m10.176s    0m9.900s
      user  0m41.394s    0m9.895s     0m9.628s
      sys   0m0.111s     0m0.096s     0m0.102s
    
    Adwaita                                        (*)
      real  0m51.049s    0m13.432s    0m14.848s    0m12.253s
      user  0m50.487s    0m13.034s    0m13.218s    0m11.927s
      sys   0m0.117s     0m0.151s     0m0.147s     0m0.107s
    
    Ambiance (patched to not use private GTK APIs)
      real  0m52.167s    0m13.115s    0m13.117s    0m12.944s
      user  0m51.576s    0m12.739s    0m12.768s    0m12.651s
      sys   0m0.119s     0m0.137s     0m0.136s     0m0.118s
    
    (*) Adwaita and unico currently use custom properties, and
    _gtk_css_value_compare() for custom properties always returns FALSE,
    which makes this optimization never trigger. So I modified
    _gtk_css_value_compare() to return TRUE for these properties instead and
    reran the benchmark. Those are the numbers.
    aaedc7b6