Ren mentioned in lecture that this highlighted portion of red code SHOULD actually take in input, namely our input "wo". In other words, we want to know the wi and pdf for a given output direction wo.
Thanks for the comment! However I think BRDF needs to take both wi and wo as arguments. Also in this case shouldn't it be wo rather than wi that is fixed for brdf to sample from? Since we already know which outgoing direction we want to evaluate and are going to sample some "random" wi to get the result?
I think here it is wo that is fixed. We sample wi accordingly.
I think I agree with the previous comment, by fixing wo since we know the outgoing direction, we can smartly sample wi in a way that is advantageous for us by using the monte carlo integration method. We can use the BRDF function to get a pdf that follows the general curvature which would allow for a better estimate of the integral in fewer samples.