zed-industries/zed · error
error locating fragment function
Error message
error locating fragment function
What it means
Same as the vertex-function lookup but for the fragment shader function: library.get_function returned None. Indicates the Metal library doesn't contain the expected fragment entry point — mismatched or outdated shader artifacts.
Source
Thrown at crates/gpui_apple/src/metal_renderer.rs:1289
}
RgbaImage::from_raw(width, height, pixels).context("failed to create RgbaImage from pixel data")
}
fn build_pipeline_state(
device: &metal::DeviceRef,
library: &metal::LibraryRef,
label: &str,
vertex_fn_name: &str,
fragment_fn_name: &str,
pixel_format: metal::MTLPixelFormat,
) -> metal::RenderPipelineState {
let vertex_fn = library
.get_function(vertex_fn_name, None)
.expect("error locating vertex function");
let fragment_fn = library
.get_function(fragment_fn_name, None)
.expect("error locating fragment function");
let descriptor = metal::RenderPipelineDescriptor::new();
descriptor.set_label(label);
descriptor.set_vertex_function(Some(vertex_fn.as_ref()));
descriptor.set_fragment_function(Some(fragment_fn.as_ref()));
let color_attachment = descriptor.color_attachments().object_at(0).unwrap();
color_attachment.set_pixel_format(pixel_format);
color_attachment.set_blending_enabled(true);
color_attachment.set_rgb_blend_operation(metal::MTLBlendOperation::Add);
color_attachment.set_alpha_blend_operation(metal::MTLBlendOperation::Add);
color_attachment.set_source_rgb_blend_factor(metal::MTLBlendFactor::SourceAlpha);
color_attachment.set_source_alpha_blend_factor(metal::MTLBlendFactor::One);
color_attachment.set_destination_rgb_blend_factor(metal::MTLBlendFactor::OneMinusSourceAlpha);
color_attachment.set_destination_alpha_blend_factor(metal::MTLBlendFactor::One);
device
.new_render_pipeline_state(&descriptor)
.expect("could not create render pipeline state")View on GitHub (pinned to 9d272b0363)
Solutions
- Verify fragment_fn_name exists in the compiled library
- Rebuild shaders together with the renderer code
- Inspect library.function_names() at runtime to diagnose mismatches
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at crates/gpui_apple/src/metal_renderer.rs:1282 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of zed-industries/zed@9d272b0363 (2026-08-20).
Data as JSON: /api/errors/a3508cb20ccce396.
Report an issue: GitHub.