mirror of
https://github.com/mpv-player/mpv
synced 2025-01-28 02:23:06 +00:00
vo_gpu_next: fix resource exhaustion on minimized windows
This required an upstream API change to implement in a way that doesn't unnecessarily re-push or upload frames that won't be used. I consider this a big enough bug to justify bumping the minimum version for it. Closes #9401
This commit is contained in:
parent
f5d545c917
commit
ff0864d5f0
@ -583,8 +583,14 @@ static void draw_frame(struct vo *vo, struct vo_frame *frame)
|
||||
return;
|
||||
|
||||
struct pl_swapchain_frame swframe;
|
||||
if (!pl_swapchain_start_frame(p->sw, &swframe))
|
||||
if (!pl_swapchain_start_frame(p->sw, &swframe)) {
|
||||
// Advance the queue state to the current PTS to discard unused frames
|
||||
pl_queue_update(p->queue, NULL, &(struct pl_queue_params) {
|
||||
.pts = frame->current->pts + frame->vsync_offset,
|
||||
.radius = pl_frame_mix_radius(&p->params),
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
bool valid = false;
|
||||
p->is_interpolated = false;
|
||||
@ -616,7 +622,7 @@ static void draw_frame(struct vo *vo, struct vo_frame *frame)
|
||||
tbits->sample_depth = opts->dither_depth;
|
||||
}
|
||||
|
||||
struct pl_frame_mix mix = {0};
|
||||
struct pl_frame_mix mix;
|
||||
if (frame->current) {
|
||||
// Update queue state
|
||||
struct pl_queue_params qparams = {
|
||||
|
4
wscript
4
wscript
@ -741,9 +741,9 @@ video_output_features = [
|
||||
'func': check_pkg_config('libplacebo >= 3.104.0'),
|
||||
}, {
|
||||
'name': 'libplacebo-v4',
|
||||
'desc': 'libplacebo v4.157+, needed for vo_gpu_next',
|
||||
'desc': 'libplacebo v4.170+, needed for vo_gpu_next',
|
||||
'deps': 'libplacebo',
|
||||
'func': check_preprocessor('libplacebo/config.h', 'PL_API_VER >= 157',
|
||||
'func': check_preprocessor('libplacebo/config.h', 'PL_API_VER >= 170',
|
||||
use='libplacebo'),
|
||||
}, {
|
||||
'name': '--vulkan',
|
||||
|
Loading…
Reference in New Issue
Block a user