2009-07-19, 04:35
Actually, what I've found is that it is entirely CPU bound; the graphics code is fine. I've worked in rendering optimization professionally for a spell, but after modifying XBMC to expose the standard bottlenecks, I can say none of the standard rendering issues are a problem. Sure there is a slowdown in load time, which is shared equally between includes, pulling values from the XML (parsing is fast, getting the values is not), and constructing the controls, but that is a one time hit. This is all per-frame CPU time.
I've actually threw together a quick skin proflier, that reports a hierarchical list of time spent in visibility check and render time per control. I think this might be useful for helping skinners optimize if you agree. I'll clean it up and present it soon.
But back on topic, after considering some specialized controls to improve performance, I think this can actually be solved in a more general case by improving the visibility check caching and eliminating the rendering of nonvisible objects. I originally jumped to the conclusion that Aeon 1080p was texture thrashing but really that's not the case.
EDIT: I sort of want to apologize for immediately jumping to the conclusions that the speed was GPU bound, sorry for implying that without looking at the numbers.
I've actually threw together a quick skin proflier, that reports a hierarchical list of time spent in visibility check and render time per control. I think this might be useful for helping skinners optimize if you agree. I'll clean it up and present it soon.
But back on topic, after considering some specialized controls to improve performance, I think this can actually be solved in a more general case by improving the visibility check caching and eliminating the rendering of nonvisible objects. I originally jumped to the conclusion that Aeon 1080p was texture thrashing but really that's not the case.
EDIT: I sort of want to apologize for immediately jumping to the conclusions that the speed was GPU bound, sorry for implying that without looking at the numbers.