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() }