Flush out rendering after each performance test
There might be operations pending in the render queue. Make sure these are fully handled before we consider the test run over.
This commit is contained in:
parent
e12e2759b0
commit
18e96092c3
|
@ -12,7 +12,8 @@ var rfb, mode, test_state, frame_idx, frame_length,
|
||||||
iteration, iterations, istart_time, encoding,
|
iteration, iterations, istart_time, encoding,
|
||||||
|
|
||||||
// Pre-declarations for jslint
|
// Pre-declarations for jslint
|
||||||
send_array, next_iteration, queue_next_packet, do_packet, enable_test_mode;
|
send_array, next_iteration, end_iteration, queue_next_packet,
|
||||||
|
do_packet, enable_test_mode;
|
||||||
|
|
||||||
// Override send_array
|
// Override send_array
|
||||||
send_array = function (arr) {
|
send_array = function (arr) {
|
||||||
|
@ -112,6 +113,20 @@ next_iteration = function () {
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
end_iteration = function () {
|
||||||
|
if (rfb._display.pending()) {
|
||||||
|
rfb._display.set_onFlush(function () {
|
||||||
|
if (rfb._flushing) {
|
||||||
|
rfb._onFlush();
|
||||||
|
}
|
||||||
|
end_iteration();
|
||||||
|
});
|
||||||
|
rfb._display.flush();
|
||||||
|
} else {
|
||||||
|
next_iteration();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
queue_next_packet = function () {
|
queue_next_packet = function () {
|
||||||
var frame, foffset, toffset, delay;
|
var frame, foffset, toffset, delay;
|
||||||
if (test_state !== 'running') { return; }
|
if (test_state !== 'running') { return; }
|
||||||
|
@ -125,12 +140,12 @@ queue_next_packet = function () {
|
||||||
|
|
||||||
if (frame === 'EOF') {
|
if (frame === 'EOF') {
|
||||||
Util.Debug("Finished, found EOF");
|
Util.Debug("Finished, found EOF");
|
||||||
next_iteration();
|
end_iteration();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (frame_idx >= frame_length) {
|
if (frame_idx >= frame_length) {
|
||||||
Util.Debug("Finished, no more frames");
|
Util.Debug("Finished, no more frames");
|
||||||
next_iteration();
|
end_iteration();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -151,6 +166,16 @@ queue_next_packet = function () {
|
||||||
var bytes_processed = 0;
|
var bytes_processed = 0;
|
||||||
|
|
||||||
do_packet = function () {
|
do_packet = function () {
|
||||||
|
// Avoid having an excessive queue buildup
|
||||||
|
if (rfb._flushing && (mode !== 'realtime')) {
|
||||||
|
rfb._display.set_onFlush(function () {
|
||||||
|
rfb._display.set_onFlush(rfb._onFlush.bind(rfb));
|
||||||
|
rfb._onFlush();
|
||||||
|
do_packet();
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
//Util.Debug("Processing frame: " + frame_idx);
|
//Util.Debug("Processing frame: " + frame_idx);
|
||||||
var frame = VNC_frame_data[frame_idx],
|
var frame = VNC_frame_data[frame_idx],
|
||||||
start = frame.indexOf('{', 1) + 1;
|
start = frame.indexOf('{', 1) + 1;
|
||||||
|
|
Loading…
Reference in New Issue