{"id":3254,"date":"2020-11-17T09:50:29","date_gmt":"2020-11-17T17:50:29","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/directx\/?p=3254"},"modified":"2020-11-17T09:56:33","modified_gmt":"2020-11-17T17:56:33","slug":"announcing-the-opencl-and-opengl-compatibility-pack-for-windows-10-on-arm","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/directx\/announcing-the-opencl-and-opengl-compatibility-pack-for-windows-10-on-arm\/","title":{"rendered":"Announcing the OpenCL\u2122 and OpenGL\u00ae Compatibility Pack for Windows 10 on ARM"},"content":{"rendered":"<p>Earlier this year, we <a href=\"https:\/\/devblogs.microsoft.com\/directx\/in-the-works-opencl-and-opengl-mapping-layers-to-directx\/\">announced<\/a> a partnership with <a href=\"https:\/\/www.collabora.com\/news-and-blog\/news-and-events\/introducing-opencl-and-opengl-on-directx.html\">Collabora<\/a> to build OpenCL and OpenGL mapping layers to DirectX 12, with the goal of supporting more OpenCL- and OpenGL-based productivity and creative apps where native drivers are not available. We have made tremendous progress since then, and today, we\u2019re excited to talk more about the project and share one specific use case: Photoshop on Windows 10 on ARM.<\/p>\n<p>In September, Chief Product Officer of Windows + Devices Panos Panay talked about the momentum from app partners embracing Windows 10 on ARM in a <a href=\"https:\/\/blogs.windows.com\/windowsexperience\/2020\/09\/30\/now-more-essential-than-ever-the-role-of-the-windows-pc-has-changed\/\">blog post<\/a>. Today,\u00a0<span style=\"color: #333333;\">Adobe has released\u00a0a <a href=\"https:\/\/feedback.photoshop.com\/conversations\/photoshop-beta\/photoshop-for-windows-arm-is-here\/5fb3584b38150f55db64b1e4\">beta version of Photoshop<\/a><\/span>\u2014<a href=\"https:\/\/helpx.adobe.com\/photoshop\/kb\/windows-arm-support.html\">built natively for ARM64<\/a>\u2014for developers to bring their Photoshop plug-ins to Windows on ARM. Developers will need a paid subscription to Photoshop to discover and install this beta version through the Creative Cloud desktop app.<\/p>\n<p>We\u2019re excited to share that we are partnering with Adobe to bring GPU acceleration to Photoshop on ARM using the OpenCL and OpenGL mapping layers. The mapping layers are now available for download in the Microsoft Store as the <a href=\"ms-windows-store:\/\/pdp\/?productid=9NQPSL29BFFF\"><strong>OpenCL\u2122 and OpenGL\u00ae Compatibility Pack<\/strong><\/a>. When you install the compatibility pack alongside your Qualcomm DirectX 12 driver, the ARM-native version of Photoshop can use the compatibility pack to take advantage of the GPU capabilities on your ARM device:<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/directx\/wp-content\/uploads\/sites\/42\/2020\/11\/Photoshop-GPU-settings-resize.png\"><img decoding=\"async\" class=\"alignnone wp-image-3302 size-full\" src=\"https:\/\/devblogs.microsoft.com\/directx\/wp-content\/uploads\/sites\/42\/2020\/11\/Photoshop-GPU-settings-resize.png\" alt=\"Photoshop on ARM settings detect GPU support when OpenCL and OpenGL Compatibility Pack is installed\" width=\"2100\" height=\"1400\" srcset=\"https:\/\/devblogs.microsoft.com\/directx\/wp-content\/uploads\/sites\/42\/2020\/11\/Photoshop-GPU-settings-resize.png 2100w, https:\/\/devblogs.microsoft.com\/directx\/wp-content\/uploads\/sites\/42\/2020\/11\/Photoshop-GPU-settings-resize-300x200.png 300w, https:\/\/devblogs.microsoft.com\/directx\/wp-content\/uploads\/sites\/42\/2020\/11\/Photoshop-GPU-settings-resize-1024x683.png 1024w, https:\/\/devblogs.microsoft.com\/directx\/wp-content\/uploads\/sites\/42\/2020\/11\/Photoshop-GPU-settings-resize-768x512.png 768w, https:\/\/devblogs.microsoft.com\/directx\/wp-content\/uploads\/sites\/42\/2020\/11\/Photoshop-GPU-settings-resize-1536x1024.png 1536w, https:\/\/devblogs.microsoft.com\/directx\/wp-content\/uploads\/sites\/42\/2020\/11\/Photoshop-GPU-settings-resize-2048x1365.png 2048w\" sizes=\"(max-width: 2100px) 100vw, 2100px\" \/><\/a><\/p>\n<h2><strong>What\u2019s in the OpenCL and OpenGL Compatibility Pack?<\/strong><\/h2>\n<p>Unlike a traditional application that you\u2019d find in the Store, this compatibility package isn\u2019t actually an application, so you won\u2019t find it in the Start menu. Instead, it\u2019s a bundle of DLLs, all of which are produced by open source projects.<\/p>\n<p>The OpenCL and OpenGL Compatibility Pack includes an OpenGL ICD implementation and an OpenCL compiler stack from the <a href=\"https:\/\/docs.mesa3d.org\/\">Mesa<\/a> project, as well as an OpenCL ICD implementation from our own <a href=\"https:\/\/github.com\/microsoft\/OpenCLOn12\">open source repository<\/a>. The OpenCL compiler stack leverages even more open source components: It uses <a href=\"https:\/\/llvm.org\/\">Clang\/LLVM<\/a> 10.0, the <a href=\"https:\/\/github.com\/KhronosGroup\/SPIRV-LLVM-Translator\">SPIRV-LLVM-Translator<\/a> project, and the <a href=\"https:\/\/github.com\/KhronosGroup\/SPIRV-Tools\">SPIRV-Tools<\/a> project before <a href=\"https:\/\/www.collabora.com\/news-and-blog\/news-and-events\/introducing-opencl-and-opengl-on-directx.html\">converting<\/a> OpenCL SPIR-V into Mesa&#8217;s NIR format and finally to D3D&#8217;s DXIL format.<\/p>\n<p>The Mesa code currently comes from a <a href=\"https:\/\/gitlab.freedesktop.org\/kusma\/mesa\/-\/tree\/msclc-d3d12\">fork<\/a>. We\u2019ll be working with the Mesa community to <a href=\"https:\/\/gitlab.freedesktop.org\/mesa\/mesa\/-\/merge_requests?scope=all&amp;utf8=%E2%9C%93&amp;state=all&amp;label_name[]=d3d12\">contribute<\/a> this new driver upstream over the coming months \u2013 stay tuned.<\/p>\n<h2><strong>What system requirements do I need to meet to be able to use the OpenCL and OpenGL Compatibility Pack?<\/strong><\/h2>\n<p>To use the compatibility package on your Windows on ARM device, you\u2019ll need to meet two requirements:<\/p>\n<ol>\n<li><strong>Your OS version must be 19041.488 or higher.<\/strong> In practice, this means you should be on the latest version of the Windows 10 May 2020 Update (version 2004), or on the latest version of the Windows 10 October 2020 Update (version 20H2), or on the latest Insider build.<\/li>\n<li><strong>The OpenCL and OpenGL Compatibility Pack must be installed on your ARM device.<\/strong> You can download it from the <a href=\"ms-windows-store:\/\/pdp\/?productid=9NQPSL29BFFF\">Microsoft Store<\/a>. You can also check what version of the compatibility package you have installed by going to Settings &gt; Apps &gt; Apps &amp; features &gt; OpenCL and OpenGL Compatibility Pack &gt; Advanced options.<\/li>\n<\/ol>\n<p>Additionally, for the compatibility pack to support GPU acceleration, you will need an up-to-date DirectX 12 driver installed.<\/p>\n<h2><strong>What OpenCL and OpenGL versions does the compatibility package support?<\/strong><\/h2>\n<p>As mentioned in our <a href=\"https:\/\/devblogs.microsoft.com\/directx\/in-the-works-opencl-and-opengl-mapping-layers-to-directx\/\">initial announce<\/a>, the OpenCL and OpenGL Compatibility Pack will support apps using OpenCL version 1.2 and earlier and OpenGL version 3.3 and earlier.<\/p>\n<h2><strong>Can I use the OpenCL and OpenGL Compatibility Pack with apps other than Photoshop on ARM64?<\/strong><\/h2>\n<p>The OpenCL and OpenGL Compatibility Pack is currently generally available only for use with the ARM-native version of Photoshop. We are investigating adding support for additional apps at a later date.<\/p>\n<p>If you\u2019re excited about more of your favorite OpenCL and OpenGL apps working on your Windows on ARM device and don\u2019t want to wait, we have good news: <a href=\"https:\/\/insider.windows.com\/\">Windows Insiders<\/a> on all channels can download an Insider version of the compatibility package that allows more apps to use it. In fact, all apps using OpenCL version 1.2 and earlier and OpenGL version 3.3 and earlier can use the Insider version of the compatibility package.<\/p>\n<h2><strong>Can I use the OpenCL and OpenGL Compatibility Pack on my x64 system as well?<\/strong><\/h2>\n<p>We recommend using native OpenCL and OpenGL drivers on your x64 system. The OpenCL and OpenGL Compatibility Pack is intended to support more OpenCL and OpenGL apps in environments where native drivers are not available, such as on Windows on ARM. If you install the compatibility package in an environment where native OpenCL and OpenGL drivers are already available, the OpenCL and OpenGL mapping layers will have the following behavior:<\/p>\n<ul>\n<li>The OpenGL mapping layer will not be used. The native OpenGL driver will be used instead.<\/li>\n<li>The OpenCL mapping layer will be listed last on the list of OpenCL platforms. The app selects the OpenCL platform to use, and it is likely that the native OpenCL driver will be selected.<\/li>\n<\/ul>\n<h2><strong>How can I give the team feedback on the OpenCL and OpenGL Compatibility Pack?<\/strong><\/h2>\n<p>We\u2019d love to hear from you, whether you\u2019re using the generally available version or the Insider version of the compatibility package. The easiest way to share your issues and suggestions with us is by using <a href=\"feedback-hub:?contextid=70&amp;tabid=2&amp;searchString=%22OpenCL%20and%20OpenGL%20Compatibility%20Pack%22\">Feedback Hub<\/a> and including \u201cOpenCL and OpenGL Compatibility Pack\u201d in the feedback title.<\/p>\n<hr \/>\n<p><span style=\"font-size: 10pt;\">Product is based on a published Khronos Specification and has been submitted to, and is expected to pass, the Khronos Conformance Process. Current conformance status can be found at <a href=\"http:\/\/www.khronos.org\/conformance\">www.khronos.org\/conformance<\/a>.<\/span><\/p>\n<p><span style=\"font-size: 10pt;\">OpenCL and the OpenCL logo are trademarks of Apple Inc. used with permission by Khronos. Complete license details are available on the Apple website (https:\/\/developer.apple.com\/softwarelicensing\/opencl\/).<\/span><\/p>\n<p><span style=\"font-size: 10pt;\">OpenGL\u00ae and the oval logo are trademarks or registered trademarks of Hewlett Packard Enterprise in the United States and\/or other countries worldwide.<\/span><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The OpenCL and OpenGL to DirectX 12 mapping layers are now available in the Microsoft Store as the OpenCL\u2122 and OpenGL\u00ae Compatibility Pack. We\u2019re excited to talk more about the project and share one specific use case: Photoshop on Windows 10 on ARM.<\/p>\n","protected":false},"author":16292,"featured_media":3288,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-3254","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-directx"],"acf":[],"blog_post_summary":"<p>The OpenCL and OpenGL to DirectX 12 mapping layers are now available in the Microsoft Store as the OpenCL\u2122 and OpenGL\u00ae Compatibility Pack. We\u2019re excited to talk more about the project and share one specific use case: Photoshop on Windows 10 on ARM.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/directx\/wp-json\/wp\/v2\/posts\/3254","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/directx\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/directx\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/directx\/wp-json\/wp\/v2\/users\/16292"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/directx\/wp-json\/wp\/v2\/comments?post=3254"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/directx\/wp-json\/wp\/v2\/posts\/3254\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/directx\/wp-json\/wp\/v2\/media\/3288"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/directx\/wp-json\/wp\/v2\/media?parent=3254"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/directx\/wp-json\/wp\/v2\/categories?post=3254"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/directx\/wp-json\/wp\/v2\/tags?post=3254"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}