diff --git a/servers/rendering/rendering_device_commons.h b/servers/rendering/rendering_device_commons.h index 591752bc0ea8..28d641c879a6 100644 --- a/servers/rendering/rendering_device_commons.h +++ b/servers/rendering/rendering_device_commons.h @@ -912,6 +912,8 @@ public: struct ShaderSpecializationConstant : public PipelineSpecializationConstant { BitField stages; + + bool operator<(const ShaderSpecializationConstant &p_other) const { return constant_id < p_other.constant_id; } }; struct ShaderDescription { diff --git a/servers/rendering/rendering_device_driver.cpp b/servers/rendering/rendering_device_driver.cpp index 9e05a6a133c4..be74467340a6 100644 --- a/servers/rendering/rendering_device_driver.cpp +++ b/servers/rendering/rendering_device_driver.cpp @@ -265,6 +265,8 @@ Error RenderingDeviceDriver::_reflect_spirv(VectorView p_s r_reflection.specialization_constants.push_back(sconst); } } + + r_reflection.specialization_constants.sort(); } }