gfx-rs/wgpu · error

Could not create shader

Error message

Could not create shader

What it means

Panic in the GLES adapter's shader-clear helper: gl.create_shader returned no shader object for the internal clear shader, indicating the GL context rejected shader creation (context lost or resource limits). The faulty input is the current GL context state.

Source

Thrown at wgpu-hal/src/gles/adapter.rs:1020

    unsafe fn compile_shader(
        source: &str,
        gl: &glow::Context,
        shader_type: u32,
        es: bool,
    ) -> Option<glow::Shader> {
        let source = if es {
            format!("#version 300 es\nprecision lowp float;\n{source}")
        } else {
            let version = gl.version();
            if version.major == 3 && version.minor == 0 {
                // OpenGL 3.0 only supports this format
                format!("#version 130\n{source}")
            } else {
                // OpenGL 3.1+ support this format
                format!("#version 140\n{source}")
            }
        };
        let shader = unsafe { gl.create_shader(shader_type) }.expect("Could not create shader");
        unsafe { gl.shader_source(shader, &source) };
        unsafe { gl.compile_shader(shader) };

        if !unsafe { gl.get_shader_compile_status(shader) } {
            let msg = unsafe { gl.get_shader_info_log(shader) };
            if !msg.is_empty() {
                log::error!("\tShader compile error: {msg}");
            }
            unsafe { gl.delete_shader(shader) };
            None
        } else {
            Some(shader)
        }
    }

    unsafe fn create_shader_clear_program(
        gl: &glow::Context,
        es: bool,

View on GitHub (pinned to 3e11ff59bf)

Solutions

  1. Retry after the GL context is restored; check for context-loss before adapter use
  2. Avoid exhausting GL object limits; recreate the context if creation persistently fails
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at wgpu-hal/src/gles/adapter.rs:1020 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of gfx-rs/wgpu@3e11ff59bf (2026-09-03). Data as JSON: /api/errors/2988ed48b3d7b902. Report an issue: GitHub.