feat(logging): Enhance logging in shader compilation and program creation for better traceability

This commit is contained in:
2026-01-07 16:24:14 +00:00
parent 34eb8a1450
commit b4a5588054
2 changed files with 17 additions and 2 deletions

View File

@@ -971,6 +971,11 @@ bgfx::ProgramHandle BgfxGuiService::CreateProgram(const char* vertexSource,
bgfx::ShaderHandle vs = CreateShader("gui_vertex", vertexSource, true);
bgfx::ShaderHandle fs = CreateShader("gui_fragment", fragmentSource, false);
if (logger_) {
logger_->Trace("BgfxGuiService", "CreateProgram",
"vs.idx=" + std::to_string(vs.idx) + ", vs.valid=" + std::to_string(bgfx::isValid(vs)) +
", fs.idx=" + std::to_string(fs.idx) + ", fs.valid=" + std::to_string(bgfx::isValid(fs)));
}
if (!bgfx::isValid(vs) || !bgfx::isValid(fs)) {
if (logger_) {
logger_->Error("BgfxGuiService::CreateProgram: shader compilation failed (vs=" +
@@ -990,9 +995,11 @@ bgfx::ProgramHandle BgfxGuiService::CreateProgram(const char* vertexSource,
if (!bgfx::isValid(program) && logger_) {
logger_->Error("BgfxGuiService::CreateProgram: bgfx::createProgram failed to link shaders");
logger_->Trace("BgfxGuiService", "CreateProgram",
"renderer=" + std::string(RendererTypeName(bgfx::getRendererType())));
"renderer=" + std::string(RendererTypeName(bgfx::getRendererType())) +
", program.idx=" + std::to_string(program.idx));
} else if (logger_) {
logger_->Trace("BgfxGuiService", "CreateProgram", "GUI program created successfully");
logger_->Trace("BgfxGuiService", "CreateProgram",
"GUI program created successfully, program.idx=" + std::to_string(program.idx));
}
return program;
}

View File

@@ -135,6 +135,11 @@ bgfx::ShaderHandle BgfxShaderCompiler::CompileShader(
std::vector<uint32_t> spirv(result.cbegin(), result.cend());
if (logger_) {
logger_->Trace("BgfxShaderCompiler", "CompileShader",
"label=" + label + " SPIRV compiled, " + std::to_string(spirv.size()) + " words");
}
// Wrap SPIRV with bgfx binary format including uniform metadata
constexpr uint8_t kBgfxShaderVersion = 11;
constexpr uint32_t kMagicVSH = ('V') | ('S' << 8) | ('H' << 16) | (kBgfxShaderVersion << 24);
@@ -196,6 +201,9 @@ bgfx::ShaderHandle BgfxShaderCompiler::CompileShader(
if (!bgfx::isValid(handle) && logger_) {
logger_->Error("BgfxShaderCompiler: bgfx::createShader failed for " + label +
" (spirvSize=" + std::to_string(spirv.size()) + " words)");
} else if (logger_) {
logger_->Trace("BgfxShaderCompiler", "CompileShader",
"label=" + label + " shader created successfully, handle=" + std::to_string(handle.idx));
}
return handle;