-
Bug
-
Resolution: Fixed
-
P3
-
8
-
windows, macos
The fix for RT-23725 "slow shaders on BeagleBoard" significantly improved performance for some of Controls
but also introduced regression for XmasTree and DirtyArea benchmarks.
* WinXP-Mid-Range: improvements
Controls.CheckBox: +137%, 36 fps => 86 fps
Controls.RadioButton: +24%, 65 fps => 81 fps
Controls.TableView-Keyboard: +15%, 100 fps => 115 fps
* WinXP-Mid-Range: regressions
Controls.TableView-XmasTree: -14%, 35.7 fps => 30.6 fps
DirtyArea.Test01_DDxx_xxxx_xxxx_xxxx: -12%, 540 fps => 475 fps
DirtyArea.Test04_oooo_oDDo_oooo_oooo: -14%, 549 fps => 471 fps
DirtyArea.Test06_DDDD_DDDD_DDDD_DDDD: -15%, 67 fps => 57 fps
* Mac-Mid-Range: regressions
DirtyArea.Test01_DDxx_xxxx_xxxx_xxxx: -34%, 222 fps => 145 fps
DirtyArea.Test04_oooo_oDDo_oooo_oooo: -38%, 236 fps => 145 fps
DirtyArea.Test06_DDDD_DDDD_DDDD_DDDD: -39%, 33.8 fps => 20.5 fps
I did run DirtyArea and regressions are easy reproduced on both Windows and MacOS, in both fullspeed and non-fullspeed modes.
JPA profile on Windows shows that in particular the time spent in BaseShaderContext, CachingShapeRep, CachingShapeRepState
during one pulse has been increased.
JPA profile on MacOS shows the time spent in native method
com.sun.prism.es2.gl.GLContext.nDrawIndexedQuads has been increased
from ~2.398 sec to ~ 3.230 sec
Steps to run DirtyArea.Test01_DDxx_xxxx_xxxx_xxxx benchmark:
- cd JFX_WS/tests/performance/DirtyArea
- ant
- java -cp "JFX_HOME/rt/lib/jfxrt.jar;./perf/DirtyAreaTest.jar"
dirtyarea.DirtyAreaTest -columns 4 -rows 4 -nodespace 0.6 -innermove true -areasmove all
use "-areasmove 0,1" to run Test01_DDxx_xxxx_xxxx_xxxx scenario
use "-areasmove 5,6 -dirtyareas 5,6" to run Test04_oooo_oDDo_oooo_oooo scenario
but also introduced regression for XmasTree and DirtyArea benchmarks.
* WinXP-Mid-Range: improvements
Controls.CheckBox: +137%, 36 fps => 86 fps
Controls.RadioButton: +24%, 65 fps => 81 fps
Controls.TableView-Keyboard: +15%, 100 fps => 115 fps
* WinXP-Mid-Range: regressions
Controls.TableView-XmasTree: -14%, 35.7 fps => 30.6 fps
DirtyArea.Test01_DDxx_xxxx_xxxx_xxxx: -12%, 540 fps => 475 fps
DirtyArea.Test04_oooo_oDDo_oooo_oooo: -14%, 549 fps => 471 fps
DirtyArea.Test06_DDDD_DDDD_DDDD_DDDD: -15%, 67 fps => 57 fps
* Mac-Mid-Range: regressions
DirtyArea.Test01_DDxx_xxxx_xxxx_xxxx: -34%, 222 fps => 145 fps
DirtyArea.Test04_oooo_oDDo_oooo_oooo: -38%, 236 fps => 145 fps
DirtyArea.Test06_DDDD_DDDD_DDDD_DDDD: -39%, 33.8 fps => 20.5 fps
I did run DirtyArea and regressions are easy reproduced on both Windows and MacOS, in both fullspeed and non-fullspeed modes.
JPA profile on Windows shows that in particular the time spent in BaseShaderContext, CachingShapeRep, CachingShapeRepState
during one pulse has been increased.
JPA profile on MacOS shows the time spent in native method
com.sun.prism.es2.gl.GLContext.nDrawIndexedQuads has been increased
from ~2.398 sec to ~ 3.230 sec
Steps to run DirtyArea.Test01_DDxx_xxxx_xxxx_xxxx benchmark:
- cd JFX_WS/tests/performance/DirtyArea
- ant
- java -cp "JFX_HOME/rt/lib/jfxrt.jar;./perf/DirtyAreaTest.jar"
dirtyarea.DirtyAreaTest -columns 4 -rows 4 -nodespace 0.6 -innermove true -areasmove all
use "-areasmove 0,1" to run Test01_DDxx_xxxx_xxxx_xxxx scenario
use "-areasmove 5,6 -dirtyareas 5,6" to run Test04_oooo_oDDo_oooo_oooo scenario