From 4c7f168bcedc648b194f3567e5c293eb23c55711 Mon Sep 17 00:00:00 2001 From: Justin Harms Date: Fri, 13 Mar 2026 10:26:13 -0500 Subject: [PATCH] Enhance GPU error detection in RenderProcessor - Updated gpuErrorSubstrings to include case-insensitive matching for GPU backend errors, improving error detection reliability. - Modified checkGPUErrorLine to convert log lines to lowercase before checking for error indicators, ensuring consistent matching across different log formats. --- internal/runner/tasks/render.go | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/internal/runner/tasks/render.go b/internal/runner/tasks/render.go index c4447ff..46fb484 100644 --- a/internal/runner/tasks/render.go +++ b/internal/runner/tasks/render.go @@ -25,15 +25,23 @@ func NewRenderProcessor() *RenderProcessor { return &RenderProcessor{} } -// gpuErrorSubstrings are log line substrings that indicate a GPU backend error; any match triggers full GPU lockout. +// gpuErrorSubstrings are log line substrings that indicate a GPU backend error (matched case-insensitively); any match triggers full GPU lockout. var gpuErrorSubstrings = []string{ - "Illegal address in hip", // HIP (AMD) backend + "illegal address in hip", // HIP (AMD) e.g. "Illegal address in HIP" or "Illegal address in hip" + "hiperror", // hipError* codes + "hip error", + "cuda error", + "cuerror", + "optix error", + "oneapi error", + "opencl error", } // checkGPUErrorLine checks a log line for GPU error indicators and triggers runner GPU lockout if found. func (p *RenderProcessor) checkGPUErrorLine(ctx *Context, line string) { + lower := strings.ToLower(line) for _, sub := range gpuErrorSubstrings { - if strings.Contains(line, sub) { + if strings.Contains(lower, sub) { if ctx.OnGPUError != nil { ctx.OnGPUError() }