New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
some pending renderer regressions introduced in alpha 38 and alpha 40 #799
Comments
|
For information, But it was already true in 0.37.0 and it never prevented the map to be rendered. |
|
How you can test it:
|
|
Lol, between 0.37 and 0.38 there is a commit 866a9e5 that said “Remove a bunch of unused renderer stuff” and “Remove the ET fog”, but the fun thing is the fog is still there after this commit and still there in 0.38.0, and nothing else is missing, so the fog in this map does not use the ET fog. So, yes, that were plenty of unused code. 😛 |
|
So, the first issue (the textures disappearing) seems to have been introduced in 3792f29 “Remove unused warnings”. But the deleted code not only remove warnings in case of error, it also delete the fallbacks. When I blindly revert this commit, that fixes the ground textures (the trees are still broken), it's exactly this change: @@ -1850,12 +1819,6 @@ static qboolean ParseStage( shaderStage_t *stage, char **text )
stage->forceHighQuality = qtrue;
stage->overrideNoPicMip = qtrue;
}
- // detail
- else if ( !Q_stricmp( token, "detail" ) )
- {
- ri.Printf( PRINT_WARNING, "WARNING: detail keyword not supported in shader '%s'\n", shader.name );
- continue;
- }The main thing is the But the worst thing is the other issues, like the tree issue (introduced in same release), or the fog and skyboxes issue introduced in 0.40, there is no fallback and no error message. It reminds my issue #776 (missing texture but no warning message), in the case of the fog, skybox and tree issue spotted in this thread, a mapper get the worst thing: a completely silent failure. Having a shader failure with an error message is ok, having a shader fallback with a warning message is ok, but having a shader failure without any message is the worst case… I'm thinking about the Xonotic guys who try to port their game on the daemon engine, they will have plenty of issues like that, how these cases must be handled?
@Amanieu (since you wrote the commit I use as an example) @Kangz (since you wrote many commits like this one), @gimhael (since you're the renderer guy), what do you think about these questions? |
|
And if in some case it's not possible to |
|
Just to say on current git the fog is fixed: Since #939, this an easy way to load the railgun map: # install etmain data
pimi.sh etmain
# get basic layout
mkdir -p ~/.unvanquished/game/layouts/railgun
wget http://dl.illwieckz.net/b/unvanquished/bugs/etmain-regression/railgun/spawn.dat \
-O ~/.unvanquished/game/layouts/railgun/spawn.dat
# run unvanquished
./daemon -pakpath ~/.etlegacy/etmain -set fs_legacypaks 1 +devmap railgun spawn(get pimi there, that's a tool to download Wolf:ET paks) |
When an unknown keyword is found in a shader, the parser displays a warning, drops the current line but returns false, invalidating the whole shader, which is not a warning behavior. This change makes the shader parsing continue after the warning. If the shader must not continue, the parser must not raises a warning but an error.
…hed#799 When an unknown keyword is found in a shader, the parser displays a warning, drops the current line but returns false, invalidating the whole shader, which is not a warning behavior. This change makes the shader parsing continue after the warning. If the shader must not continue, the parser must not raises a warning but an error.
…hed#799 When an unknown keyword is found in a shader, the parser displays a warning, drops the current line but returns false, invalidating the whole shader, which is not a warning behavior. This change makes the shader parsing continue after the warning. If the shader must not continue, the parser must not raises a warning but an error. It was the behavior before the refactoring of this part.
|
See #966 When the warning does not invalidate the shader, this is how the map is rendered on daemon: There is still an issue on the tree texture (looks like an untextured object without fallback). Same for that little object on the foreground. |
|
For the tree texture issue, they look like nothing is rendered: I chose to study this particular shader: The shader code is: I suspect the implicitMask code. |
When an unknown keyword is found in a shader, the parser displays a warning, drops the current line but returns false, invalidating the whole shader, which is not a warning behavior. This change makes the shader parsing continue after the warning. If the shader must not continue, the parser must not raises a warning but an error. It was the behavior before the refactoring of this part.
|
@illwieckz does 2ad2583 fix this? |
|
I will try next week but from my memories it only fixes the ground texturing, not the tree texturing.
|
|
The “disappearing tree” bug was introduced in commit e570876. Badly this commit also introduced a bug that makes dæmon segfaults at map load. So you need commit 98ea7a9 to be able to run the game. So the bug can also in that other commit or a combination of these twos. git checkout 6dbb61db05cdc76470c95271ea65edd1789c6519
make -j$(nproc)
./daemonIt works It does not work |
|
I verified that the "falling snow" effect was already missing in unvanquished 0.6.0 (the older build I have) so it probably wasn't there at all. It would be cool to know if it's a bug like the missing optional keyword invalidating the whole shader or if it's because of an unsupported feature. There is many nice snow/rain effects in some wolfet or quakelive maps that does not work on dæmon, but that does not looks like a regression. |
|
@illwieckz can you compress this issue (that is, state briefly what is left to do at this point and update the issue title to reflect that)? |
|
So, after the deep rewrite of many things in the renderer the last months, all the regressions reported in this thread are now fixed. No one will never know what was broken and no one cares, some large pieces of code were simply rewritten from scratch in a way it sounds correct and original pieces were just nuked without any regret. There is still be some bugs remaining, like some translucent texture being rendered above the fog (maybe related to DaemonEngine/Daemon#77 ?): Or some edges going the void way, that may be related to fog too, as it looks like there is small offset between fog and non-fog: But those are other bugs. So this issue can be closed. Yipiie. |
|
The fog offset issue was fixed by DaemonEngine/Daemon#287 The only remaining bugs in that map are:
|















Hi, these regressions are not spotted by current unvanquished assets, but this foreign assets show things that worked before and are now broken, so unvanquished things can break in the future.
Only the snow particle is missing (perhaps it never worked).
Many surface shaders are broken, trees are broken.
The fog is broken and the skybox too (the white background is the void).
The text was updated successfully, but these errors were encountered: