From 22e15da67c48ea6917ea91094c70870850ca76d5 Mon Sep 17 00:00:00 2001 From: Elias Naur Date: Sat, 29 Feb 2020 15:39:04 +0100 Subject: [PATCH] app/internal/window: (Windows) return all errors from NewContext Instead of just returning the first error (from Direct3D), return the errors from all attempts. Signed-off-by: Elias Naur --- app/internal/window/os_windows.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/internal/window/os_windows.go b/app/internal/window/os_windows.go index ad517840..8537e437 100644 --- a/app/internal/window/os_windows.go +++ b/app/internal/window/os_windows.go @@ -4,9 +4,11 @@ package window import ( "errors" + "fmt" "image" "runtime" "sort" + "strings" "sync" "time" "unicode" @@ -359,18 +361,16 @@ func (w *window) NewContext() (Context, error) { sort.Slice(backends, func(i, j int) bool { return backends[i].priority < backends[j].priority }) - var cerr error + var errs []string for _, b := range backends { ctx, err := b.initializer(w) if err == nil { return ctx, nil } - if cerr == nil { - cerr = err - } + errs = append(errs, err.Error()) } - if cerr != nil { - return nil, cerr + if len(errs) > 0 { + return nil, fmt.Errorf("NewContext: failed to create a GPU device, tried: %s", strings.Join(errs, ", ")) } return nil, errors.New("NewContext: no available backends") }