Skip to content

Add error handling for shader reflection in set_vertex_shader() #37

@coderabbitai

Description

@coderabbitai

Description

The reflect_vertex() call in sdl_wrapper/sdl_wrapper.render_procedural.cpp (lines 240-241) lacks error validation. The function returns an empty VertexReflection on parse or link failures but has no error indicator, and the calling code does not validate whether reflection succeeded before proceeding with set_vertex_reflection().

Current Behavior

  • reflect_vertex() returns an empty VertexReflection when GLSL parsing or linking fails
  • The calling code in set_vertex_shader() does not check for reflection failures
  • set_vertex_reflection() is always invoked even when reflection failed
  • The function returns success unconditionally, allowing shader reflection failures to silently corrupt vertex layout data

Expected Behavior

  • Add validation mechanism to detect reflection failures (e.g., check if reflect_result.inputs is empty, or add a success flag to VertexReflection)
  • Propagate errors back to the caller via std::expected<std::monostate, GpuError> return type
  • Do not call set_vertex_reflection() when reflection fails

Context

Identified in PR #36 review.

Related PR: #36
Review Comment: #36 (comment)
Requested by: @WSQS

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions