Adreno GPU上的DirectX应用开发简介 (1)

Adreno GPU上的DirectX应用开发简介 (1)

2 了解平台

2.1 Snapdragon:概述

Snapdragon 是当今 Android 和 Windows 智能手机和平板电脑中功能最强大、使用最广泛的处理器之一。 很快您就会在 PC、智能电视和机顶盒等其他类型的设备中看到 Snapdragon 及其集成的 Adreno GPU。 有关包含 Snapdragon 处理器的当前商用设备的列表,请访问 Snapdragon 网站 (http://www.qualcomm.com/snapdragon/devices)。

骁龙处理器将所有一流的移动组件集成在一个芯片上,确保基于骁龙的设备以极其节能的集成解决方案提供最新的移动用户体验。
在这里插入图片描述Snapdragon 是一个多处理器系统,包括以下组件:多模调制解调器、CPU、GPU、DSP、定位/GPS、多媒体、电源管理、RF、软件和操作系统优化、内存、连接(Wi-Fi、蓝牙)等。要了解有关骁龙处理器的更多信息,请访问:http://www.qualcomm.com/snapdragon

本文档重点介绍在 Windows RT 上使用 Direct3D 11.1 对 GPU 进行编程,并涉及其他相关组件,如图形应用程序开发所需的 CPU 和内存。

像以下示例中的图形密集型应用程序使用 Snapdragon 处理器内的子系统来执行。 该子系统由 CPU、GPU、内存和显示控制器组成,图形应用程序使用这些控制器来计算不同的游戏引擎功能、渲染几何图形和场景、缓存数据并将处理后的图像显示在屏幕上。
在这里插入图片描述以下部分一次处理一个系统组件的游戏数据流图。

CPU
图 2-2 中的数据流从左侧开始,游戏中的多个线程由双核 CPU 处理。 假设这个假设游戏有一个粗线程游戏引擎架构。 粗线程架构意味着每个游戏引擎功能(如人工智能和游戏物理)都由该 CPU 内核处理,作为游戏引擎分配的单独进程线程。 对于细粒度线程游戏引擎,类似的流程是可能的,其中每个功能都被划分为多个线程。 函数中的每个线程(函数的一部分,而不是完整的函数)然后由 CPU 内核处理。 粗线程游戏引擎在 CPU 上的流程更趋于串行,而细粒度线程引擎在流程上更趋于并行。

在图 2-2 中,每个游戏引擎功能在第一个内核上以串行方式从左到右进行处理。 处理完最后一个函数后,将游戏状态存储在本地内存中,第二个 CPU 内核以该状态为起点开始处理接下来的一系列函数。 在这些 CPU 内核处理函数的同时,每个游戏引擎函数也可以使用 VeNum 协处理器进行数学计算。 VeNum 是一种通用 SIMD(单指令多数据)架构扩展,用于对这些游戏引擎功能的数学算法进行高效的向量浮点 (VFP) 处理。 VeNum 在指令上与标准 ARM® NEOTM 通用 SIMD 引擎兼容。 有多种使用 VeNum 的方法,包括向量化编译器、使用 C 内在函数或使用汇编程序。 有关更多详细信息,请参阅 ARM 的参考页面:http://www.arm.com/products/processors/technologies/neon.php

系统内存
高级图形应用程序或游戏需要大量内存来存储纹理、顶点数据和其他与应用程序相关的数据。 所有这些数据以及 GPU 用于存储帧缓冲区所需的内存都存储在系统内存中,CPU 和 GPU 会根据需要高效地读取这些值。 系统内存由所有应用程序和操作系统共享。 随着游戏和图形应用程序变得越来越先进,这些应用程序所需的大部分系统内存用于存储纹理。 遵循像压缩这些纹理这样的简单技巧可以显着节省内存使用量。

GPU
一旦 CPU 完成其计算周期,游戏状态数据就会存储在内存中,而处理后的几何图形、纹理数据指针和命令指针将传递到 GPU 进行进一步处理。 Adreno GPU 有多个重要方面,如图 2-2 所示,并在本文档后面讨论。 在这里,重点是两个组件:GMEM(内部图形内存)有时也称为 OCMEM(片上内存),它是用于存储颜色、深度和模板值的图块缓冲区,以及着色器处理单元。

Adreno GPU 有一个内部本地内存缓冲区,可以存储 z、模板和颜色值。 Adreno GPU 中基于图块的渲染架构允许将最终帧缓冲区划分为更小的部分,称为 bins。 在此本地缓冲区中一次解析这些 bin 称为基于 tile。 然后如图所示将完全解析的最终帧缓冲区存储在系统内存中。

Adreno GPU 的另一个架构亮点是统一的着色器架构,可实现高效的着色器处理。 统一着色器架构是着色器单元最有效的用途,因为在处理着色器指令时,没有任何单元处于空闲状态。

显示
来自帧缓冲器的最终处理像素数据由显示驱动程序更新到 LCD 屏幕上。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值