Brimstone
Thanks for the detailed report. I'll look into this, but it would help if you could share your dxdiag info (search for dxdiag, run it, then click the save all information button at the bottom.
amazoc(Q :: What would happen in cl_pred_optimize 0 ,Would it fail to obtain network data in these "client-server offline moments " and missaccurately represent the game status in each of these events causing jittery jerky gameplay ,how prediction would be delayed or affected?).
I guess it would be less resource intensive and could release some frames.
cl_pred_optimize doesn't affect if you predict or not, it controls how much prediction data you reuse if there's no new information from the server, even if the server sends you an update. If you have it at 0, it will repredict everything all over again, even if it has no new information from the server to change the prediction result. 1 will prevent repredictions when you don't get new server information, and 2, in addition to enabling 1, will also prevent repredictions on information that confirms your prediction had no errors. And no, setting this to 1 will not resynchronize with the server, because it only does that if you have errors, regardless of prediction optimizations. So in the cases where 2 would occur, it would not resynchronize if you had 2 off.
Also, I think you misunderstand prediction, and my bad for not fully explaining it earlier. It isn't used for when you lose connection to the server or anything, it is used so your player and weapons react instantly to your keyboard and mouse, and the resultant actions are smooth (like moving forward, your player will move forward smoothly instead of the increments you receive data from the server), because ping and server update rate will delay when you get new updates. And I should emphasize, this only affects your player, no one else.
amazocthe optimizations that takes place when frames are higher than updaterate(66) are way more accurate representations of current game than the optimizations that occur when client is not getting network packets from server and reusing recent packets as per pred_optimize 1 bcoz packets from frames in the 1st situation contain more legitimate positional info.
It isn't about accuracy, it is about repredicting with the same information again, which isn't very useful. So, the optimizations skip repredicting based on unchanged information.
amazocWhat I understand is that "no-errors" in cl_pred_optimize 2 means that the reused old packet with cl_pred_optimize 1 is considered to be in the range to be closely accurate to new data and accepted, skipping prediction and itself prediction resulting to be true as pointed , although still considered a bit innaccurate representation based on the reddit conversation. So what would happen if the last info is considered not-error free?I think in other words ,How repredicting works ? So following reddit post ,forcing to repredict even though its still fps expensive in order to get more "perfect-close position wise-" information might be acquired with cl_pred_optimized 1 ,but based on your cl_pred_optimized 2 statement it does what .._optimize 1 does and when server does send packets,I though cl_pred_optimized 2 was based as added condition where only situation the server does not send packets . Kinda confused.
Prediction optimization 1 and 2 are two different cases that don't happen together. 1 happens when the server doesn't give you new information about your player's position/state. 2 happens when it does give you new information about your player's position/state but it doesn't tell your client that its prediction was wrong. What I meant by 2 doing 1 is that when you have pred_optimize 2, it also enables pred_optimize 1.
What Mao-C said is wrong. Synchronization is not done with new data if there were no errors anyway. So, with cl_pred_optimize 1, you would be repredicting with the same data, if you had no errors.
If there are errors, prediction optimization does not apply and does not affect it.