summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/bgfx/3rdparty/spirv-tools/source/lint/linter.cpp
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/bgfx/3rdparty/spirv-tools/source/lint/linter.cpp')
-rw-r--r--3rdparty/bgfx/3rdparty/spirv-tools/source/lint/linter.cpp21
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