Hi,

As sort of a side-note, since performance has come up . . .

Per-pixel drawing operations, if they must be individually managed by the
CPU, will always be much faster to do on the CPU. This means things like
Surface.set_at(...) and likely draw.circle(...) as well as potentially
things like draw.rect(...) and draw.line(...). And it means everything, if
there are a lot of calls. The GPU is obviously faster at graphics
operations in-general, but it's still a thorough loss if you have to send
the commands over the PCIe in the first place: if not in processing time,
then in latency. As a matter of fact, this is true for most things people
try to use GPUs for, and mitigating it is why e.g. Vulkan has to be so
complex.

What does this have to do with anything?

Well, it's a philosophical question of what we want pygame to be:

1: Hardware-accelerated pygame-API-compatible library. (Basically won't
work for reasons above.)
2: Hardware-accelerated pygame-API-incompatible library. (Fine, but AFAIK
this already exists <https://bitbucket.org/pyglet/pyglet/wiki/Home>. There
are probably other projects too.)
3: Software pygame-API-compatible library. (We have this now, and any
movement to SDL2 should be considered in light of what features it changes
(i.e. many misc. improvements, but worse (?) blitting).)
4: Software pygame-API-incompatible library. (Works best, IMO, with any
plan to support SDL2.)

Python is a slow language, and if you're using it, you're implicitly saying
usability is more important right now. This includes graphics, and pygame
is currently occupying that niche: highly usable, low-level, slow(ish;
still pretty fast) graphics. If we want hardware acceleration (options 1,
2) then we're moving outside that niche. Ditto, to a lesser extent,
breaking compatibility to add more-modern features (option 4). So
basically, what it comes down to is whether we like our niche, whether
moving to/incorporating SDL2 is focusing on a real problem, if so whether
moving to SDL2 affects our feature set in ways we do like, and if so
whether this affects our niche in ways we don't like.

Ian

Reply via email to