If you blit to a separate image, then it to the screen, I think you aren't taking advantage of the HWSURFACE flag. If somebody else could confirm this is correct, please do.
To set a surface to have the HWSURFACE flag, you need to create the
surface with it:
image = pygame.Surface((1920,1080), pygame.HWSURFACE)
then just blit it as normal.
I hope this answers your questions,
Silver
