Friday we upgraded from 3.4.8 (with the trim change that was posted in the forums to reduced memory) to 3.5.4. We were hoping that the note below would result in less memory use.
3.5.4
- NEW: Cached buffers are now per-draw call rather than global, reducing memory allocations.
However, our experience is that when comparing 3.5.4 with 3.4.8 on the same code base, our memory allocations has increased by a couple of megabytes. Is there something else that was added that might explain this?
Looking over the changes, I am not sure how moving the verts, norms, uvs and tans from static lists in UIPanel to instance based lists in UIDrawCall is beneficial. It would seem to be that under the old system, if I had a panel with three draw calls -- one with 1000 verts, one with 500 verts and one with 250 verts -- I would have one allocation for 1000 verts. Under the new system each draw call would have their own allocation and thus I would allocate memory for 1750 verts. There is probably something subtle I am not understanding here.
Also there is a comment in the change log for 3.5.2
DEL: Removed UICamera's OnInput event as it wasn't being used (as it wasn't reliable).
We were using the OnInput event to enable and disable buttons based on when the entry in the input box was valid. Since we have multiple input boxes on our screen, we would catch the event -- ignore the parameters and check all the input boxes on screen to see if we could enable to submit button (was it the parameters that were unreliable?). What would be the correct way to structure something like that now that OnInput has been removed?