diff --git a/panda/src/pgraph/textureAttrib.I b/panda/src/pgraph/textureAttrib.I index 2b008b2f51..6649c8d87a 100644 --- a/panda/src/pgraph/textureAttrib.I +++ b/panda/src/pgraph/textureAttrib.I @@ -263,7 +263,7 @@ on_stage_affects_alpha(size_t n) const { */ INLINE void TextureAttrib:: check_sorted() const { - if (_sort_seq != TextureStage::get_sort_seq()) { + if (_sort_seq != TextureStage::get_sort_seq() && !_sort_seq.is_fresh()) { ((TextureAttrib *)this)->sort_on_stages(); } } diff --git a/panda/src/pgraph/textureAttrib.cxx b/panda/src/pgraph/textureAttrib.cxx index 09e9f7ce7e..8c1b4833ff 100644 --- a/panda/src/pgraph/textureAttrib.cxx +++ b/panda/src/pgraph/textureAttrib.cxx @@ -807,6 +807,9 @@ get_auto_shader_attrib_impl(const RenderState *state) const { } } + // Prevent check_sorted() from being called on this state. + attrib->_sort_seq = UpdateSeq::fresh(); + return return_new(attrib); }