Mam wrażenie, że sprawdzarka potrafi zachowywać się dość dziwnie względem dokładności liczb zmiennoprzecinkowych (chyba).
Zgłoszenia o ID 619429, 619430 i 619431 różnią się wyłącznie kolejnością dwóch niezwiązanych ze sobą linijek. Zdiffowanie listingu instrukcji SPIR-V potwierdza, że nie zachodzi żadna magiczna optymalizacja, a jedynie przesuwa się kolejność wykonania trzech instrukcji. Mimo to zachodzi różnica w uzyskanym wyniku RMSE. Różnicy tej nie potrafię sobie w żaden racjonalny sposób wytłumaczyć (operacje na poszczególnych danych zachodzą w tej samej kolejności, różnica tkwi jedynie w kolejności brania tych danych pod uwagę - zdecydowanie nie wygląda to na standardowy problem akumulacji błędu zmiennoprzecinkowego przy obliczeniach).
Ten sam przypadek zachodzi w zgłoszeniach 619436 i 619437. Jedyna zmiana między nimi to przesunięcie instrukcji texture(iChannel1, TexCoords);
do zmiennej zdefiniowanej linijkę wyżej. Wynik powinien pozostać taki sam - a jednak RMSE się zmienia.
Oba przypadki dają takie same pary wyników, różnica wynika więc pewnie z tego samego problemu.
Jeśli miałbym zgadywać, podejrzewałbym za winowajcę obsługę rejestrów... no ale na tym kończy się to, co mogę tu zdziałać sam 😉