From 4763f972052f9374ad0a2997a7f1d3287d0456e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Branimir=20Karad=C5=BEi=C4=87?= Date: Mon, 25 Oct 2021 19:26:38 -0700 Subject: [PATCH] More fixes. --- tools/shaderc/shaderc.cpp | 25 ++++++++++++++++++++++++ tools/shaderc/shaderc_glsl.cpp | 2 +- tools/shaderc/shaderc_hlsl.cpp | 34 +++++++++++++++++---------------- tools/shaderc/shaderc_metal.cpp | 2 +- tools/shaderc/shaderc_spirv.cpp | 2 +- 5 files changed, 46 insertions(+), 19 deletions(-) diff --git a/tools/shaderc/shaderc.cpp b/tools/shaderc/shaderc.cpp index 1562b49c5..0c81240c1 100644 --- a/tools/shaderc/shaderc.cpp +++ b/tools/shaderc/shaderc.cpp @@ -309,6 +309,31 @@ namespace bgfx NULL }; + void fatal(const char* _filePath, uint16_t _line, Fatal::Enum _code, const char* _format, ...) + { + BX_UNUSED(_filePath, _line, _code); + + va_list argList; + va_start(argList, _format); + + bx::vprintf(_format, argList); + + va_end(argList); + + abort(); + } + + void trace(const char* _filePath, uint16_t _line, const char* _format, ...) + { + BX_UNUSED(_filePath, _line); + + va_list argList; + va_start(argList, _format); + + bx::vprintf(_format, argList); + + va_end(argList); + } Options::Options() : shaderType(' ') , disasm(false) diff --git a/tools/shaderc/shaderc_glsl.cpp b/tools/shaderc/shaderc_glsl.cpp index 6a9a26f5e..b0fffde6d 100644 --- a/tools/shaderc/shaderc_glsl.cpp +++ b/tools/shaderc/shaderc_glsl.cpp @@ -330,7 +330,7 @@ namespace bgfx { namespace glsl } } - bx::Error err; + bx::ErrorAssert err; uint16_t count = (uint16_t)uniforms.size(); bx::write(_writer, count, &err); diff --git a/tools/shaderc/shaderc_hlsl.cpp b/tools/shaderc/shaderc_hlsl.cpp index 94e6cc954..3c7571656 100644 --- a/tools/shaderc/shaderc_hlsl.cpp +++ b/tools/shaderc/shaderc_hlsl.cpp @@ -609,6 +609,8 @@ namespace bgfx { namespace hlsl writeFile(hlslfp.c_str(), _code.c_str(), (int32_t)_code.size() ); } + bx::ErrorAssert err; + HRESULT hr = D3DCompile(_code.c_str() , _code.size() , hlslfp.c_str() @@ -731,23 +733,23 @@ namespace bgfx { namespace hlsl { uint16_t count = (uint16_t)uniforms.size(); - bx::write(_writer, count); + bx::write(_writer, count, &err); uint32_t fragmentBit = profile[0] == 'p' ? kUniformFragmentBit : 0; for (UniformArray::const_iterator it = uniforms.begin(); it != uniforms.end(); ++it) { const Uniform& un = *it; uint8_t nameSize = (uint8_t)un.name.size(); - bx::write(_writer, nameSize); - bx::write(_writer, un.name.c_str(), nameSize); + bx::write(_writer, nameSize, &err); + bx::write(_writer, un.name.c_str(), nameSize, &err); uint8_t type = uint8_t(un.type | fragmentBit); - bx::write(_writer, type); - bx::write(_writer, un.num); - bx::write(_writer, un.regIndex); - bx::write(_writer, un.regCount); - bx::write(_writer, un.texComponent); - bx::write(_writer, un.texDimension); - bx::write(_writer, un.texFormat); + bx::write(_writer, type, &err); + bx::write(_writer, un.num, &err); + bx::write(_writer, un.regIndex, &err); + bx::write(_writer, un.regCount, &err); + bx::write(_writer, un.texComponent, &err); + bx::write(_writer, un.texDimension, &err); + bx::write(_writer, un.texFormat, &err); BX_TRACE("%s, %s, %d, %d, %d" , un.name.c_str() @@ -777,18 +779,18 @@ namespace bgfx { namespace hlsl { uint32_t shaderSize = uint32_t(code->GetBufferSize() ); - bx::write(_writer, shaderSize); - bx::write(_writer, code->GetBufferPointer(), shaderSize); + bx::write(_writer, shaderSize, &err); + bx::write(_writer, code->GetBufferPointer(), shaderSize, &err); uint8_t nul = 0; - bx::write(_writer, nul); + bx::write(_writer, nul, &err); } if (_version >= 400) { - bx::write(_writer, numAttrs); - bx::write(_writer, attrs, numAttrs*sizeof(uint16_t) ); + bx::write(_writer, numAttrs, &err); + bx::write(_writer, attrs, numAttrs*sizeof(uint16_t), &err); - bx::write(_writer, size); + bx::write(_writer, size, &err); } if (_options.disasm ) diff --git a/tools/shaderc/shaderc_metal.cpp b/tools/shaderc/shaderc_metal.cpp index d66b5544a..c5ab79010 100644 --- a/tools/shaderc/shaderc_metal.cpp +++ b/tools/shaderc/shaderc_metal.cpp @@ -220,7 +220,7 @@ namespace bgfx { namespace metal { uint16_t size = 0; - bx::Error err; + bx::ErrorAssert err; uint16_t count = static_cast(uniforms.size() ); bx::write(_writer, count, &err); diff --git a/tools/shaderc/shaderc_spirv.cpp b/tools/shaderc/shaderc_spirv.cpp index a60d69d82..8484cbace 100644 --- a/tools/shaderc/shaderc_spirv.cpp +++ b/tools/shaderc/shaderc_spirv.cpp @@ -326,7 +326,7 @@ namespace bgfx { namespace spirv { uint16_t size = 0; - bx::Error err; + bx::ErrorAssert err; uint16_t count = static_cast(uniforms.size() ); bx::write(_writer, count, &err);