{"id":75813,"date":"2020-03-28T19:42:24","date_gmt":"2020-03-28T17:42:24","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/collabora-razvivaet-nadstrojku-dlya-raboty-opencl-i-opengl-poverh-directx"},"modified":"2020-03-28T19:42:24","modified_gmt":"2020-03-28T17:42:24","slug":"collabora-razvivaet-nadstrojku-dlya-raboty-opencl-i-opengl-poverh-directx","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/news\/collabora-razvivaet-nadstrojku-dlya-raboty-opencl-i-opengl-poverh-directx","title":{"rendered":"Collabora develops an add-on for working with OpenCL and OpenGL on top of DirectX.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Collabora <noindex><a rel=\"nofollow\" href=\"https:\/\/www.collabora.com\/news-and-blog\/news-and-events\/introducing-opencl-and-opengl-on-directx.html\">introduced<\/a><\/noindex> The new Gallium driver for Mesa implements a layer to facilitate the operation of API OpenCL 1.2 and OpenGL 3.3 on top of drivers supporting DirectX 12 (D3D12). Code <noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.freedesktop.org\/kusma\/mesa\/-\/tree\/msclc-d3d12\">has been published<\/a><\/noindex> is licensed under the MIT License.<\/p>\n<p>The proposed driver allows using Mesa on devices initially not supporting OpenCL and OpenGL, and serves as a starting point for porting OpenGL\/OpenCL applications to run on top of D3D12. For GPU manufacturers, the subsystem provides an opportunity to offer OpenCL and OpenGL support when only D3D12-compatible drivers are available. <\/p>\n<p>The immediate plans include achieving full compatibility testing for OpenCL 1.2 and OpenGL 3.3, verifying compatibility with applications, and integrating developments into the main Mesa branch. The development is being conducted in collaboration with engineers from Microsoft who are advancing    <noindex><a rel=\"nofollow\" href=\"https:\/\/devblogs.microsoft.com\/directx\/d3d12-translation-layer-and-d3d11on12-are-now-open-source\/\">open<\/a><\/noindex> toolkit <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/microsoft\/D3D11On12\">D3D11On12<\/a><\/noindex> for migrating games from D3D11 to D3D12 and the library <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/microsoft\/D3D12TranslationLayer\">D3D12TranslationLayer<\/a><\/noindex>, which implements standard graphic primitives on top of D3D12. <\/p>\n<p>The implementation includes a Gallium driver, an OpenCL compiler, an OpenCL runtime, and a NIR-to-DXIL shader compiler that transforms the intermediate representation of shaders used in Mesa (NIR) into the binary format DXIL (DirectX Intermediate Language) supported in DirectX 12 and based on LLVM 3.7 bytecode (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/microsoft\/DirectXShaderCompiler\">DirectX Shader Compiler<\/a><\/noindex> from Microsoft, essentially an extended fork of LLVM 3.7). The OpenCL compiler has been prepared based on the developments of the LLVM project and the toolkit <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/KhronosGroup\/SPIRV-LLVM-Translator\">SPIRV-LLVM<\/a><\/noindex>.<\/p>\n<p>Source texts with OpenCL extensions are compiled using clang into intermediate pseudo-code LLVM (LLVM IR), which is then converted into an intermediate representation of OpenCL kernels in SPIR-V format. The kernels in SPIR-V format are passed to Mesa, translated into NIR format, optimized, and then sent to NIR-to-DXIL for generating compute shaders in DXIL format, suitable for execution on a GPU using a DirectX 12-based runtime.<br \/>\nInstead of Clover, used in Mesa's OpenCL implementation, a new OpenCL runtime has been proposed that allows for more direct transformations into the DirectX 12 API.<\/p>\n<p><center><noindex><a rel=\"nofollow\" href=\"https:\/\/www.collabora.com\/assets\/images\/blog\/opencl-compiler-overview.png\"><img decoding=\"async\" alt=\"Collabora develops an add-on for working with OpenCL and OpenGL on top of DirectX.\" src=\"\/wp-content\/uploads\/2020\/03\/194f364cee846f77fa730f828e4db726.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/center><\/p>\n<p>OpenCL and OpenGL drivers are prepared using the Gallium interface provided in Mesa, allowing for the creation of drivers without delving into OpenGL-specific details and translating OpenGL calls into entities closer to the graphic primitives operated by modern GPUs. The Gallium driver accepts OpenGL commands and, when utilizing the NIR-to-DXIL translator.<br \/>\nforms command buffers that are executed on the GPU using the D3D12 driver.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Source: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=52625\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Collabora \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0430 \u043d\u043e\u0432\u044b\u0439 Gallium-\u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0434\u043b\u044f Mesa, \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u044e\u0449\u0438\u0439 \u043f\u0440\u043e\u0441\u043b\u043e\u0439\u043a\u0443 \u0434\u043b\u044f \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b API OpenCL 1.2 \u0438 OpenGL 3.3 \u043f\u043e\u0432\u0435\u0440\u0445 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u0432 \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 DirectX 12 (D3D12). \u041a\u043e\u0434 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u043f\u043e\u0434 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439 MIT. \u041f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0439 \u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c Mesa \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445, \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0449\u0438\u0445 OpenCL \u0438 OpenGL, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u043e\u0439 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 \u0434\u043b\u044f \u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f OpenGL\/OpenCL-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e\u0432\u0435\u0440\u0445 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":75814,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-75813","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Collabora \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0430 \u043d\u043e\u0432\u044b\u0439 Gallium-\u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0434\u043b\u044f Mesa.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/en\/blog\/news\/collabora-razvivaet-nadstrojku-dlya-raboty-opencl-i-opengl-poverh-directx\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Collabora \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442 \u043d\u0430\u0434\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b OpenCL \u0438 OpenGL \u043f\u043e\u0432\u0435\u0440\u0445 DirectX | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Collabora \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0430 \u043d\u043e\u0432\u044b\u0439 Gallium-\u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0434\u043b\u044f Mesa.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/news\/collabora-razvivaet-nadstrojku-dlya-raboty-opencl-i-opengl-poverh-directx\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-03-28T17:42:24+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-03-28T17:42:24+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47 Collabora is developing an extension for running OpenCL and OpenGL over DirectX | ProHoster","description":"Collabora has introduced a new Gallium driver for Mesa.","canonical_url":"https:\/\/prohoster.info\/en\/blog\/news\/collabora-razvivaet-nadstrojku-dlya-raboty-opencl-i-opengl-poverh-directx","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Collabora \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442 \u043d\u0430\u0434\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b OpenCL \u0438 OpenGL \u043f\u043e\u0432\u0435\u0440\u0445 DirectX | ProHoster","og:description":"\u041a\u043e\u043c\u043f\u0430\u043d\u0438\u044f Collabora \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0430 \u043d\u043e\u0432\u044b\u0439 Gallium-\u0434\u0440\u0430\u0439\u0432\u0435\u0440 \u0434\u043b\u044f Mesa.","og:url":"https:\/\/prohoster.info\/en\/blog\/news\/collabora-razvivaet-nadstrojku-dlya-raboty-opencl-i-opengl-poverh-directx","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-03-28T17:42:24+00:00","article:modified_time":"2020-03-28T17:42:24+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"75813","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 17:48:44","updated":"2022-10-05 09:19:01","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/75813","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=75813"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/75813\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media\/75814"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=75813"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=75813"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=75813"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}