diff options
| author | Mat M <mathew1800@gmail.com> | 2017-09-02 17:10:59 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-09-02 17:10:59 -0400 |
| commit | 657195fad5b613cfa19a3894fb1da70a169ceb93 (patch) | |
| tree | e018ed03b9172287976773de153de553df1565f2 /Source/Core/VideoBackends/OGL/Render.cpp | |
| parent | 30e01834e20d076d8f58849fbb31f5a33eb5a63a (diff) | |
| parent | 658a4a6e2923ae0a8163eac3b77c50bcaef20322 (diff) | |
Merge pull request #6006 from JonnyH/WIP/parse-imgtec-gl_version-string
Parse IMGTEC's GL_VERSION string format
Diffstat (limited to 'Source/Core/VideoBackends/OGL/Render.cpp')
| -rw-r--r-- | Source/Core/VideoBackends/OGL/Render.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/Source/Core/VideoBackends/OGL/Render.cpp b/Source/Core/VideoBackends/OGL/Render.cpp index 8d02053fcc..adc58dff28 100644 --- a/Source/Core/VideoBackends/OGL/Render.cpp +++ b/Source/Core/VideoBackends/OGL/Render.cpp @@ -326,6 +326,29 @@ static void InitDriverInfo() version = 100 * major + minor; } break; + case DriverDetails::VENDOR_IMGTEC: + { + // Example version string: + // "OpenGL ES 3.2 build 1.9@4850625" + // Ends up as "109.4850625" - "1.9" being the branch, "4850625" being the build's change ID + // The change ID only makes sense to compare within a branch + driver = DriverDetails::DRIVER_IMGTEC; + double gl_version; + int major, minor, change; + constexpr double change_scale = 10000000; + sscanf(g_ogl_config.gl_version, "OpenGL ES %lg build %d.%d@%d", &gl_version, &major, &minor, + &change); + version = 100 * major + minor; + if (change >= change_scale) + { + ERROR_LOG(VIDEO, "Version changeID overflow - change:%d scale:%f", change, change_scale); + } + else + { + version += static_cast<double>(change) / change_scale; + } + } + break; // We don't care about these default: break; |
