@@ -125,7 +125,19 @@ def check_capture(self):
125125 shaderSrcRaw = debugInfo .files [0 ].contents
126126 varsToCheck = self .parse_shader_source (shaderSrcRaw , realTestResult , test )
127127 for name , varType , expectedValue in varsToCheck :
128- debuggedValue = self .get_source_shader_var_value (trace .instInfo [- 1 ].sourceVars , name , varType , variables )
128+ debuggedValue = None
129+ countInst = len (trace .instInfo )
130+ for inst in range (countInst ):
131+ sourceVars = trace .instInfo [countInst - 1 - inst ].sourceVars
132+ try :
133+ debuggedValue = self .get_source_shader_var_value (sourceVars , name , varType , variables )
134+ except KeyError as ex :
135+ continue
136+ except rdtest .TestFailureException as ex :
137+ continue
138+ break
139+ if debuggedValue is None :
140+ raise rdtest .TestFailureException (f"Couldn't find source variable { name } { varType } " )
129141 if not rdtest .value_compare (expectedValue , debuggedValue ):
130142 raise rdtest .TestFailureException (f"'{ name } ' { varType } debugger { debuggedValue } doesn't match expected { expectedValue } " )
131143 rdtest .log .success (f"{ len (varsToCheck )} source variables matched as expected" )
@@ -184,7 +196,19 @@ def check_capture(self):
184196 varsToCheck = self .parse_shader_source (shaderSrcRaw , realTestResult , test )
185197 try :
186198 for name , varType , expectedValue in varsToCheck :
187- debuggedValue = self .get_source_shader_var_value (trace .instInfo [- 1 ].sourceVars , name , varType , variables )
199+ debuggedValue = None
200+ countInst = len (trace .instInfo )
201+ for inst in range (countInst ):
202+ sourceVars = trace .instInfo [countInst - 1 - inst ].sourceVars
203+ try :
204+ debuggedValue = self .get_source_shader_var_value (sourceVars , name , varType , variables )
205+ except KeyError as ex :
206+ continue
207+ except rdtest .TestFailureException as ex :
208+ continue
209+ break
210+ if debuggedValue is None :
211+ raise rdtest .TestFailureException (f"Couldn't find source variable { name } { varType } " )
188212 if not rdtest .value_compare (expectedValue , debuggedValue ):
189213 raise rdtest .TestFailureException (f"'{ name } ' { varType } debugger { debuggedValue } doesn't match expected { expectedValue } " )
190214 rdtest .log .success (f"{ len (varsToCheck )} source variables matched as expected" )
0 commit comments