diff options
author | Niklas Haas <git@haasn.xyz> | 2017-09-11 00:27:27 +0200 |
---|---|---|
committer | Niklas Haas <git@haasn.xyz> | 2017-09-11 00:35:23 +0200 |
commit | 1da53248ab29d711df5602f3fdff90c45298ec77 (patch) | |
tree | 749585e28538567588cdf2c83590ae3d6b96eb51 /video/out/vo.h | |
parent | d0c87dd57918cab1afc4d5968355b6253377c0b1 (diff) | |
download | mpv-1da53248ab29d711df5602f3fdff90c45298ec77.tar.bz2 mpv-1da53248ab29d711df5602f3fdff90c45298ec77.tar.xz |
vo_opengl: refactor/fix mp_pass_perf code
This was needlessly complicated and prone to breakage, because even the
references to the ring buffer could end up getting invalidated and
containing garbage data on e.g. shader cache flush. For much the same
reason why we can't keep around the *timer_pool, we're also forced to
hard-copy the entire sample buffer per pass per frame.
Not a huge deal, though. This is, what, a few kB per frame? We have more
pressing CPU performance concerns anyway.
Also simplified/fixed some other code.
Diffstat (limited to 'video/out/vo.h')
-rw-r--r-- | video/out/vo.h | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/video/out/vo.h b/video/out/vo.h index c6751c7524..36591cb00d 100644 --- a/video/out/vo.h +++ b/video/out/vo.h @@ -143,16 +143,13 @@ struct voctrl_playback_state { }; // VOCTRL_PERFORMANCE_DATA -#define PERF_SAMPLE_COUNT 256u +#define VO_PERF_SAMPLE_COUNT 256u struct mp_pass_perf { // times are all in nanoseconds uint64_t last, avg, peak; - // this is a ring buffer, indices are relative to index and modulo - // PERF_SAMPLE_COUNT - uint64_t *samples; - int count; - int index; + uint64_t samples[VO_PERF_SAMPLE_COUNT]; + uint64_t count; }; #define VO_PASS_PERF_MAX 128 |