@Daniel, I made new tests and it seems that there is a performance problem in Starling. Indeed, even if the touch queue lag is present with the classic display list, it is way faster than with the Starling one...
I made the following little test:
Classic displayList with cpu renderMode:
public class Root extends Sprite
{
private var _background:Shape = new Shape();
public function Root()
{
super();
addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
_background.graphics.beginFill(0x000000, 1);
_background.graphics.drawRect(0, 0, 1920, 1080);
addChild(_background);
addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin);
addEventListener(TouchEvent.TOUCH_END, onTouchEnd);
addEventListener(TouchEvent.TOUCH_MOVE, onTouchMove);
}
private function onTouchBegin(e:TouchEvent):void
{
trace("onTouchBegin");
}
private function onTouchEnd(e:TouchEvent):void
{
trace("onTouchEnd");
}
private function onTouchMove(e:TouchEvent):void
{
trace("onTouchMove");
}
}
As you can see, I do nothing exept tracing touchEvents. In this configuration, I tap the screen quickly with all my fingers for 5 seconds, and then when I stop there is no more trace (or maybe 0.5 second at most).
Starling displayList with direct renderMode:
public class Root extends Sprite
{
private var _background:Quad = new Quad(1920, 1080, 0x000000);
private var _compt:Number = 0;
public function Root()
{
super();
addEventListener(Event.ADDED_TO_STAGE, init);
}
public function start():void
{
}
private function init(e:Event):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
addChild(_background);
addEventListener(TouchEvent.TOUCH, onTouch);
}
private function onTouch(e:TouchEvent):void
{
var touches:Vector.<Touch> = e.getTouches(this);
for (var i:int = 0; i < touches.length ; i++)
{
trace(touches[i].phase);
}
}
}
I tap the screen quickly with all my fingers for 5 seconds, and then when I stop it continues to trace touchEvent phases for at least 10 seconds!
Here is the source if you want to check : https://www.dropbox.com/s/ymzxr7jtx1kh5ys/MultitouchIssue.zip?dl=0
I use AIR 28 SDK (but it's the same with 27 and 26), and I test in release mode.