View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0006271||The Dark Mod||Graphics||public||12.03.2023 16:31||19.03.2023 10:47|
|Product Version||TDM 2.11|
|Target Version||TDM 2.12|
|Summary||0006271: Merge old and new backend|
|Description||The plan is to get a single code path again:|
1) it would use uniforms like the old backend
2) it would be split into classes and methods like the new backend.
|Tags||No tags attached.|
I started with some cleanup, removing dead experiments and totally obsolete code:
r10296 Deleted manylight interaction code: both in old and new backend.
r10297 Deleted INATTR_POSITION macro in shaders.
Then I converted the new backend to using uniforms, like in the old one.
The new backend source is so clean, and the DrawBatchExecutor's abstraction was so good, that it took me a few days to backport everything to single uniforms!
r10298 DepthStage of new backend converted to single uniforms.
r10299 Added DepthBoundsTest::Update method.
r10300 Converted stencil shadow stage in new backend to single uniforms.
r10301 Converted shadow map stage from new backend to single uniforms.
r10302 Converted interaction stage of new backend to single uniforms.
Finally, the underlying tech of new backend is deleted:
r10303 Deleted DrawBatchExecutor.
What I plan next:
1) Refactor shadow maps stage so that it can work in non-singlepass mode (which is default now).
2) Try to delete as much duplicate code from the old backend as I can.
3) Further refactor single-pass shadow maps so that they handle noselfshadow properly, then make them default.
4) Try to remove some usages of backEnd global variable in the new backend: the individual stages should get all his data is parameters.
5) See if I can convert more code form old backend into the new architecture.
Some more work with cleaning code of shadow map state:
r10304 Deleted some commented code in shadow map stage.
r10305 Don't forward declare nested enum.
r10306 Support alpha-tested shadow mapping under r_shadowMapAlphaTested cvar.
r10307 One more Linux build fix.
I switched non-singlepass shadow maps to the new code too:
r10308 Refactoring ShadowMapStage for future single-light support.
r10309 Now ShadowMapStage code works even in "r_shadowMapSinglePass 0" mode.
And then supported local/global shadows division:
r10310 Refactoring around InteractionStage + RenderBackend.
r10311 Now single-pass shadow maps respect noselfshadow setting.
Now singlepass shadow maps should have no downside compared to non-singlepass ones.
|12.03.2023 16:31||stgatilov||New Issue|
|12.03.2023 16:31||stgatilov||Status||new => assigned|
|12.03.2023 16:31||stgatilov||Assigned To||=> stgatilov|
|12.03.2023 16:31||stgatilov||Relationship added||related to 0005285|
|12.03.2023 16:31||stgatilov||Additional Information Updated|
|17.03.2023 19:28||stgatilov||Note Added: 0015974|
|17.03.2023 19:31||stgatilov||Note Added: 0015975|
|18.03.2023 10:28||stgatilov||Note Added: 0015976|
|19.03.2023 10:45||stgatilov||Note Edited: 0015976|
|19.03.2023 10:47||stgatilov||Note Added: 0015977|