rendering: add alpha cutout integration coverage
This commit is contained in:
@@ -551,11 +551,16 @@ TEST(ShaderLoader, LoadLegacyBackendSplitShaderAuthoringExpandsKeywordVariantsPe
|
||||
ASSERT_NE(keywordOpenGLFragment, nullptr);
|
||||
EXPECT_EQ(keywordOpenGLFragment->entryPoint, "main");
|
||||
EXPECT_EQ(keywordOpenGLFragment->profile, "fs_4_30");
|
||||
const std::string keywordOpenGLSource = keywordOpenGLFragment->sourceCode.CStr();
|
||||
EXPECT_NE(
|
||||
std::string(keywordOpenGLFragment->sourceCode.CStr()).find("#define XC_ALPHA_TEST 1"),
|
||||
keywordOpenGLSource.find("#define XC_ALPHA_TEST 1"),
|
||||
std::string::npos);
|
||||
EXPECT_NE(keywordOpenGLSource.find("#version 430"), std::string::npos);
|
||||
EXPECT_LT(
|
||||
keywordOpenGLSource.find("#version 430"),
|
||||
keywordOpenGLSource.find("#define XC_ALPHA_TEST 1"));
|
||||
EXPECT_NE(
|
||||
std::string(keywordOpenGLFragment->sourceCode.CStr()).find("LEGACY_KEYWORD_GL_PS"),
|
||||
keywordOpenGLSource.find("LEGACY_KEYWORD_GL_PS"),
|
||||
std::string::npos);
|
||||
|
||||
delete shader;
|
||||
@@ -1464,6 +1469,33 @@ TEST(ShaderLoader, LoadBuiltinForwardLitShaderBuildsBackendVariants) {
|
||||
std::string(alphaShadowD3D12Fragment->sourceCode.CStr()).find("gAlphaCutoffParams"),
|
||||
std::string::npos);
|
||||
|
||||
const ShaderStageVariant* alphaShadowOpenGLFragment = shader->FindVariant(
|
||||
"ForwardLit",
|
||||
ShaderType::Fragment,
|
||||
ShaderBackend::OpenGL,
|
||||
alphaShadowKeywords);
|
||||
ASSERT_NE(alphaShadowOpenGLFragment, nullptr);
|
||||
const std::string alphaShadowOpenGLSource = alphaShadowOpenGLFragment->sourceCode.CStr();
|
||||
EXPECT_NE(alphaShadowOpenGLSource.find("#version 430"), std::string::npos);
|
||||
EXPECT_NE(alphaShadowOpenGLSource.find("#define XC_ALPHA_TEST 1"), std::string::npos);
|
||||
EXPECT_LT(
|
||||
alphaShadowOpenGLSource.find("#version 430"),
|
||||
alphaShadowOpenGLSource.find("#define XC_ALPHA_TEST 1"));
|
||||
EXPECT_NE(alphaShadowOpenGLSource.find("discard;"), std::string::npos);
|
||||
|
||||
const ShaderStageVariant* alphaShadowVulkanFragment = shader->FindVariant(
|
||||
"ForwardLit",
|
||||
ShaderType::Fragment,
|
||||
ShaderBackend::Vulkan,
|
||||
alphaShadowKeywords);
|
||||
ASSERT_NE(alphaShadowVulkanFragment, nullptr);
|
||||
const std::string alphaShadowVulkanSource = alphaShadowVulkanFragment->sourceCode.CStr();
|
||||
EXPECT_NE(alphaShadowVulkanSource.find("#version 450"), std::string::npos);
|
||||
EXPECT_NE(alphaShadowVulkanSource.find("#define XC_ALPHA_TEST 1"), std::string::npos);
|
||||
EXPECT_LT(
|
||||
alphaShadowVulkanSource.find("#version 450"),
|
||||
alphaShadowVulkanSource.find("#define XC_ALPHA_TEST 1"));
|
||||
|
||||
const ShaderStageVariant* openglFragment = shader->FindVariant(
|
||||
"ForwardLit",
|
||||
ShaderType::Fragment,
|
||||
@@ -1690,6 +1722,20 @@ TEST(ShaderLoader, LoadBuiltinDepthOnlyShaderBuildsBackendVariants) {
|
||||
std::string(alphaD3D12Fragment->sourceCode.CStr()).find("gAlphaCutoffParams"),
|
||||
std::string::npos);
|
||||
|
||||
const ShaderStageVariant* alphaOpenGLFragment = shader->FindVariant(
|
||||
"DepthOnly",
|
||||
ShaderType::Fragment,
|
||||
ShaderBackend::OpenGL,
|
||||
alphaKeywords);
|
||||
ASSERT_NE(alphaOpenGLFragment, nullptr);
|
||||
const std::string alphaOpenGLSource = alphaOpenGLFragment->sourceCode.CStr();
|
||||
EXPECT_NE(alphaOpenGLSource.find("#version 430"), std::string::npos);
|
||||
EXPECT_NE(alphaOpenGLSource.find("#define XC_ALPHA_TEST 1"), std::string::npos);
|
||||
EXPECT_LT(
|
||||
alphaOpenGLSource.find("#version 430"),
|
||||
alphaOpenGLSource.find("#define XC_ALPHA_TEST 1"));
|
||||
EXPECT_NE(alphaOpenGLSource.find("discard;"), std::string::npos);
|
||||
|
||||
delete shader;
|
||||
}
|
||||
|
||||
@@ -1783,6 +1829,20 @@ TEST(ShaderLoader, LoadBuiltinShadowCasterShaderBuildsBackendVariants) {
|
||||
std::string(alphaD3D12Fragment->sourceCode.CStr()).find("gAlphaCutoffParams"),
|
||||
std::string::npos);
|
||||
|
||||
const ShaderStageVariant* alphaOpenGLFragment = shader->FindVariant(
|
||||
"ShadowCaster",
|
||||
ShaderType::Fragment,
|
||||
ShaderBackend::OpenGL,
|
||||
alphaKeywords);
|
||||
ASSERT_NE(alphaOpenGLFragment, nullptr);
|
||||
const std::string alphaOpenGLSource = alphaOpenGLFragment->sourceCode.CStr();
|
||||
EXPECT_NE(alphaOpenGLSource.find("#version 430"), std::string::npos);
|
||||
EXPECT_NE(alphaOpenGLSource.find("#define XC_ALPHA_TEST 1"), std::string::npos);
|
||||
EXPECT_LT(
|
||||
alphaOpenGLSource.find("#version 430"),
|
||||
alphaOpenGLSource.find("#define XC_ALPHA_TEST 1"));
|
||||
EXPECT_NE(alphaOpenGLSource.find("discard;"), std::string::npos);
|
||||
|
||||
delete shader;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user