Rust-GPU / rust-gpu

🐉 Making Rust a first-class language and ecosystem for GPU shaders 🚧
https://rust-gpu.github.io
Apache License 2.0
980 stars 27 forks source link

Make error messages more human #156

Open LegNeato opened 5 days ago

LegNeato commented 5 days ago

(originally filed at https://github.com/EmbarkStudios/rust-gpu/issues/1139)

Currently the rust-gpu error messages are super obtuse and require understanding of both graphics programming and the underlying apis like vulkan. They are not written for humans to understand and while useful don't meet the high bar that rustc has set. For example, this is the error message when you use a built-in variable that is only valid for vertex shaders in a fragment shader:

error: error:0:0 - [VUID-Position-Position-04318] Vulkan spec allows BuiltIn Position to be used only with Vertex, TessellationControl, TessellationEvaluation or Geometry execution models. ID <15> (OpLoad) is referencing ID <2> (OpVariable) which is decorated with BuiltIn Position in function <1> called with execution model Fragment.
         %15 = OpLoad %v4float %frag_coord

Another:

When you don't declare an entrypoint pub you get:

error: error:0:0 - No OpEntryPoint instruction was found. This is only allowed if the Linkage capability is being used.