Correctly prepare color grading as subpass programs (#5384)
This commit is contained in:
@@ -2299,8 +2299,8 @@ void PostProcessManager::colorGradingPrepareSubpass(DriverApi& driver,
|
||||
mi->commit(driver);
|
||||
|
||||
// load both variants
|
||||
material.getMaterial(mEngine)->getProgram(Variant{Variant::type_t(PostProcessVariant::TRANSLUCENT)});
|
||||
material.getMaterial(mEngine)->getProgram(Variant{Variant::type_t(PostProcessVariant::OPAQUE)});
|
||||
material.getMaterial(mEngine)->prepareProgram(Variant{Variant::type_t(PostProcessVariant::TRANSLUCENT)});
|
||||
material.getMaterial(mEngine)->prepareProgram(Variant{Variant::type_t(PostProcessVariant::OPAQUE)});
|
||||
}
|
||||
|
||||
void PostProcessManager::colorGradingSubpass(DriverApi& driver,
|
||||
@@ -2324,7 +2324,7 @@ void PostProcessManager::customResolvePrepareSubpass(DriverApi& driver, CustomRe
|
||||
FMaterialInstance* mi = material.getMaterialInstance(mEngine);
|
||||
mi->setParameter("direction", op == CustomResolveOp::COMPRESS ? 1.0f : -1.0f),
|
||||
mi->commit(driver);
|
||||
material.getMaterial(mEngine)->getProgram(Variant{});
|
||||
material.getMaterial(mEngine)->prepareProgram(Variant{});
|
||||
}
|
||||
|
||||
void PostProcessManager::customResolveSubpass(DriverApi& driver) noexcept {
|
||||
|
||||
@@ -89,7 +89,7 @@ public:
|
||||
|
||||
// getProgram returns the backend program for the material's given variant.
|
||||
// Must be called after prepareProgram().
|
||||
backend::Handle<backend::HwProgram> getProgram(Variant variant) const noexcept {
|
||||
[[nodiscard]] backend::Handle<backend::HwProgram> getProgram(Variant variant) const noexcept {
|
||||
#if FILAMENT_ENABLE_MATDBG
|
||||
assert_invariant(variant.key < VARIANT_COUNT);
|
||||
mActivePrograms.set(variant.key);
|
||||
|
||||
Reference in New Issue
Block a user