Âûïóñê ñïåöèôèêàöèè OpenGL 4.6 |
Êîíñîðöèóì Khronos, çàíèìàþùèéñÿ ðàçðàáîòêîé ãðàôè÷åñêèõ ñòàíäàðòîâ, îòìåòèë äâàäöàòèïÿòèëåòèå ñ ìîìåíòà îñíîâàíèÿ ñòàíäàðòà OpenGL ïóáëèêàöèåé íîâîé âåðñèè ñïåöèôèêàöèè OpenGL 4.6, êîòîðàÿ ñòàëà ïåðâûì îáíîâëåíèåì ñ ìîìåíòà ïîÿâëåíèÿ ãðàôè÷åñêîãî API Vulkan, ïðèøåäøåãî íà ñìåíó OpenGL. Äëÿ îöåíêè âîçìîæíîñòåé íîâîé âåðñèè API íà ðåàëüíîì îáîðóäîâàíèè êîìïàíèÿ NVIDIA âûïóñòèëà áåòà-âåðñèþ (381.26.11) äðàéâåðà ñ ïîääåðæêîé OpenGL 4.6. Ñîîáùàåòñÿ, ÷òî ëþáûå GPU NVIDIA äëÿ êîòîðûõ óæå èìååòñÿ ïîääåðæêà OpenGL 4.5 ÿâëÿþòñÿ ñîâìåñòèìûìè è ñ OpenGL 4.6. Èç îòêðûòûõ äðàéâåðîâ ê ïîääåðæêå íîâîé ñïåöèôèêàöèè íàèáîëåå áëèçêè äðàéâåðû Intel i965, Nouveau (nvc0) è RadeonSI, â êîòîðûõ ðåàëèçîâàíî 5 èç 11 íîâûõ ðàñøèðåíèé OpenGL 4.6.
Íàèáîëåå èíòåðåñíûì íîâøåñòâîì OpenGL 4.6 ÿâëÿåòñÿ âîçìîæíîñòü îáðàáîòêè ïåðåíîñèìîãî ïðîìåæóòî÷íîãî ïðåäñòàâëåíèÿ øåéäåðîâ SPIR-V, èçíà÷àëüíî ðàçðàáîòàííîãî äëÿ API Vulkan. SPIR-V óíèâåðñàëåí äëÿ âñåõ ïëàòôîðì è ìîæåò ïðèìåíÿòüñÿ êàê äëÿ ãðàôèêè, òàê è äëÿ ïàðàëëåëüíûõ âû÷èñëåíèé. SPIR-V ïîäðàçóìåâàåò âûäåëåíèå îòäåëüíîé ôàçû êîìïèëÿöèè øåéäåðîâ â ïðîìåæóòî÷íîå ïðåäñòàâëåíèå, ÷òî ïîçâîëÿåò ñîçäàâàòü ôðîíòýíäû äëÿ ðàçëè÷íûõ âûñîêîóðîâíåâûõ ÿçûêîâ. Íà îñíîâå ðàçëè÷íûõ âûñîêîóðîâíåâûõ ðåàëèçàöèé îòäåëüíî ãåíåðèðóåòñÿ åäèíûé ïðîìåæóòî÷íûé êîä, êîòîðûé ìîæåò èñïîëüçîâàòüñÿ äðàéâåðàìè OpenGL, Vulkan è OpenCL áåç ïðèìåíåíèÿ âñòðîåííîãî êîìïèëÿòîðà øåéäåðîâ. Èçáàâëåíèå äðàéâåðà îò êîìïèëÿòîðà øåéäåðîâ ñóùåñòâåííî óïðîùàåò äðàéâåð, óñêîðÿåò çàãðóçêó êîäà äëÿ GPU è äåëàåò äðàéâåð íåçàâèñèìûì îò âûñîêîóðîâíåâûõ ÿçûêîâ ðàçðàáîòêè ïðîãðàìì äëÿ GPU. Äëÿ ïðåîáðàçîâàíèÿ øåéäåðîâ íà ÿçûêå GLSL â ïðåäñòàâëåíèå SPIR-V ðàçâèâàåòñÿ êîìïèëÿòîð glslang, â êîòîðûé óæå äîáàâëåíà ïîääåðæêà GLSL 4.60.
 îñíîâíîé ñîñòàâ ñïåöèôèêàöèè OpenGL 4.6 âêëþ÷åíî 11 ðàñøèðåíèé:
