NVIDIA, Valve Share Lessons In Porting To Linux

The PDF slides in full from the GDC 2013 presentation by NVIDIA/Valve can be found in full at developer.nvidia.com. To Many Phoronix readers, this information isn't too new. Below are a few of the highlights from these slides.
- Reasons for porting to Linux now that were expressed is that Linux is open, Linux for gaming is growing quickly, it's a stepping stone to mobile (Android), performance reasons, and Steam for Linux. While OpenGL isn't exclusive to Linux, it also offers its own benefits by not being OS-specific, easy (proprietary) driver updates, public specifications, and being controlled by an independent committe (Khronos Group).
- For windowing-related work, NVIDIA/Valve highly recommends using SDL (Simple Direct Layer) for its cross-platform niceness (including mobile targets), tight C implementation, and is used by all of Valve's Linux ports. (It also helps that Valve employs one of the lead SDL programmers.)
- Other porting issues can be file-system differences (namely Linux file-systems being case-sensitive), bad defines/logic with earlier Linux server ports, internationalization issues, multi-monitor being less nice than on windows, raw mouse input differences, and some differences with Linux font handling.
- The tools NVIDIA/Valve recommends for CPU performance analysis at a low-level is perf, vtune, and Telemetry.
- Recommended GPU debugging tools are NVIDIA Nsight, PerfStudio, gDEBugger, CodeXL, and ApiTrace.
- There's many slides going over specific OpenGL extension recommendations and other information for those inexperienced in OpenGL graphics. Some performance tips mentioned were watching out for GPU driver serialization / multi-threaded, writing vendor-specific graphics code in some cases, etc.
9 Comments