Browse Source

GL: print a message about GPU validation in verbose log output.

pull/362/head
Vladimír Vondruš 7 years ago
parent
commit
bb921d0f86
  1. 8
      src/Magnum/GL/Context.cpp
  2. 3
      src/Magnum/GL/Context.h

8
src/Magnum/GL/Context.cpp

@ -474,8 +474,10 @@ Context::Context(NoCreateT, Utility::Arguments& args, Int argc, const char** arg
.setFromEnvironment("log")
.parse(argc, argv);
/* Decide whether to display initialization log */
if(!(args.value("log") == "quiet" || args.value("log") == "QUIET"))
/* Decide how to display initialization log */
if(args.value("log") == "verbose" || args.value("log") == "VERBOSE")
_internalFlags |= InternalFlag::DisplayVerboseInitializationLog;
else if(!(args.value("log") == "quiet" || args.value("log") == "QUIET"))
_internalFlags |= InternalFlag::DisplayInitializationLog;
/* Decide whether to enable GPU validation */
@ -755,6 +757,8 @@ bool Context::tryCreate() {
if((detectedDriver() & DetectedDriver::Amd) && !(flags() & Flag::Debug)) {
Warning{} << "GL::Context: GPU validation on AMD drivers requires debug context to work properly";
} else if(_internalFlags >= InternalFlag::DisplayVerboseInitializationLog) {
Debug{} << "GL::Context: enabling GPU validation";
}
} else Warning{} << "GL::Context: GPU validation requested, but GL_KHR_debug not supported";

3
src/Magnum/GL/Context.h

@ -733,7 +733,8 @@ class MAGNUM_GL_EXPORT Context {
enum class InternalFlag: UnsignedByte {
DisplayInitializationLog = 1 << 0,
GpuValidation = 1 << 1
DisplayVerboseInitializationLog = DisplayInitializationLog|(1 << 1),
GpuValidation = 1 << 2
};
typedef Containers::EnumSet<InternalFlag> InternalFlags;
CORRADE_ENUMSET_FRIEND_OPERATORS(InternalFlags)

Loading…
Cancel
Save