summaryrefslogtreecommitdiffstats
path: root/player/command.c
diff options
context:
space:
mode:
authorNiklas Haas <git@haasn.xyz>2017-09-11 00:27:27 +0200
committerNiklas Haas <git@haasn.xyz>2017-09-11 00:35:23 +0200
commit1da53248ab29d711df5602f3fdff90c45298ec77 (patch)
tree749585e28538567588cdf2c83590ae3d6b96eb51 /player/command.c
parentd0c87dd57918cab1afc4d5968355b6253377c0b1 (diff)
downloadmpv-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 'player/command.c')
-rw-r--r--player/command.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/player/command.c b/player/command.c
index 6dc619d0eb..87709e119c 100644
--- a/player/command.c
+++ b/player/command.c
@@ -2882,12 +2882,8 @@ static void get_frame_perf(struct mpv_node *node, struct mp_frame_perf *perf)
node_map_add(pass, "peak", MPV_FORMAT_INT64)->u.int64 = data->peak;
node_map_add(pass, "count", MPV_FORMAT_INT64)->u.int64 = data->count;
struct mpv_node *samples = node_map_add(pass, "samples", MPV_FORMAT_NODE_ARRAY);
-
- int idx = data->index;
- for (int n = 0; n < data->count; n++) {
- node_array_add(samples, MPV_FORMAT_INT64)->u.int64 = data->samples[idx];
- idx = (idx + 1) % PERF_SAMPLE_COUNT;
- }
+ for (int n = 0; n < data->count; n++)
+ node_array_add(samples, MPV_FORMAT_INT64)->u.int64 = data->samples[n];
}
}