diff options
Diffstat (limited to '3rdparty/bgfx/3rdparty/spirv-tools/source/lint/linter.cpp')
-rw-r--r-- | 3rdparty/bgfx/3rdparty/spirv-tools/source/lint/linter.cpp | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/3rdparty/bgfx/3rdparty/spirv-tools/source/lint/linter.cpp b/3rdparty/bgfx/3rdparty/spirv-tools/source/lint/linter.cpp index 0f8479537c5..e4ed04ea440 100644 --- a/3rdparty/bgfx/3rdparty/spirv-tools/source/lint/linter.cpp +++ b/3rdparty/bgfx/3rdparty/spirv-tools/source/lint/linter.cpp @@ -14,6 +14,13 @@ #include "spirv-tools/linter.hpp" +#include "source/lint/lints.h" +#include "source/opt/build_module.h" +#include "source/opt/ir_context.h" +#include "spirv-tools/libspirv.h" +#include "spirv-tools/libspirv.hpp" +#include "spirv/unified1/spirv.h" + namespace spvtools { struct Linter::Impl { @@ -32,20 +39,22 @@ Linter::Linter(spv_target_env env) : impl_(new Impl(env)) {} Linter::~Linter() {} void Linter::SetMessageConsumer(MessageConsumer consumer) { - impl_->message_consumer = consumer; + impl_->message_consumer = std::move(consumer); } -const MessageConsumer& Linter::consumer() const { +const MessageConsumer& Linter::Consumer() const { return impl_->message_consumer; } bool Linter::Run(const uint32_t* binary, size_t binary_size) { - (void)binary; - (void)binary_size; + std::unique_ptr<opt::IRContext> context = + BuildModule(SPV_ENV_VULKAN_1_2, Consumer(), binary, binary_size); + if (context == nullptr) return false; - consumer()(SPV_MSG_INFO, "", {0, 0, 0}, "Hello, world!"); + bool result = true; + result &= lint::lints::CheckDivergentDerivatives(context.get()); - return true; + return result; } } // namespace spvtools |