diff --git a/src/ipa/simple/algorithms/ccm.cpp b/src/ipa/simple/algorithms/ccm.cpp
index d7d3dda76..e05e5bc28 100644
--- a/src/ipa/simple/algorithms/ccm.cpp
+++ b/src/ipa/simple/algorithms/ccm.cpp
@@ -94,8 +94,7 @@ void Ccm::prepare(IPAContext &context, const uint32_t frame,
 	if (frame > 0 &&
 	    utils::abs_diff(ct, lastCt_) < kTemperatureThreshold &&
 	    saturation == lastSaturation_) {
-		frameContext.ccm = context.activeState.ccm.ccm;
-		context.activeState.ccm.changed = false;
+		frameContext.ccm = context.activeState.ccm;
 		return;
 	}
 
@@ -105,9 +104,9 @@ void Ccm::prepare(IPAContext &context, const uint32_t frame,
 	if (saturation)
 		applySaturation(ccm, saturation.value());
 
-	context.activeState.ccm.ccm = ccm;
+	context.activeState.ccm = ccm;
 	frameContext.saturation = saturation;
-	context.activeState.ccm.changed = true;
+	context.activeState.matrixChanged = true;
 	frameContext.ccm = ccm;
 }
 
diff --git a/src/ipa/simple/algorithms/lut.cpp b/src/ipa/simple/algorithms/lut.cpp
index 54cb804e7..c19b34482 100644
--- a/src/ipa/simple/algorithms/lut.cpp
+++ b/src/ipa/simple/algorithms/lut.cpp
@@ -127,11 +127,11 @@ void Lut::prepare(IPAContext &context,
 			params->green[i] = gammaTable[static_cast<unsigned int>(lutGains.g())];
 			params->blue[i] = gammaTable[static_cast<unsigned int>(lutGains.b())];
 		}
-	} else if (context.activeState.ccm.changed || gammaUpdateNeeded) {
+	} else if (context.activeState.matrixChanged || gammaUpdateNeeded) {
 		Matrix<float, 3, 3> gainCcm = { { gains.r(), 0, 0,
 						  0, gains.g(), 0,
 						  0, 0, gains.b() } };
-		auto ccm = context.activeState.ccm.ccm * gainCcm;
+		auto ccm = context.activeState.ccm * gainCcm;
 		auto &red = params->redCcm;
 		auto &green = params->greenCcm;
 		auto &blue = params->blueCcm;
@@ -150,6 +150,7 @@ void Lut::prepare(IPAContext &context,
 				params->gammaLut[i] = gammaTable[i / div];
 			}
 		}
+		context.activeState.matrixChanged = false;
 	}
 
 	params->gamma = context.configuration.gamma;
diff --git a/src/ipa/simple/ipa_context.h b/src/ipa/simple/ipa_context.h
index 74e77c841..ea1852cd4 100644
--- a/src/ipa/simple/ipa_context.h
+++ b/src/ipa/simple/ipa_context.h
@@ -62,10 +62,8 @@ struct IPAActiveState {
 		double contrastExp;
 	} gamma;
 
-	struct {
-		Matrix<float, 3, 3> ccm;
-		bool changed;
-	} ccm;
+	Matrix<float, 3, 3> ccm;
+	bool matrixChanged = false;
 
 	struct {
 		/* 0..2 range, 1.0 = normal */
