OpenGL болон Vulkan-д зориулсан шинэ дүрслэх хөдөлгүүрүүд GTK-д нэмэгдсэн

GTK номын сангийн хөгжүүлэгчид OpenGL (GL 3.3+ ба GLES 3.0+) болон Vulkan график API-г ашиглан "ngl" ба "vulkan" гэсэн хоёр шинэ дүрс гаргах хөдөлгүүртэй болсноо зарлав. GTK 4.13.6-ийн туршилтын хувилбарт шинэ хөдөлгүүрүүдийг оруулсан болно. Туршилтын GTK салбарт одоо ngl хөдөлгүүрийг анхдагч байдлаар ашиглаж байгаа боловч дараагийн тогтвортой салбар 4.14-д чухал асуудал илэрсэн тохиолдолд хуучин "gl" дүрслэх хөдөлгүүрийг буцаах болно.

Шинэ хөдөлгүүрүүдийг нэгдмэл байдлаар байрлуулж, нэг кодын үндсэн дээр угсардаг. Нэгдлийн мөн чанар нь Vulkan API-ийг үндэс болгон ашигладаг бөгөөд үүний дээр OpenGL ба Вулкан хоёрын ялгааг харгалзан OpenGL-д зориулж тусдаа хийсвэрлэх түвшинг бий болгосон явдал юм. Энэхүү арга барил нь үзэгдлийн график, хувиргалт, кэшийн бүтэц, глифийг боловсруулахад хоёр хөдөлгүүрт нийтлэг дэд бүтцийг ашиглах боломжийг олгосон. Нэгтгэх нь хоёр хөдөлгүүрийн кодын баазын засвар үйлчилгээ, тэдгээрийг шинэчилж, синхрончлох ажлыг ихээхэн хялбаршуулсан.

Хуучин gl хөдөлгүүрээс ялгаатай нь дүрслэх зангилааны төрөл тус бүрд тусад нь энгийн шэйдер ашиглаж, дэлгэцээс гадуур дүрслэх явцад өгөгдлийг үе үе дахин эрэмбэлдэг байсан бол шинэ хөдөлгүүрүүд нь дэлгэцээс гадуур дүрслэхийн оронд буферээс өгөгдлийг тайлбарладаг цогц шэйдер (ubershader) ашигладаг. . Одоогийн байдлаар шинэ хэрэгжилт нь оновчлолын түвшний хувьд хуучин хувилбараасаа хоцорч байгаа тул одоогийн үе шатанд гол анхаарал нь зөв ажиллах, засвар үйлчилгээ хийхэд хялбар байх явдал юм.

Хуучин gl хөдөлгүүрт байхгүй шинэ боломжууд:

  • Контурыг тэгшитгэх - нарийн ширийн зүйлийг хадгалж, илүү гөлгөр контур гаргах боломжийг танд олгоно.
    OpenGL болон Vulkan-д зориулсан шинэ дүрслэх хөдөлгүүрүүд GTK-д нэмэгдсэн
  • Дурын градиент үүсгэх, ямар ч тооны өнгө, эсрэг заалтыг ашиглах боломжтой (gl хөдөлгүүрт зөвхөн 6 зогсолтын өнгө бүхий шугаман, радиаль болон конус хэлбэрийн градиентийг дэмжсэн).
    OpenGL болон Vulkan-д зориулсан шинэ дүрслэх хөдөлгүүрүүд GTK-д нэмэгдсэн
  • Бүхэл бус масштабын утгыг тохируулах боломжийг олгодог бутархай хуваарь, жишээлбэл, 125x1200 хэмжээтэй цонхны хувьд 800% -ийн масштабыг ашиглах үед хуучин хөдөлгүүр шиг 1500x1000 биш харин 2400x1600 буфер хуваарилагдах болно.
  • Олон GPU ашиглах, бие даасан үйлдлүүдийг өөр GPU руу ачаалах DMA-BUF технологийн дэмжлэг.
  • Хуучин хэрэгжилтэд асуудалтай байсан олон дүрсний зангилаанууд зөв боловсруулагдсан.

Шинэ хөдөлгүүрүүдийн хязгаарлалтууд нь хуучин хөдөлгүүрийн онцлогтой нягт уялдаатай бүхэл бус утгууд (бутархай байрлал) болон glshader зангилаануудаар байршлыг тогтооход дэмжлэг байхгүй, дэмжлэг нэмсэний дараа шаардлагагүй болсон. маск (маск) бүхий зангилаа, ил тод байдал бүхий бүтэцтэй. Драйверуудтай ажиллах аргын өөрчлөлтөөс болж график драйверуудтай холбоотой асуудал үүсч болзошгүйг мөн дурьдсан.

Ирээдүйд шинэ нэгдсэн загвар дээр тулгуурлан macOS дээр Metal болон Windows дээр DirectX ашиглан дүрслэх хөдөлгүүрийг бий болгохыг үгүйсгэхгүй, гэхдээ ийм хөдөлгүүрийг бий болгох нь бусад хэлээр шэйдер ашиглахад төвөгтэй байдаг ("ngl"). ” болон “vulkan” хөдөлгүүрүүд нь GLSL хэлийг ашигладаг тул Metal болон Direct-ийн хувьд шэйдерүүдийг хуулбарлах эсвэл SPIRV-Cross хэрэгсэлд суурилсан давхарга ашиглах шаардлагатай болно).

Ирээдүйн төлөвлөгөөнд HDR-ийн дэмжлэг, өнгөний зөв менежментийн хэрэгслээр хангах, GPU талд Path rendering-д дэмжлэг үзүүлэх, glyphs дүрслэх чадвар, урсгалаас гадуур дүрслэх, хуучин болон бага чадалтай төхөөрөмжүүдийн гүйцэтгэлийг оновчтой болгох зэрэг багтана. Одоогийн байдлаар "vulkan" хөдөлгүүрийн гүйцэтгэл нь хуучин "gl" хөдөлгүүрийн гүйцэтгэлтэй ойролцоо байна. "ngl" хөдөлгүүр нь хуучин "gl" хөдөлгүүрээс гүйцэтгэлийн хувьд доогуур боловч боломжит гүйцэтгэл нь 60 эсвэл 144 FPS дээр үзүүлэхэд хангалттай. Оновчлолын дараа нөхцөл байдал өөрчлөгдөх төлөвтэй байна.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх