Merge pull request #6006 from JonnyH/WIP/parse-imgtec-gl_version-string
Parse IMGTEC's GL_VERSION string format
This commit is contained in:
commit
657195fad5
|
@ -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;
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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.
|
||||
|
|
Loading…
Reference in New Issue