{"record":{"id":"9eeb12fb3f4acfe3","repo":"remotion-dev/remotion","slug":"shine-shader-compile-failed-log-no-log","errorCode":null,"errorMessage":"Shine shader compile failed: ${log ?? '(no log)'}","messagePattern":"Shine shader compile failed: (.+?)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/effects/src/shine.ts","lineNumber":202,"sourceCode":"}\n`;\n\nconst compileShader = (\n\tgl: WebGL2RenderingContext,\n\ttype: number,\n\tsource: string,\n): WebGLShader => {\n\tconst shader = gl.createShader(type);\n\tif (!shader) {\n\t\tthrow new Error('Failed to create WebGL shader');\n\t}\n\n\tgl.shaderSource(shader, source);\n\tgl.compileShader(shader);\n\tif (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {\n\t\tconst log = gl.getShaderInfoLog(shader);\n\t\tgl.deleteShader(shader);\n\t\tthrow new Error(`Shine shader compile failed: ${log ?? '(no log)'}`);\n\t}\n\n\treturn shader;\n};\n\nconst linkProgram = (\n\tgl: WebGL2RenderingContext,\n\tvs: WebGLShader,\n\tfs: WebGLShader,\n): WebGLProgram => {\n\tconst program = gl.createProgram();\n\tif (!program) {\n\t\tthrow new Error('Failed to create WebGL program');\n\t}\n\n\tgl.attachShader(program, vs);\n\tgl.attachShader(program, fs);\n\tgl.linkProgram(program);","sourceCodeStart":184,"sourceCodeEnd":220,"githubUrl":"https://github.com/remotion-dev/remotion/blob/78fe4bb3fdb5a2cd68724393d63cb223db333fa7/packages/effects/src/shine.ts#L184-L220","documentation":"The shine() effect compiles its vertex and fragment shaders via gl.compileShader(). If the GLSL compiler rejects the source (COMPILE_STATUS is false), the effect reads the info log, deletes the shader, and throws this Error with the driver's diagnostic message. Since the shader source is a library constant, a compile failure almost always indicates a driver bug or an unsupported GPU feature rather than a user error.","triggerScenarios":"Calling shine() on a GPU/driver combination that cannot compile the #version 300 es GLSL ES shaders — typically very old drivers, buggy mobile GPUs, or software rasterizers with incomplete GLSL ES 3.00 support. The error message will contain the specific compiler diagnostic (e.g., unsupported precision qualifier, unknown builtin).","commonSituations":"Rendering on legacy integrated GPUs with outdated drivers; SwiftShader versions with partial GLSL ES 3.00 support; a regression in a browser's ANGLE translation layer; running in a remote desktop or VM with a virtual GPU.","solutions":["Read the info log in the error message to identify the specific GLSL issue.","Update GPU drivers and the browser/Chromium version to the latest stable release.","Switch to a render environment (runner or Lambda layer) with a known-good WebGL2 stack.","Report the issue to Remotion if the shader source itself has a portability bug — include the full info log."],"exampleFix":"null","handlingStrategy":"try-catch","validationCode":"null","typeGuard":"null","tryCatchPattern":"try {\n  shine({ progress: 0.5 });\n} catch (e) {\n  if (e instanceof Error && e.message.startsWith('Shine shader compile failed')) {\n    // Driver cannot compile the GLSL — report and fall back\n    console.error('Shader compile error:', e.message);\n    // Use a non-WebGL alternative or update the GPU stack\n  } else {\n    throw e;\n  }\n}","preventionTips":["Keep GPU drivers and Chromium versions up to date.","Use a render environment with a known-good WebGL2 stack.","The shader source is a library constant — if it fails, it is likely a driver/platform issue, not a usage error.","Report persistent compile failures to Remotion with the GPU vendor string and the full info log from the error message."],"tags":["webgl2","gpu","shader","glsl","driver-compat"],"backgroundTag":null,"analyzedSha":"78fe4bb3fdb5a2cd68724393d63cb223db333fa7","analyzedAt":"2026-08-12T17:18:50.444Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}