Skip to content

Commit

Permalink
Merge pull request #6006 from JonnyH/WIP/parse-imgtec-gl_version-string
Browse files Browse the repository at this point in the history
Parse IMGTEC's GL_VERSION string format
  • Loading branch information
lioncash committed Sep 2, 2017
2 parents 30e0183 + 658a4a6 commit 657195f
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 2 deletions.
23 changes: 23 additions & 0 deletions Source/Core/VideoBackends/OGL/Render.cpp
Expand Up @@ -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;
Expand Down
2 changes: 1 addition & 1 deletion Source/Core/VideoCommon/DriverDetails.cpp
Expand Up @@ -95,7 +95,7 @@ static BugInfo m_known_bugs[] = {
{API_OPENGL, OS_OSX, VENDOR_INTEL, DRIVER_INTEL, Family::UNKNOWN,
BUG_BROKEN_DUAL_SOURCE_BLENDING, -1.0, -1.0, true},
{API_OPENGL, OS_ALL, VENDOR_IMGTEC, DRIVER_IMGTEC, Family::UNKNOWN,
BUG_BROKEN_BITWISE_OP_NEGATION, -1.0, -1.0, true},
BUG_BROKEN_BITWISE_OP_NEGATION, -1.0, 108.4693462, true},
{API_VULKAN, OS_ALL, VENDOR_ATI, DRIVER_ATI, Family::UNKNOWN, BUG_PRIMITIVE_RESTART, -1.0, -1.0,
true},
{API_OPENGL, OS_LINUX, VENDOR_MESA, DRIVER_I965, Family::UNKNOWN,
Expand Down
2 changes: 1 addition & 1 deletion Source/Core/VideoCommon/DriverDetails.h
Expand Up @@ -242,7 +242,7 @@ enum Bug
BUG_BROKEN_DUAL_SOURCE_BLENDING,
// BUG: ImgTec GLSL shader compiler fails when negating the input to a bitwise operation
// Started version: 1.5
// Ended version: 1.10
// Ended version: 1.8@4693462
// Shaders that do something like "variable <<= (-othervariable);" cause the shader to
// fail compilation with no useful diagnostic log. This can be worked around by storing
// the negated value to a temporary variable then using that in the bitwise op.
Expand Down

0 comments on commit 657195f

Please sign in to comment.