Posts: 86 from 2020/12/24
This comes down to an issue I asked many moons ago but seems to be a forgotten email....
And for what I check now, it "could" be also related when effects as
doublevision/berseker/grabber, etc are applied (probably others).
r_skippostprocess is checked in draw_common.cpp/RB_STD_DrawShaderPasses. After that if renderer is ARB2, copyframebuffer is called.
That function ("copyframebuffer") is in image_load.cpp.
At image_load/copyframebuffer, opengl functions (readbuffer, copyteximage2d, etc) are called: Something's going on with those.
Ok. What it has to do with doublevision/grabber and so ?
Well, at game/PlayerView.cpp, those visual effects call "capturerendertoimage".
At rendersystemsystem.cpp is were capturerendertoimage is located and what it does is flag commandId with "RC_COPY_RENDER".
Further down the line the check for commanId is at tr_backend.cpp/RC_ExecuteBackEndPrograms.
When "RC_COPY_RENDER" is checked in the loop, it calls RB_CopyRender. And RC_CopyRender calls "copyframebuffer".
So now we have two places were copyframebuffer does "wrong" whatever ARB render is in use.
Edit: Postprocess also affects all renders.[ Edited by Cowcat 11.04.2023 - 13:37 ]