Correctly prepare color grading as subpass programs (#5384)

This commit is contained in:
Ben Doherty
2022-03-30 23:25:27 +00:00
committed by GitHub
parent 604d3e34a4
commit ffe4b7390d
2 changed files with 4 additions and 4 deletions

View File

@@ -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 {

View File

@@ -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);