On 23 Feb, Nick Lamb wrote: >> Does this mean that you agree to ditching all the special code >> for the 3 and 1 byte case as well? I'd really love to see this >> changes although as already stated this might introduce a bit >> memory overhead in case the user didn't use the alpha channel >> at all. > If we can get back COW during 1.3 this overhead is zero (all new > channels / layers etc. can be created as COW tiles with the > apppropriate contents -- huge speedup). COW is indeed a good thing. However I assume you address the mentioned memory overhead with your answer and I'm not sure how you would avoid it with copy-on-write. The 3 byte will be always problematic because we always step over memory boundaries which is a huge loss in performance on any modern architecture. However restructuring the code to have a special function for each of the possible cases could be a cure to the branchprediction smashing distinguish in the source of the performance critical functions. -- Servus, Daniel