mirror of
https://github.com/johndoe6345789/SDL3CPlusPlus.git
synced 2026-04-24 21:55:09 +00:00
feat(logging): Enhance logging in shader compilation and program creation for better traceability
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user