Jedna linijka kodu potężnie poprawi wydajność kart graficznych
Wygląda na to, że pisanie sterowników może być trudniejsze od tworzenia sprzętu. Jeden prosty błąd sprawił, że karty graficzne Intel Arc były znacznie wolniejsze niż powinny. Na szczęście problem udało się rozwiązać.

Pierwsza desktopowa karta graficzna Intela pokazana została światu nieco ponad miesiąc temu, ale dopiero niedawno trafiła do sprzedaży. Mowa oczywiście o modelu Intel Arc A380, który jak na razie sprzedawany jest wyłącznie w Chinach i to tylko w wersji od jednego producenta - chińskiej firmy GUNNIR.
Sam sprzęt jest dobry, to sterowniki są tragedią
Wstępny odbiór dziecka Niebieskich jest mocno mieszany. O ile wydajność jest na poziomie konkurencji, tak nie jest ona utrzymywana we wszystkich grach. Co gorsza sterowniki przypominają wersję beta, ciągle racząc pierwszych recenzentów poważnymi błędami i problemami ze stabilnością.



Wygląda jednak na to, że w samym sprzęcie - czyli kartach graficznych Intel Arc Alchemist - tkwi spory potencjał. Jak informuje zagraniczna redakcja Tom's Hardware jedna linijka kodu poprawiła wydajność w ray tracingu praktycznie 100x. To nie jest ani żart, ani wyolbrzymienie. To słowa programisty.
Poprawka do otwartego sterownika Intel Mesa Vulkan wprowadzona została przez Lionela Landwerlina, inżyniera sterowników graficznych Intela dla Linuxa, w miniony czwartek. Mesa 22.2, która zawiera nowy kod, dostępna powinna być dla użytkowników końcowych pod koniec sierpnia.
Zabrakło jednej linijki - "ANV_BO_ALLOC_LOCAL_MEM"
Błąd był banalny, a przez to był łatwy do przeoczenia i jest zrozumiały nawet przez osoby, które nie zajmują się na co dzień pisaniem oprogramowania. W skrócie sterownik powinien zawsze upewniać się, że przestrzeń tymczasowo wykorzystywana do obliczeń dot. śledzenia promieni znajduje się w pamięci lokalnej, tj. bardzo szybkim VRAM-ie znajdującym się na laminacie karty graficznej. Nie robił tego.
Niestety, przez brakującą linijkę kodu, sterownik przenosił dane dotyczące ray tracingu do pamięci systemowej, potem do rdzenia karty i potem znowu do pamięci systemowej (i tak za każdym razem). Ta zaś jest bardzo wolna, co po prostu sztucznie ograniczało wydajność w przypadku śledzenia promieni.