1

I can understand why 100%, 200%, 300%... scalings are technically easier. But when it comes to fractional scaling, why is it limited to 125%, 150%, and 175%? Is it more difficult to implement, for example, 110% than to implement 125%?

1
  • Similar to Philippos answer I suspect this computation is performed by multiplying the original with values from a matrix. For this to be efficient you would want the matrix to be as small as possible so it needs a very small repeat. 200% repeats every source pixel. 150% Repeats every 2. 125% repeats every 4 pixels. Commented Nov 10, 2022 at 13:03

1 Answer 1

0

Not knowing how this is actually implemented on different systems, I can only guess:

It is indeed more efficient to implement a bitmap scaling by those values. Think of 150% scaling:

at 100%:  1  2  3  4 ...
         ---   ---   ---
         -- -- -- -- --
at 150%: 1'2'3'4'5'6'...

Pixel 1' will be the same ass pixel 1, pixel 2' will be (pixel 1 + pixel 2) / 2, pixel 3' will be the same as pixel 2 and so on. So you need a simple add+shift operation, which is done in efficiently in hardware in any GPU or vector engine. Likewise the double shift that you need for 125% scaling, while other relations like said 110% require an actual divide operation.

2
  • For CPU (software rendering, I guess), I can understand that logic, but can't GPU scale at arbitrary value fast enough? I mean, when I play a video, I can resize the video window at any size and I did not notice any performance difference. Commented Nov 10, 2022 at 18:49
  • Sure, you wouldn't notice on a CPU either, maybe by measuring power consumption. And knowing that Gnome is running on many different systems, some of them battery life critical, some of them without GPU, I can imagine they did decided not to have different scaling options depending on the hardware. But as I said, this is just a guess.
    – Philippos
    Commented Nov 15, 2022 at 8:08

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .