From ba7db72093ec9726498520c6a67b3b0ed52a653c Mon Sep 17 00:00:00 2001 From: Sergey Stepanov Date: Mon, 15 Jul 2024 12:10:18 +0300 Subject: [PATCH] Increase buffers that use max dimensions from the Libretro geometry Some cores may render frames bigger that reported max dimensions. This may help a bit. --- pkg/worker/caged/libretro/nanoarch/nanoarch.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkg/worker/caged/libretro/nanoarch/nanoarch.go b/pkg/worker/caged/libretro/nanoarch/nanoarch.go index aad9eb1c9..cc208dc1c 100644 --- a/pkg/worker/caged/libretro/nanoarch/nanoarch.go +++ b/pkg/worker/caged/libretro/nanoarch/nanoarch.go @@ -897,9 +897,11 @@ func geometryChange(geom C.struct_retro_game_geometry) { Nan0.sys.av.geometry = geom if Nan0.Video.gl.enabled && (old.max_width != geom.max_width || old.max_height != geom.max_height) { - bufS := uint(geom.max_width*geom.max_height) * Nan0.Video.PixFmt.BPP + // (for LRPS2) makes the max height bigger increasing SDL2 and OpenGL buffers slightly + Nan0.sys.av.geometry.max_height = C.unsigned(float32(Nan0.sys.av.geometry.max_height) * 1.5) + bufS := uint(geom.max_width*Nan0.sys.av.geometry.max_height) * Nan0.Video.PixFmt.BPP graphics.SetBuffer(int(bufS)) - Nan0.log.Debug().Msgf("OpenGL frame buffer: %v", byteCountBinary(int64(bufS))) + Nan0.log.Debug().Msgf("OpenGL frame buffer: %v", bufS) } if Nan0.OnSystemAvInfo != nil {