GL_ARB_gl_spirv è GL_ARB_spirv_extensions äëÿ ñòàíäàðòèçàöèè ïîääåðæêè SPIR-V â OpenGL;
GL_ARB_indirect_parameters è GL_ARB_shader_draw_parameters äëÿ ñíèæåíèÿ íàãðóçêè íà CPU ïðè âûïîëíåíèè îïåðàöèé â ïàêåòíîì ðåæèìå, ñâÿçàííûõ ñ ðåíäåðèíãîì áîëüøîãî ÷èñëà ãåîìåòðè÷åñêèõ ïðèìèòèâîâ;
GL_ARB_pipeline_statistics_query è GL_ARB_transform_feedback_overflow_query äëÿ ñòàíäàðòèçàöèè â OpenGL ðàíåå ñïåöèôè÷íûõ äëÿ Direct3D ñðåäñòâ äëÿ ïîëó÷åíèÿ ñòàòèñòèêè î õîäå âûïîëíåíèÿ øåéäåðîâ è îòëàâëèâàíèÿ ïåðåïîëíåíèÿ áóôåðîâ;
GL_ARB_texture_filter_anisotropic (áûâøåå ðàñøèðåíèå GL_EXT_texture_filter_anisotropic) ñ ðåàëèçàöèåé ìåòîäà óëó÷øåíèÿ âèçóàëüíîãî êà÷åñòâà òåêñòóð, íà êîòîðûé ðàíåå ðàñïðîñòðàíÿëèñü ïàòåíòíûå îãðàíè÷åíèÿ;
GL_ARB_polygon_offset_clamp (áûâøåå ðàñøèðåíèå GL_EXT_polygon_offset_clamp) äëÿ óñòðàíåíèÿ ÷àñòî âñòðå÷àþùåãîñÿ âèçóàëüíîãî àðòåôàêòà «óòå÷êà ñâåòà» (light leak), âîçíèêàþùåãî ïðè îòðèñîâêå òåíåé;
GL_ARB_shader_atomic_counter_ops è GL_ARB_shader_group_vote ñ ðåàëèçàöèåé äîïîëíèòåëüíûõ ôóíêöèé øåéäåðîâ, ðàñøèðÿþùèõ ôóíêöèîíàëüíîñòü è ïðîèçâîäèòåëüíîñòü ðåøåíèé äëÿ ðàáî÷åãî ñòîëà (ðåàëèçàöèÿ àòîìàðíûõ ñ÷¸ò÷èêîâ è ôóíêöèè äëÿ óñêîðåíèÿ êîìïîçèòèíãà íà ïðîöåññîðàõ SIMD);
GL_KHR_no_error, ïîçâîëÿåò ñíèçèòü íàãðóçêó íà äðàéâåð ïðè âûïîëíåíèè îïåðàöèé, êîòîðûå çàâåäîìî íå ìîãóò ïðèâåñòè ê îøèáêå. Ïðè ïîìîùè äàííîãî ðàñøèðåíèÿ ïðèëîæåíèå ìîæåò îòêëþ÷èòü êîä ïðîâåðêè îøèáîê â äðàéâåðå, ÷òî ïîëîæèòåëüíî ñêàçûâàåòñÿ íà ïðîèçâîäèòåëüíîñòè;
Äîáàâëåíî òðè íîâøåñòâà, êîòîðûå â äàëüíåéøåì áóäóò îôîðìëåíû êàê ðàñøèðåíèÿ OpenGL:
GL_KHR_parallel_shader_compile - ïîçâîëÿåò ïðèëîæåíèÿì çàïóñòèòü ñðàçó íåñêîëüêî ïîòîêîâ êîìïèëÿöèè øåéäåðîâ;
WGL_ARB_create_context_no_error è GXL_ARB_create_context_no_error äëÿ îòêëþ÷åíèÿ êîíòåêñòà îáðàáîòêè îøèáîê â WGL èëè GLX.
Äëÿ óëó÷øåíèÿ ïåðåíîñèìîñòè ñ API Vulkan è Direct3D â ñïåöèôèêàöèè OpenGL è OpenGL ES âêëþ÷åíà ïîðöèÿ íåîáÿçàòåëüíûõ ðàñøèðåíèé äëÿ íèçêîóðîâíåâûõ ìàíèïóëÿöèé ñ îáúåêòàìè â ïàìÿòè è óïðàâëåíèÿ ñèíõðîíèçàöèåé âûïîëíåíèÿ îïåðàöèé ñ GPU:
GL_EXT_memory_object* è GL_EXT_semaphore*. Óêàçàííûå ðàñøèðåíèÿ ïîçâîëÿþò èìïîðòèðîâàòü â OpenGL-ïðèëîæåíèÿ îáúåêòû Vulkan äëÿ èõ ïðèâÿçêè ê òåêñòóðàì èëè áóôåðàì â ïàìÿòè. Äëÿ ñîâìåñòèìîñòè ñ Direct3D äîáàâëåíî ðàñøèðåíèå GL_EXT_win32_keyed_mutex.
http://feedproxy.google.com/~r/org/LOR/~3/hQap1_yLg9M/13593832
| Êîììåíòèðîâàòü | « Ïðåä. çàïèñü — Ê äíåâíèêó — Ñëåä. çàïèñü » | Ñòðàíèöû: [1] [Íîâûå] |