![]() ![]() The same processes apply to updates to a vertex buffer or an off-screen framebuffer object that might be used in a non-interactive offline image processing pipeline. To get you started with surface sharing, we will show how to update a texture created using DirectX 11 with OpenCL. This could be useful for color conversions, resampling, or performing compression in some scenarios. Finally, imagine post-processing an image with OpenCL after rendering the scene using the 3D pipeline. Another would be using a dynamically generated procedural texture created in OpenCL when rendering a 3D object in the scene. One example where this could be used would be a real-time computer vision application, which runs a feature detector over an image in OpenCL, then uses DirectX 11 to render the final output to the screen in real time with features clearly marked. The goal is to provide access to the expressiveness enabled by the OpenCL C kernel and the rendering capabilities of the DirectX11 API. This tutorial demonstrates how to share surfaces between OpenCL™ and DirectX* 11 with Intel ® Processor Graphics on Microsoft Windows*, using the surface sharing extension in OpenCL. What do to when no surface sharing is supported?.Sharing Framebuffers, Depth, Stencil, and MSAA surfaces.Sharing explicit synchronization events between OpenCL and DirectX 11.Details of Surface Sharing between OpenCL and DirectX 11.Overview of Surface Sharing between OpenCL and DirectX 11.Synchronization between OpenCL and DirectX 11.Intel® Processor Graphics with Shared Physical Memory.If you are entirely new to graphics programming, I'd strongly recommend starting with DirectX 11, but you can move quickly to DirectX 12 after you understand the basics. UPDATE: If you are looking to use HLSL Shader Model 6, DirectX Raytracing, DirectML, Mesh & Amplification Shaders, or other DirectX "Ultimate" features you'll need to use DirectX 12. They are not identical, but the similarities can be useful to learn 11 and move to 12. The DirectX Tool Kit is available for both DX11 and DX12. You may also find the YouTube channel useful. The Microsoft Docs porting guide is a 'point-by-point' list of key differences in the API design. This makes DirectX 12 an 'expert' API in that it takes a great deal of knowledge to use it correctly, but also means that a well-written DirectX 12 program can avoid a lot of extra work on the CPU that used to be done in the DirectX 11 Runtime 'on your behalf' to make this simpler to use. CPU/GPU programmable shader data sharing (i.e.Managing shader+state permutations (i.e.a texture when it's being used as a render target) a texture when it's being used for filtering vs. In short: DirectX 11 and previous DirectX Runtimes hide a lot of the complexities of working with modern hardware and drivers, while DirectX 12 leaves it all up to the application developer to make it work: ![]() ![]() Once you've gotten a handle on DirectX 11, the switch to DirectX 12 should be much easier.ĭirectX 11 & DirectX 12 control basically the same kind of hardware (although newer features are only being added to DirectX 12 this point like DirectX Raytracing and DirectX Ultimate hardware feature level), but have much different API programming models. TL:DR: If you new to Direct3D, learn DirectX 11 first. ![]()
0 Comments
Leave a Reply. |