Microsoft ve ortakları, en son HLSL Shader Model üzerinde yapılan geliştirmeler sonucunda yayınlanan 6.7 sürümünü duyurdu. Shader Model 6.7, HLSL kullanıcılarından gelen taleplere yanıt olarak doku, quads (dörtlü) ve wave (dalga) gölgelendirici özelliklerini genişletiyor.
Bu sürümdeki çalışmalar devam ediyor ve henüz nihai olarak kullanıma sunulmuş değil. Ancak uygulama ve güncellemeler DXC Github Deposunda yer alıyor. Ayrıca bu güncellemeyle birlikte birçok yenilik sunulacak.
SM 6.7, belirli doku işlemlerinin yeteneklerindeki boşlukları dolduran ve topluca Gelişmiş Doku İşlemleri olarak adlandırılan çok yönlü bir özellik koleksiyonu ekliyor. Bu isteğe bağlı bir özellik olacak.
Geliştiriciler, uzun süredir örneklenen öğelerin nasıl işlendiği konusunda daha fazla kontrol talep ediyor. Bir araya getirme işlemleri, örneklenen öğelerin tek tek kanallarını alma yeteneği sunuyor.
Current Sample ve Load işlemleri, ofsetlerinin tamsayı değerinde olmasını gerektiriyor. Programcılar, gölgelendirici derleme zamanından önce bile istedikleri ofset değerlerine karar vermek zorundaydı.
Shader Model 6.7, Sample ve Load ofseti bağımsız değişkenlerini, toplama işlemlerinde olduğu gibi değişken değerler olacak şekilde serbest bırakıyor.
Önceden SampleCmp kullanmak isteyenler, verilen doku koordinatları için donanımınız tarafından belirlenen seviyeyi kullanabiliyordu. Geliştiriciler bunu sınırlayıcı buldu ve algoritmalarına en iyi şekilde fayda sağlayan MIP düzeyini kullanma becerisini istedi. 6.7 ile istediğiniz MIP seviyesini (sıfır olmasa bile) belirtebileceksiniz.
Shader yaratıcıları, belirtilen örnek indeksleri okumak ve bunlara yazmak için bir UAV çoklu örnek doku nesnesi kullanabilecek. Bunun diğer platformlarda faydalı olduğu kanıtlandı ve yakında HLSL’de daha da fazla yetenekle kullanıma sunulacak.
Dört şeritli sonuçları sorgulamanın verimli bir yolu için her zaman bir talep vardı. Wawes (Dalgalar), bir ifadenin şeritlerinin herhangi biri veya tümü için doğru olup olmadığını döndürme yeteneğine sahip.
Quads (Dörtlüler), belirli bir ifadenin geçerli dörtlüdeki şeritlerin herhangi biri veya tümü için doğru olup olmadığını belirlemek için verimli sorgular alacak.
Yardımcı şeritler önceden wave (dalga) işlemlerine değil, yalnızca türev hesaplamalarına katkıda bulunurdu. Bu wave işlemlerinden türetilen değerlere veya kontrol akışına bağlı türev işlemlerin tanımsız sonuçlara sahip olduğu anlamına geliyordu. Shader Model 6.6 ile eklenen IsHelperLane() sorgusu ile birlikte geliştiriciler, wave op’larının yardımcı şeritlerde nasıl etkileştiği ve davrandığı üzerinde tam kontrole sahip olacak. Bu kontrol, türev işlemlerinin wave işlemlerinin varlığında güvenilir bir şekilde kullanılmasına izin verecek.
Kaynak: Technopat