Example code trying this technique:
Rem Project: AATest_renderTargets
Rem Created: Thursday, January 23, 2014
Rem ***** Main Source File *****
global scrw = 1280
global scrh = 800
set display mode scrw, scrh, 32
sync on : sync rate 0 : sync
make memblock 1, 16 : write memblock dword 1,0,1 : write memblock dword 1,4,1 : write memblock dword 1,8,32 : write memblock dword 1,12,0xFFFFFFFF
make image from memblock 99, 1 : delete memblock 1
sprite 1, 0,0, 99 : hide sprite 1 : set sprite 1, 0, 1
ik create render target 1, 2*scrw, 2*scrh
ik create render target 2, 4*scrw, 4*scrh
set current bitmap 0
ik set filters 3,1,1
global trg = 0
angoff# = 0.0
set text font "Verdana"
set text size 20
do
rem Mode Selection
if keystate(2) then trg = 0 : set text size 20
if keystate(3) then trg = 1 : set text size 40
if keystate(4) then trg = 2 : set text size 80
t_old = t_new
t_new = timer()
t_dif = t_new - t_old
if shiftkey() then inc angoff#, t_dif*0.01
rem Draw
select trg
case 1
size sprite 1, 1024,20
offset sprite 1, 512,10
draw to image 1
cls 0xFF000000
for ang = 0 to 359 step 5
rotate sprite 1, ang+angoff#
paste sprite 1, scrw,scrh
next
output()
set current bitmap 0
cls
ik paste image 1, 0,0,scrw,scrh
endcase
case 2
size sprite 1, 2048,40
offset sprite 1, 1024,20
draw to image 2
cls 0xFF000000
for ang = 0 to 359 step 5
rotate sprite 1, ang+angoff#
paste sprite 1, scrw*2,scrh*2
next
output()
set current bitmap 0
cls
ik paste image on image 2, 1, 0,0,scrw*2,scrh*2
ik paste image 1, 0,0,scrw,scrh
endcase
case default
size sprite 1, 512,10
offset sprite 1, 256,5
cls
for ang = 0 to 359 step 5
rotate sprite 1, ang+angoff#
paste sprite 1, scrw*0.5,scrh*0.5
next
output()
endcase
endselect
sync
loop
function output()
print "Press 1,2,3 to select AA Mode"
print "Press Shift to Rotate"
print
print "FPS: ", screen fps()
print "AA x", 2^trg
endfunction
(Requires Matrix1 Utils and Image Kit)
I get around 2000 FPS with no AA, 1200 FPS with 2x and 350 FPS with 4x AA.
However, the question remains whether the performance reduction is absolute (i.e. it's caused mainly by drawing the interpolated, downscaled huge render targets to the screen) or relative to everything you render (i.e. drawing sprites etc. to the huge render target needs longer than rendering them to the screen). I guess that needs further testing.
Edit: Neither apparently. The speed difference is not in the sprite drawing in my code, nor in interpolated downscaling of the render targets - it's the sync command that makes the difference, and which needs way more time when 4xAA is activated. Not sure why exactly, but I'm sure it makes sense.