Please remember to add a category to the bottom of each page that you create.
See categories help for further details, but most will probably be [[Category:HTC ModelName]].

Developing a graphics driver for Windows Mobile

From XDA-Developers
Jump to: navigation, search

MSM720X Chipset driver for HTC devices

This wiki is still under development. If you have any info about it, or feel this page needs to be better: feel free to edit.


This wiki is aimed at developing a graphics driver for Windows Mobile based on the MSM720x Chipset used in HTC devices since 2007. An OpenGL ES wrapper has already been made and is still under development.

A great site for more info: http://www.htcclassaction.org


Official information by Qualcomm about the MSM7201 chipset: http://www.qctconnect.com/products/msm_7201.html

This document states that the MSM7201a chipset supports:

  • Qtv™: Playback up to 30 fps VGA
  • Qcamcorder™: Record up to 24 fps QVGA
  • Up to 4 million triangles per second, and 133 million depth-tested, textured 3D pixels per second fill rate

Another document from Qualcomm: http://brew.qualcomm.com/brew_bnry/pdf/brew_2007/Tech-303_Ligon.pdf


Topics about Driver development for different devices:

Driver Development For MSM720X devices

HTC Kaiser* HTC Polaris + HTC Nike

HTC Polaris

HTC Blackstone

Just a few threads, but FULL of info.


Files needed for using the graphics chip

-- Base graphics libraries --

Note that all these files are part of OEMDrivers or XIP. Just put them here in their own space as they are the 'core' of the (device dependant) graphics layer. Other libraries can be considered 'support' libraries for these files.

ahi2dati.dll
Hardware interface library to the ATI video chip

ddi.dll
Base Windows Mobile display driver. Pretty much provides a translation between what the GDI wants to ahi2dati calls. This file may or may not be in the XIP, it differs per ROM.

auxddi.dll
Auxilary DDI. Not completely sure what it's function is when present - it usually isn't. Seems to be for a secondary graphics interface? This file is not required.

disptools.dll
Hardware interface library to the LCD screen and some other similar things. This file may or may not be in the XIP, it differs per ROM.

libgles_cm.dll
OpenGL ES (OpenGL for Embedded Systems) "Common Profile" library for 3D graphics. Translates from OpenGL to ahi2dati calls. There is also a user-made libgles_cl wrapper (not included), which provides support for the "Common Light" profile, which is a subset of the "Common" profile. Either may be used by 3D software.

d3dm_ati.dll
Direct3D Mobile library. Translates from Direct3D to libgles_cm calls.

-- XIP -- TODO

  • mmmap.dll
  • wce_rex.dll
  • smem.dll

-- OEMDrivers -- TODO

  • adsprtossvccore.dll
  • clkregim.dll
  • dsm.dll
  • msm_clk.dll
  • msm_time.dll
  • oncrpc.dll
  • remote_apis_clnt.dll
  • remote_apis_svc.dll
  • TrsTai_extension.dll
  • wce_pmem.dll
  • wce_tramp.dll

-- Additional dependancies --

coredll.dll
Obviously! This library is used by everything :)

ril.dll
Radio Interface Library, provides for communication with the radio. See MSDN: [1]

remkeys.dll
Dynamically loaded library by one of the above libraries. No idea what it's function is. This file is not required and missing from most (if not all) ROMs.

OpenVG.dll
2D API developed by Khronos.org: "OpenVG 1.0 is an application programming interface (API) for hardware accelerated two-dimensional vector and raster graphics. It provides a device independent and vendor-neutral interface for sophisticated 2D graphical applications, while allowing device manufacturers to provide hardware acceleration on devices ranging from wrist watches to full microprocessor-based desktop and server machines"


Tools for developing, testing and benchmarking

  • Dependency Walker [2]

A tool to see which files are linked to each other.

  • GLBenchmark [3]

A benchmarking tool used to test and benchmark the driver. Create an account there and download glbenchmark_cm to start.