diff options
| author | Jay Sorg <jay.sorg@gmail.com> | 2017-02-11 16:22:32 -0800 | 
|---|---|---|
| committer | jsorg71 <jay.sorg@gmail.com> | 2017-02-22 20:57:33 -0800 | 
| commit | fde04e802ca804f23e7802e38450910ba185a140 (patch) | |
| tree | 5bff5bcb66fca6998f0fa851f06333793e464e79 /xrdp/xrdp_mm.c | |
| parent | e0ac84aaa411feae63b3cebd49a4b54ee7086e1f (diff) | |
| download | xrdp-proprietary-fde04e802ca804f23e7802e38450910ba185a140.tar.gz xrdp-proprietary-fde04e802ca804f23e7802e38450910ba185a140.zip | |
rfx fixes for large tile sets, performance change, Xorg will start next frame earlier
Diffstat (limited to 'xrdp/xrdp_mm.c')
| -rw-r--r-- | xrdp/xrdp_mm.c | 14 | 
1 files changed, 14 insertions, 0 deletions
| diff --git a/xrdp/xrdp_mm.c b/xrdp/xrdp_mm.c index df9bddcd..b0a6ca5a 100644 --- a/xrdp/xrdp_mm.c +++ b/xrdp/xrdp_mm.c @@ -2175,6 +2175,7 @@ xrdp_mm_check_wait_objs(struct xrdp_mm *self)      int cx;      int cy;      int use_frame_acks; +    int ex;      if (self == 0)      { @@ -2279,6 +2280,19 @@ xrdp_mm_check_wait_objs(struct xrdp_mm *self)                                                   enc_done->enc->flags,                                                   enc_done->enc->frame_id);                      } +                    else +                    { +                        ex = self->wm->client_info->max_unacknowledged_frame_count; +                        if (self->encoder->frame_id_client + ex >= self->encoder->frame_id_server) +                        { +                            if (self->encoder->frame_id_server > self->encoder->frame_id_server_sent) +                            { +                                LLOGLN(10, ("xrdp_mm_check_wait_objs: 1 -- %d", self->encoder->frame_id_server)); +                                self->encoder->frame_id_server_sent = self->encoder->frame_id_server; +                                self->mod->mod_frame_ack(self->mod, 0, self->encoder->frame_id_server); +                            } +                        } +                    }                      g_free(enc_done->enc->drects);                      g_free(enc_done->enc->crects);                      g_free(enc_done->enc); | 
