Our great sponsors
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
In a nutshell, PortableGL is an implementation of OpenGL 3.x core in clean C99 as a single header library (in the style of the stb libraries).
Michael Fogleman's Craft was a pretty perfect candidate because it was reasonably small, while still being a legitimate 3D game that would stress PGL. I discovered and fixed several bugs and added things like glPolygonOffset and Logic Ops. The only extra work I had to do was port it from GLFW to SDL2 first.
I have a private cross-platform port, I’m waiting on the resolution of his latest GitHub issue to submit my changes. sse2neon (https://github.com/DLTcollab/sse2neon) was a big help - I also wrote a very primitive sse2scalar for raspbian builds where neon is unavailable. Honestly SIMD doesn’t help much, as you’re usually memory bound under SWGL. The biggest perf win is any amount of asynchronous execution - running off the main thread is good enough and could be applied to your library externally through a command buffer without any changes to your code.
Also check out https://github.com/dimatura/msr-zbethel-tu
Related posts
- sse2neon - A C/C++ header file that converts Intel SSE intrinsics to Aarch64 NEON intrinsic
- A C/C++ header file that converts Intel SSE intrinsics to Aarch64 NEON intrinsic
- Porting Architecture Specific C/C++ Intrinsics to Graviton
- An AWS Community Builder Story
- SIMD Everywhere – SIMD intrinsics on hardware which doesn't support them