From 020704999396702611888574b44abcdf3d99bd39 Mon Sep 17 00:00:00 2001 From: KingKDot Date: Sat, 21 Mar 2026 23:09:24 -0500 Subject: [PATCH] fix for capturing black screens randomly. --- Overlord-Client/cmd/agent/capture/capture.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Overlord-Client/cmd/agent/capture/capture.go b/Overlord-Client/cmd/agent/capture/capture.go index 903db4d..ecfa53f 100644 --- a/Overlord-Client/cmd/agent/capture/capture.go +++ b/Overlord-Client/cmd/agent/capture/capture.go @@ -4,6 +4,7 @@ import ( "bytes" "context" "encoding/binary" + "errors" "image" "image/draw" "log" @@ -14,6 +15,7 @@ import ( "strings" "sync" "sync/atomic" + "syscall" "time" rt "overlord-client/cmd/agent/runtime" @@ -97,6 +99,14 @@ func CaptureAndSend(ctx context.Context, env *rt.Env) error { } t0 := time.Now() img, err := safeCaptureDisplay(display) + if err != nil { + img, err = safeCaptureDisplay(display) + if err != nil && errors.Is(err, syscall.EINVAL) { + ResetDesktopCapture() + ResetMonitorCache() + img, err = safeCaptureDisplay(display) + } + } if err != nil { log.Printf("capture: capture failed: %v (sending black frame)", err) return sendBlackFrame(ctx, env)