AMD Mantle API 学习笔记 -- Mantle初始化

本系列文章是笔者研究mantle的一些心得;其目的是为了学习新的图形API标准Vulkan。因为Vulkan还没有正式发布,而它事实上是基于mantle的,所以研究mantle可以让我们对新一代图形标准(Vulkan和D3D12)有一个提前认识。在Vulkan正式发布后,笔者也会写一系列的文章来介绍Vulkan。事实上,mantle的API函数都是以gr开头的;而Vulkan很多API只是简单的替换为vk开头而已。这进一步说明学习mantle的价值。

要学习一个新的API,最好就是用它来写个简单的demo。国外有位牛人已经写了个mantle版的Hello World:Implementing Hello Triangle with Mantle。这个例子的代码在:MantleHelloTriangle。笔者接下来的文章都是基于这个例子,试着把mantle的一系列基本概念剖析一下。


初始化Mantle

使用mantle首先要初始化;主要是调用“grInitAndEnumerateGpus()”来获取系统中所有GPU的handle,然后调用”grGetGpuInfo()”得到每个物理GPU的属性。另外还可以获取GPU_PERFORMANCE的特性,这样Apps可以根据这些信息来选择使用哪个GPU。

    GR_CHAR appName[] = "HelloWorld";
    GR_APPLICATION_INFO appInfo = {};
    appInfo.pAppName = appName;
    appInfo.pEngineName = appName;
    appInfo.apiVersion = GR_API_VERSION;

    // initialize 

你可能感兴趣的:(Graphics,Vulkan,mantle,vulkan,OpenGL)