Tweak layer depth distribution (#3738)

This commit is contained in:
Adrian Cojocaru
2025-08-28 17:42:34 +03:00
committed by GitHub
parent 426e519665
commit 2a2bce8d4d
4 changed files with 58 additions and 5 deletions

View File

@@ -130,7 +130,7 @@ public:
#if MLN_RENDER_BACKEND_OPENGL
static constexpr float depthEpsilon = 1.0f / (1 << 16);
#else
static constexpr float depthEpsilon = 1.0f / (1 << 12);
static constexpr float depthEpsilon = 1.0f / (1 << 11);
#endif
static constexpr int maxStencilValue = 255;

View File

@@ -49,7 +49,7 @@ ShaderProgram::ShaderProgram(shaders::BuiltIn shaderID,
defineStr += "#define USE_SURFACE_TRANSFORM";
}
observer.onPreCompileShader(shaderID, gfx::Backend::Type::Metal, defineStr);
observer.onPreCompileShader(shaderID, gfx::Backend::Type::Vulkan, defineStr);
constexpr auto targetClientVersion = glslang::EShTargetVulkan_1_0;
constexpr auto targetLanguageVersion = glslang::EShTargetSpv_1_0;
@@ -61,8 +61,9 @@ ShaderProgram::ShaderProgram(shaders::BuiltIn shaderID,
glslang::TShader glslShader(language);
const auto preamble = defineStr + "\n" + prelude;
const char* shaderData = data.data();
const int shaderDataSize = static_cast<int>(data.size());
const std::string shaderStr = std::string("#version ") + std::to_string(defaultVersion) + "\n" + data.data();
const char* shaderData = shaderStr.data();
const int shaderDataSize = static_cast<int>(shaderStr.size());
glslShader.setPreamble(preamble.c_str());
glslShader.setStringsWithLengths(&shaderData, &shaderDataSize, 1);
@@ -115,7 +116,7 @@ ShaderProgram::ShaderProgram(shaders::BuiltIn shaderID,
backend.setDebugName(vertexShader.get(), shaderName + ".vert");
backend.setDebugName(fragmentShader.get(), shaderName + ".frag");
observer.onPostCompileShader(shaderID, gfx::Backend::Type::Metal, defineStr);
observer.onPostCompileShader(shaderID, gfx::Backend::Type::Vulkan, defineStr);
}
ShaderProgram::~ShaderProgram() noexcept {