aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGreg Fischer <greg@lunarg.com>2022-12-29 12:09:46 -0700
committerGitHub <noreply@github.com>2022-12-29 12:09:46 -0700
commit1d978158dee2f4213114905fa7d3679c78ebbf4d (patch)
tree2e5046d8cc30a129a84cf88782907d906c299358
parentd1fc064e79e9aa9cda749c1d879bff26fba17760 (diff)
parenta88f67412426860da8efdfe0ce247ae7c95f7572 (diff)
downloadglslang-1d978158dee2f4213114905fa7d3679c78ebbf4d.tar.gz
Merge pull request #3100 from daniel-story/fix-dual-src-draw-buffers
Fix issues with MaxDualSourceDrawBuffersEXT
-rw-r--r--StandAlone/ResourceLimits.cpp2
-rw-r--r--glslang/Include/glslang_c_interface.h8
-rw-r--r--gtests/BuiltInResource.FromFile.cpp10
3 files changed, 19 insertions, 1 deletions
diff --git a/StandAlone/ResourceLimits.cpp b/StandAlone/ResourceLimits.cpp
index 6e1a3d85..0e9d1b54 100644
--- a/StandAlone/ResourceLimits.cpp
+++ b/StandAlone/ResourceLimits.cpp
@@ -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")
diff --git a/glslang/Include/glslang_c_interface.h b/glslang/Include/glslang_c_interface.h
index f540f26d..28d52330 100644
--- a/glslang/Include/glslang_c_interface.h
+++ b/glslang/Include/glslang_c_interface.h
@@ -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;
diff --git a/gtests/BuiltInResource.FromFile.cpp b/gtests/BuiltInResource.FromFile.cpp
index 9a7c9b57..eeea5118 100644
--- a/gtests/BuiltInResource.FromFile.cpp
+++ b/gtests/BuiltInResource.FromFile.cpp
@@ -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