msdn documentation ait directx 11 dokular, olumlu ve olumsuz yanlarını oluştururken DirectX 11'de programlı bir DirectX 11 doku doldurmak için birden çok yolu olduğunu açıklıyor:Programlı üç farklı yöntemlerle
(1) varsayılan kullanım dokulu bir doku oluşturma ve bellekten veriyle başlat
(2) Dokuyu dinamik kullanımla oluşturun, doku belleğine bir işaretçi almak için DeviceContext Map'i kullanın, ona yazın, sonra tamamlandığını belirtmek için Unmap'i kullanın (bu noktada tahmin ediyorum) gpu'ye kopyalanır)
(3) Dokuyı stagin ile oluştur g kullanımı ve dinamik doku ile aynı adımları izleyin, ancak bu evreleme dokusunu kullanmak için ID3D11DeviceContext.CopyResource çağrısıyla sırayla (değişmez) varsayılan veya dinamik doku doldurun. Bununla birlikte, dokümantasyon her yöntemin artılarını ve eksilerini açıklamıyor ve ben hala directx konusunda oldukça yeniyim, bu yüzden bana açık değil.
Doğrudan bu 11 biçiminde programlı olarak doku oluşturma yollarının her birinin artıları ve eksileri nelerdir?
Yan Not: Ben kendi çift ara belleğe alma yapmak zorunda böylece evreleme dokular bağlamında, içinde geri gpu dan okuma tamponlu olmadığını okudum. Fakat bunun doğru olup olmadığını ve evrelendirme dokular (hatta gerçekten ne anlama geldiğini) kullanarak yazıp yazmayacağını bilmiyorum.
İkinci taraf notu: Harita yöntemi belgelerinde, bir alt kaynaktaki verilere işaretçi gösterdiği ve bu alt kaynağa GPU erişimini reddettiği bildiriliyor. GPU, temel verileri Harita ile adlandırılmış bir dokuya erişmek istediğinde, ne yapar? Ahır? (Ben soruyorum çünkü bu artıları ve ben soruşturdu eksileri bir parçası gibi geliyor)
Öğrendiğim gibi notlar ekliyorum. Görünüşe göre, yukarıdaki (1) yöntemini kullanarak programlı olarak çok örnekli bir varsayılan doku oluşturamazsınız. –
DirectX 11'de eşleştirilecek aramada D3D11_MAP_FLAG derece belirsiz olsa da, GPU'ya eşlenen kaynağa gereksinim duyulduğunda ne yapması gerektiğini anlatıyor. Şu anda yalnızca bir bayrak belgelenmiştir ve 0 kullanımının duraklama anlamına gelip gelmediği açık değildir. –
Görünüşe göre bir D3D11_USAGE_DYNAMIC kaynağı, 1'e eşit miplevellere sahip olmalıdır. –