diff --git a/src/BC1/BC1Encoder.cpp b/src/BC1/BC1Encoder.cpp index 377415a..875924a 100644 --- a/src/BC1/BC1Encoder.cpp +++ b/src/BC1/BC1Encoder.cpp @@ -602,6 +602,7 @@ template bool BC1Encoder::RefineEndpointsLS(Color4x4 pixels, Encod return false; } + std::swap(matrix[0], matrix[3]); matrix *= Vector4(1, -1, -1, 1); matrix *= ((float)denominator / 255.0f) / det; diff --git a/src/BC1/OrderTable.h b/src/BC1/OrderTable.h index 31914fd..b94c9a3 100644 --- a/src/BC1/OrderTable.h +++ b/src/BC1/OrderTable.h @@ -74,6 +74,7 @@ template class OrderTable { if (fabs(det) < 1e-8f) { factors->at(i) = Vector4(0); } else { + std::swap(factor_matrix[0], factor_matrix[3]); factor_matrix *= Vector4(1, -1, -1, 1); factor_matrix *= (denominator / 255.0f) / det; factors->at(i) = factor_matrix;