Lock URP runtime invalidation to asset and renderer data state
This commit is contained in:
@@ -4303,6 +4303,66 @@ TEST_F(
|
||||
EXPECT_EQ(observedInvalidateRendererCallCount, 1);
|
||||
}
|
||||
|
||||
TEST_F(
|
||||
MonoScriptRuntimeTest,
|
||||
ManagedUniversalRenderPipelineAssetTracksRendererDataAndAssetSettingMutationsThroughRuntimeVersion) {
|
||||
Scene* runtimeScene =
|
||||
CreateScene("ManagedUniversalConfigInvalidationScene");
|
||||
GameObject* selectionObject =
|
||||
runtimeScene->CreateGameObject(
|
||||
"ManagedUniversalConfigInvalidationSelection");
|
||||
ScriptComponent* selectionScript =
|
||||
AddScript(
|
||||
selectionObject,
|
||||
"Gameplay",
|
||||
"ManagedUniversalConfigInvalidationRuntimeSelectionProbe");
|
||||
ASSERT_NE(selectionScript, nullptr);
|
||||
GameObject* observationObject =
|
||||
runtimeScene->CreateGameObject(
|
||||
"ManagedUniversalConfigInvalidationObservation");
|
||||
ScriptComponent* observationScript =
|
||||
AddScript(
|
||||
observationObject,
|
||||
"Gameplay",
|
||||
"ManagedUniversalConfigInvalidationObservationProbe");
|
||||
ASSERT_NE(observationScript, nullptr);
|
||||
|
||||
engine->OnRuntimeStart(runtimeScene);
|
||||
engine->OnUpdate(0.016f);
|
||||
|
||||
EXPECT_TRUE(runtime->GetLastError().empty()) << runtime->GetLastError();
|
||||
|
||||
int observedRuntimeResourceVersionBeforeMutation = 0;
|
||||
int observedRuntimeResourceVersionAfterRendererDataMutation = 0;
|
||||
int observedRuntimeResourceVersionAfterAssetSettingsMutation = 0;
|
||||
bool observedMutationRan = false;
|
||||
EXPECT_TRUE(runtime->TryGetFieldValue(
|
||||
observationScript,
|
||||
"ObservedRuntimeResourceVersionBeforeMutation",
|
||||
observedRuntimeResourceVersionBeforeMutation));
|
||||
EXPECT_TRUE(runtime->TryGetFieldValue(
|
||||
observationScript,
|
||||
"ObservedRuntimeResourceVersionAfterRendererDataMutation",
|
||||
observedRuntimeResourceVersionAfterRendererDataMutation));
|
||||
EXPECT_TRUE(runtime->TryGetFieldValue(
|
||||
observationScript,
|
||||
"ObservedRuntimeResourceVersionAfterAssetSettingsMutation",
|
||||
observedRuntimeResourceVersionAfterAssetSettingsMutation));
|
||||
EXPECT_TRUE(runtime->TryGetFieldValue(
|
||||
observationScript,
|
||||
"ObservedMutationRan",
|
||||
observedMutationRan));
|
||||
|
||||
EXPECT_TRUE(observedMutationRan);
|
||||
EXPECT_GT(observedRuntimeResourceVersionBeforeMutation, 0);
|
||||
EXPECT_EQ(
|
||||
observedRuntimeResourceVersionAfterRendererDataMutation,
|
||||
observedRuntimeResourceVersionBeforeMutation + 1);
|
||||
EXPECT_EQ(
|
||||
observedRuntimeResourceVersionAfterAssetSettingsMutation,
|
||||
observedRuntimeResourceVersionAfterRendererDataMutation + 1);
|
||||
}
|
||||
|
||||
TEST_F(
|
||||
MonoScriptRuntimeTest,
|
||||
ManagedRenderPipelineBridgeRebuildsPipelineAfterAssetInvalidation) {
|
||||
|
||||
Reference in New Issue
Block a user