Neredeyse kesinlikle masaüstü pencere bestecisi ile ilgisi var.
Bir web tarayıcısı penceresinde oynatılan bir videoya sahipseniz ve bundan daha kötüsü, bir eklentide web tarayıcısının sayfasını şu şekilde hazırlaması gerekir:
- Pencere dekorasyonumuzu çizin (adres çubuğu, yer imleri, düğmeler vb.)
- Web sayfasının ilk bölümünü çizin.
- Videonun olması gereken yere bir "siyah kare" çizin, ancak web sayfasının ilgili kısımlarını her iki tarafına da çizin (sol ve sağ).
- Eklentiden, penceresini almak istediğini söylediği yerde çizmesini isteyin.
- Web sayfasının kalan kısmını pencerenin altına, sayfanın altına doğru çizin.
- Bu dizinin üstüne, animasyon efektlerinden sorumlu olan birleştirme pencere yöneticisi (pencereleri küçültüp büyütdüğünüzde olduğu gibi), ekrandaki her pencerenin içeriğini izlemelidir. Bunun bir parçası olarak, her şeyin Chrome'da bir olan eklenti, dahil olmak üzere bu pencere içinde çizim izlemek zorundadır dışı süreci (anlamı, başka bir işlem değil, krom ana süreç parçası) eklentisi. Kompozisyon pencere yöneticisi bunu takip etmediyse ve penceredeki her şeye "3B doku" gibi davrandıysa, eksi düğmesini tıkladığınızda pencerenin küçültülmesini görev çubuğunuza yerleştiremezsiniz.
Flash'a (veya Silverlight) videoyu tam ekran oynatmasını söylediğinizde, ne olacağı Flash'ın Chrome'a herhangi bir şey yapmasını söylemediği anlamına gelir. Aslında, tüm birleştirme pencere yöneticisi geçici olarak devre dışı bırakılabilir ve monitöre grafik oluşturmaktan sorumlu olabilecek diğer tüm programlara geçici olarak oluşturma işlemini durdurması söylenir (veya belki de çizim komutları göndermelerine izin verilir, ancak Ekrandaki gerçek etki.)
Tam ekran olmasa da grafik hattı:
Tarayıcı ve Flash / Silverlight -> kompozisyon penceresi yöneticisi -> grafik donanımı
Tam ekrandayken grafik hattı:
Flash / Silverlight -> grafik donanımı
Bu sadeleştirilmiş boru hattı ek yükü azaltır çünkü devam eden daha az tampon "kopyalama" vardır ve video işleminin tamamı şöyle görünür:
- Video içeriğini ağdan indirin.
- DRM sistemini kullanarak videonun şifresini çözün.
- Video verilerinin sıkıştırılmamış bir formata kod çözme işlemi gerçekleştirmek için sabit işlevli video kod çözme boru hattı adı verilen GPU'nun özel bir bölümünü kullanın .
- Donanım video kod çözme hattı şimdi kodu çözülmüş videoyu doğrudan grafik çerçevesine kopyalayıp, CPU / RAM'e geri göndermeden oynatabilir!
Fanlar dönüyor ve video tam olarak pencerelendiğinde daha fazla güç tüketiliyor çünkü kompozisyon penceresi yöneticisi her zaman "Tamam, video şu anda nasıl görünüyor?" Kompozit pencere yöneticisinden önce CPU’nun (ve muhtemelen RAM’de tamponlandığından) tekrar okunması gerekir, daha sonra tüm diğer birleşik verilerle (tarayıcı, görev çubuğu, vb.) birlikte grafik kartına geri yazmaya karar verir. .)
Bileşik pencere yöneticisi, normal şartlar altında, yazmak için izin verilen sistemde tek işlem nedeniyle CPU geri aktarılmasını video içeriği için soran tutmak zorunda doğrudan Video arabelleðine olan birleştirme pencere yöneticisi. Tarayıcı, video oynatıcı ve sistemdeki diğer tüm bileşenlerin, donanım ile kullanıcı alanı arasında oturan bir kapı bekçisi veya sözcüsü gibi birleşik pencere yöneticisinden geçmesi gerekir.
Bu, kısmen "efektleri" etkinleştirmek ve kısmen de güvenlik ve kararlılık nedenleriyle, programlar masaüstünü doğrudan tahrip edemediğinden (kötü amaçlı veya kötü kodlamayla); kompozisyon penceresi yöneticisi buna izin vermiyor. Ancak daha sonra, birleştirme pencere yöneticisi devre dışı bırakıldığında (Flash ve Silverlight gibi ayrıcalıklı programların isteği üzerine), birdenbire "ek yük" katmanının fazladan gitti.
Mac OS X'te kullanılan kompozit pencere yöneticisine Quartz Compositor adı verilir ve uzun süredir OS X'in bir parçası olmuştur. Quartz Extreme , yukarıda anlattığım her şeyi GPU'da yapan Kuvars bestecinin modern enkarnasyonudur (bu işlemler GPU'ya boşaltıldıkları için "ücretsiz" olmamasına rağmen, GPU hala bu kompozisyon adımlarını gerçekleştiren gücü tüketmektedir. .)
Bir programın (Flash veya Silverlight gibi) tam ekran kontrolünü tam olarak nasıl geçirebileceği ve Quartz Compositor'u geçici olarak devre dışı bırakabileceğinin geliştirici perspektifi için bu Apple geliştirici belgesine bakın .
Uzun lafın kısası: Quartz Compositor + çok sık ekran güncellemeleri (video ile saniyede 30 ila 60 kez) == yüksek CPU kullanımı. Quartz Compositor bileşenini boru hattından çıkarın ve CPU kullanımı önemli ölçüde düşer, çünkü özellikle Flash ve Silverlight donanım hızlandırmalı video oluşturma ve video kod çözme işlemlerine sahiptir.