summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/GeometryShaderGen.cpp
diff options
context:
space:
mode:
authorJMC47 <JMC4789@gmail.com>2022-07-08 18:46:29 -0400
committerGitHub <noreply@github.com>2022-07-08 18:46:29 -0400
commitfac66897af7336b5e2dc2e3b879effb98b30fe47 (patch)
treebb9c79964a90f159554daf8fa62f53043a2b6d29 /Source/Core/VideoCommon/GeometryShaderGen.cpp
parentf50e7e6e6d4f8d814636095d098aeeca99666f14 (diff)
parente1e0f42b37dd7f2343b9df99222f32ae56963456 (diff)
Merge pull request #10819 from Dentomologist/fix_shader_compilation_warnings
VideoCommon: Fix D3D shader compilation warnings
Diffstat (limited to 'Source/Core/VideoCommon/GeometryShaderGen.cpp')
-rw-r--r--Source/Core/VideoCommon/GeometryShaderGen.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/Source/Core/VideoCommon/GeometryShaderGen.cpp b/Source/Core/VideoCommon/GeometryShaderGen.cpp
index 10895ccf88..818a22bfa4 100644
--- a/Source/Core/VideoCommon/GeometryShaderGen.cpp
+++ b/Source/Core/VideoCommon/GeometryShaderGen.cpp
@@ -219,7 +219,11 @@ ShaderCode GenerateGeometryShaderCode(APIType api_type, const ShaderHostConfig&
if (wireframe)
out.Write("\tVS_OUTPUT first;\n");
- out.Write("\tfor (int i = 0; i < {}; ++i) {{\n", vertex_in);
+ // Avoid D3D warning about forced unrolling of single-iteration loop
+ if (vertex_in > 1)
+ out.Write("\tfor (int i = 0; i < {}; ++i) {{\n", vertex_in);
+ else
+ out.Write("\tint i = 0;\n");
if (api_type == APIType::OpenGL || api_type == APIType::Vulkan)
{
@@ -310,7 +314,9 @@ ShaderCode GenerateGeometryShaderCode(APIType api_type, const ShaderHostConfig&
EmitVertex(out, host_config, uid_data, "f", api_type, wireframe, stereo, true);
}
- out.Write("\t}}\n");
+ // Only close loop if previous code was in one (See D3D warning above)
+ if (vertex_in > 1)
+ out.Write("\t}}\n");
EndPrimitive(out, host_config, uid_data, api_type, wireframe, stereo);