-
Notifications
You must be signed in to change notification settings - Fork 61
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
Missing faces on Nvidia Curie (Geforce 6000/7000) running with Nvidia 304 driver and ATI R300 ones (regression) #376
Comments
The bug is caused by this: Daemon/src/engine/renderer/gl_shader.cpp Lines 1085 to 1089 in f1b25a8
If a normal map is detected to embed an height map in alpha channel (wrongly or not, see #375 for a case of wrong detection), and at the same time both normal and relief mapping are disabled, the whole shader permutation is disabled because it has to be disabled (both normal and relief mapping are disabled so there is no need for those operations), but that will be the shader permutation that will be used because of the unused but detected height map in alpha channel. The bug was verified on Nvidia Geforce 6150LE, 6600 Silencer, 7500LE using Nvidia 304 driver. An easy fix is to clear the shader boolean telling the normal map embeds an height map if there is no possible usage of that normal map file at all (because both normal and relief mapping are disabled). Here is the result of such fix on the Geforce 6600 Silencer (it was also verified to fix the issue on other affected cards): |
…al and relief mapping are disabled, fix DaemonEngine#376
It's possible to reproduce the bug on any Mesa driver this way:
given the engine is compiled from |
It is confirmed ATI R300 cards are affected too, with exact same artifacts. Also, modern AMD GPU (GCN) with explicitely disabled RGTC extension on Mesa side was displaying the exact same artifacts, making the bug easy to reproduce even without requiring access to the hardware. I ❤️ Mesa. PR #377 is known to fix the issue on all known affected hardware. |
…aemonEngine#376, ref DaemonEngine#358 fixes DaemonEngine#376 issue introduced in 76cf787 makes DaemonEngine#358 working as expected
…ne#376, ref DaemonEngine#358, DaemonEngine#377 - fixes DaemonEngine#376 issue introduced in 76cf787 - makes DaemonEngine#358 working as expected - see also DaemonEngine#377 for hardening the fix for DaemonEngine#376
…al and relief mapping are disabled, also fix DaemonEngine#376
…al and relief mapping are disabled, also fix #376
Only Nvidia Curie (Geforce 6000/7000) running with Nvidia 304 driver are affected, that's a regression.
This bug is a combination of two:
The bug makes face disappear or being badly rendered.
Unvanquished 0.51:
Unvanquished 0.52:
The text was updated successfully, but these errors were encountered: