fix(gx): correct off-by-one error when popping render states

This commit is contained in:
fallenoak committed 2023-04-11 00:24:59 -05:00
1 parent dfb7fb0270
commit eddc6f7f4a
1 file changed
+5 -2
+5 -2
View File
@@ -734,8 +734,11 @@ void CGxDevice::RsPop() {
auto topOfStack = this->m_stackOffsets[this->m_stackOffsets.Count() - 1];
if (this->m_pushedStates.Count() > topOfStack) {
for (int32_t i = this->m_pushedStates.Count() - 1; i > topOfStack; i--) {
auto ps = &this->m_pushedStates[i];
auto bottomOfStack = this->m_pushedStates.Count() - 1;
auto stackSize = this->m_pushedStates.Count() - topOfStack;
for (uint32_t stackOffset = 0; stackOffset < stackSize; stackOffset++) {
auto ps = &this->m_pushedStates[bottomOfStack - stackOffset];
auto rs = &this->m_appRenderStates[ps->m_which];
if (!rs->m_dirty) {