EmbarkStudios / rust-gpu

🐉 Making Rust a first-class language and ecosystem for GPU shaders 🚧
https://shader.rs
Apache License 2.0
7.29k stars 246 forks source link

Make error messages more human #1139

Open LegNeato opened 6 months ago

LegNeato commented 6 months ago

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

Instead of an issue this might be more a project, let me know if you want me to write a RFC with concrete suggestions and a plan to make these great.

LegNeato commented 6 months ago

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.