Fix issues with MaxDualSourceDrawBuffersEXT
authorDaniel Story <daniel.story@ntd.nintendo.com>
Wed, 21 Dec 2022 19:53:23 +0000 (11:53 -0800)
committerDaniel Story [NTD] <daniel.story@ntd.nintendo.com>
Wed, 21 Dec 2022 19:53:50 +0000 (11:53 -0800)
StandAlone/ResourceLimits.cpp
glslang/Include/glslang_c_interface.h
gtests/BuiltInResource.FromFile.cpp

index 6e1a3d8..0e9d1b5 100644 (file)
@@ -505,6 +505,8 @@ void DecodeResourceLimits(TBuiltInResource* resources, char* config)
             resources->maxTaskWorkGroupSizeZ_EXT = value;
         else if (tokenStr == "MaxMeshViewCountEXT")
             resources->maxMeshViewCountEXT = value;
+        else if (tokenStr == "MaxDualSourceDrawBuffersEXT")
+            resources->maxDualSourceDrawBuffersEXT = value;
         else if (tokenStr == "nonInductiveForLoops")
             resources->limits.nonInductiveForLoops = (value != 0);
         else if (tokenStr == "whileLoops")
index f540f26..28d5233 100644 (file)
@@ -157,7 +157,13 @@ typedef struct glslang_resource_s {
     int max_task_work_group_size_y_ext;
     int max_task_work_group_size_z_ext;
     int max_mesh_view_count_ext;
-    int maxDualSourceDrawBuffersEXT;
+    union
+    {
+        int max_dual_source_draw_buffers_ext;
+
+        /* Incorrectly capitalized name retained for backward compatibility */
+        int maxDualSourceDrawBuffersEXT;
+    };
 
     glslang_limits_t limits;
 } glslang_resource_t;
index 9a7c9b5..eeea511 100644 (file)
@@ -53,5 +53,15 @@ TEST_F(DefaultResourceTest, FromFile)
     ASSERT_EQ(expectedConfig, realConfig);
 }
 
+TEST_F(DefaultResourceTest, UnrecognizedLimit)
+{
+    const std::string defaultConfig = GetDefaultTBuiltInResourceString();
+    testing::internal::CaptureStdout();
+    TBuiltInResource resources;
+    DecodeResourceLimits(&resources, const_cast<char*>(defaultConfig.c_str()));
+    std::string output = testing::internal::GetCapturedStdout();
+    ASSERT_EQ(output.find("unrecognized limit"), std::string::npos);
+}
+
 }  // anonymous namespace
 }  // namespace glslangtest