Hello - I am trying to understand why some arguments to the vertex and fragment shaders are sent as pointers while others are sent as a reference. Can someone help me understand the rationale? For example, in the code below, v_in is a pointer while mvp_matrix is a reference.
render_vertex(const device VertexInput* v_in [[buffer(0)]],
constant float4x4& mvp_matrix [[buffer(1)]], constant LightDesc& light_desc [[buffer(2)]], device VertexOutput* xform_output [[buffer(3)]], uint v_id [[vertex_id]] )