Awọn ẹrọ ṣiṣe tuntun fun OpenGL ati Vulkan ti ṣafikun si GTK

Awọn olupilẹṣẹ ti ile-ikawe GTK ti kede wiwa ti awọn ẹrọ tuntun meji - “ngl” ati “vulkan”, ni lilo OpenGL (GL 3.3+ ati GLES 3.0+) ati Vulkan eya APIs. Awọn ẹrọ tuntun wa ninu itusilẹ esiperimenta ti GTK 4.13.6. Ninu ẹka GTK esiperimenta, ẹrọ ngl ti wa ni lilo nipasẹ aiyipada, ṣugbọn ti o ba jẹ idanimọ awọn iṣoro pataki ni ẹka iduroṣinṣin ti atẹle 4.14, ẹrọ imuṣiṣẹ “gl” atijọ yoo pada.

Awọn ẹrọ titun wa ni ipo bi iṣọkan ati pejọ lati ipilẹ koodu kan. Koko-ọrọ ti iṣọkan ni pe Vulkan API ni a lo gẹgẹbi ipilẹ, lori oke eyiti a ti ṣẹda ipele abstraction lọtọ fun OpenGL, ni akiyesi awọn iyatọ laarin OpenGL ati Vulkan. Ọna yii jẹ ki o ṣee ṣe lati lo awọn amayederun ti o wọpọ ni awọn ẹrọ mejeeji fun sisẹ aworan iwoye, awọn iyipada, awọn awoara caching ati awọn glyphs. Iṣọkan tun ṣe irọrun ni pataki itọju ti ipilẹ koodu ti awọn ẹrọ mejeeji ati titọju wọn titi di oni ati mimuuṣiṣẹpọ.

Ko dabi ẹrọ gl atijọ, eyiti o lo shader ti o rọrun lọtọ fun iru oju ipade kọọkan ati tun ṣe atunto data lorekore lakoko adaṣe ita, awọn enjini tuntun dipo imuṣiṣẹ aiṣedeede lo shader eka kan (ubershader) ti o tumọ data lati inu ifipamọ. . Ni fọọmu lọwọlọwọ rẹ, imuse tuntun tun wa lẹhin ti atijọ ni awọn ofin ti ipele ti awọn iṣapeye, nitori idojukọ akọkọ ni ipele lọwọlọwọ wa lori iṣẹ ti o pe ati irọrun itọju.

Awọn ẹya tuntun ti o nsọnu ninu ẹrọ gl atijọ:

  • Irọrun elegbegbe - ngbanilaaye lati tọju awọn alaye to dara ati ṣaṣeyọri awọn elegbegbe didan.
    Awọn ẹrọ ṣiṣe tuntun fun OpenGL ati Vulkan ti ṣafikun si GTK
  • Ibiyi ti awọn gradients lainidii, eyiti o le lo nọmba eyikeyi ti awọn awọ ati ilodisi-aliasing (ninu ẹrọ gl, laini laini nikan, radial ati awọn gradients conical pẹlu awọn awọ iduro 6 ni atilẹyin).
    Awọn ẹrọ ṣiṣe tuntun fun OpenGL ati Vulkan ti ṣafikun si GTK
  • Iwọn ipin, eyiti o fun ọ laaye lati ṣeto awọn iye iwọn ti kii-odidi, fun apẹẹrẹ, nigba lilo iwọn ti 125% fun window ti 1200x800, ifipamọ ti 1500x1000 yoo pin, kii ṣe 2400x1600 bi ninu ẹrọ atijọ.
  • Atilẹyin fun imọ-ẹrọ DMA-BUF fun lilo ọpọlọpọ awọn GPUs ati gbigbe awọn iṣẹ kọọkan si GPU miiran.
  • Ọpọlọpọ awọn apa Rendering ti o ni awọn iṣoro ni imuse atijọ ti ni ilọsiwaju ni deede.

Awọn idiwọn ti awọn ẹrọ tuntun pẹlu aini atilẹyin fun ipo nipasẹ awọn iye ti kii ṣe nomba (ipo ida) ati awọn apa glshader, eyiti a so pọ si awọn ẹya ti ẹrọ atijọ, ati eyiti ko ṣe pataki lẹhin fifi atilẹyin kun fun apa pẹlu awọn iboju iparada (boju) ati awoara pẹlu akoyawo. O tun mẹnuba pe o ṣeeṣe awọn iṣoro ti o ṣeeṣe pẹlu awọn awakọ eya ti o dide nitori awọn ayipada ninu ọna ti ṣiṣẹ pẹlu awọn awakọ.

Ni ọjọ iwaju, ti o da lori awoṣe isokan tuntun, ṣiṣẹda awọn ẹrọ ti n ṣatunṣe nipa lilo Irin ni macOS ati DirectX ni Windows ko yọkuro, ṣugbọn ṣiṣẹda iru awọn ẹrọ wọnyi jẹ idiju nipasẹ lilo awọn ede miiran fun awọn shaders (“ngl”. "ati" vulkan" enjini lo awọn GLSL ede, ki fun irin ati Direct yoo ni lati boya pidánpidán shaders tabi lo kan Layer da lori SPIRV-Cross irinṣẹ).

Awọn ero ọjọ iwaju pẹlu ipese atilẹyin HDR ati awọn irinṣẹ fun iṣakoso awọ ti o tọ, atilẹyin fun ipa ọna ni ẹgbẹ GPU, agbara lati ṣe awọn glyphs, sisọ ṣiṣan-sisan, ati awọn iṣapeye iṣẹ fun awọn ẹrọ agbalagba ati agbara kekere. Ni awọn oniwe-lọwọlọwọ fọọmu, awọn iṣẹ ti awọn "vulkan" engine jẹ sunmo si awọn iṣẹ ti atijọ "gl" engine. Ẹnjini “ngl” kere si ni iṣẹ si ẹrọ “gl” atijọ, ṣugbọn iṣẹ ti o wa ti to fun ṣiṣe ni 60 tabi 144 FPS. O ti ṣe yẹ pe ipo naa yoo yipada lẹhin iṣapeye.

orisun: opennet.ru

Fi ọrọìwòye kun