MCPcopy Create free account
hub / github.com/NatronGitHub/Natron / getGPUInfos

Method getGPUInfos

Engine/OSGLContext_mac.cpp:523–635  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

521// clang-format on
522
523void
524OSGLContext_mac::getGPUInfos(std::list<OpenGLRendererInfo>& renderers)
525{
526 CGLContextObj curr_ctx = 0;
527
528 curr_ctx = CGLGetCurrentContext (); // get current CGL context
529
530 CGLRendererInfoObj rend;
531 GLint nrend = 0;
532 CGLQueryRendererInfo(0xffffffff, &rend, &nrend);
533 for (GLint i = 0; i < nrend; ++i) {
534 OpenGLRendererInfo info;
535 GLint rendererID, haccelerated;
536 if (CGLDescribeRenderer(rend, i, kCGLRPRendererID, &rendererID) != kCGLNoError) {
537 qDebug() << "Could not describe OpenGL renderer" << i;
538 continue;
539 }
540 CGLDescribeRenderer(rend, i, kCGLRPAccelerated, &haccelerated);
541
542 // We don't allow renderers that are not hardware accelerated
543 if (!haccelerated) {
544 qDebug() << "OpenGL renderer" << RendererIDString(rendererID) << "is not accelerated";
545 continue;
546 }
547
548 info.rendererID.renderID = rendererID;
549
550#if !defined(MAC_OS_X_VERSION_10_7) || \
551 MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_7
552 GLint nBytesMem;
553 CGLDescribeRenderer(rend, i, kCGLRPVideoMemory, &nBytesMem);
554 GLint nBytesTexMem;
555 CGLDescribeRenderer(rend, i, kCGLRPTextureMemory, &nBytesTexMem);
556 qDebug() << "OpenGL renderer" << RendererIDString(rendererID) << "has" << nBytesMem/(1024.*1024.) << "MB of VRAM and" << nBytesTexMem/(1024.*1024.) << "MB of texture";
557
558 info.maxMemBytes = (std::size_t)nBytesMem;
559#else
560 //Available in OS X v10.0 and later.
561 //Deprecated in OS X v10.7.
562 GLint nMBMem;
563 CGLDescribeRenderer(rend, i, kCGLRPVideoMemoryMegabytes, &nMBMem);
564 GLint nMBTexMem;
565 CGLDescribeRenderer(rend, i, kCGLRPTextureMemoryMegabytes, &nMBTexMem);
566
567 info.maxMemBytes = (std::size_t)nMBMem * 1e6;
568 qDebug() << "OpenGL renderer" << RendererIDString(rendererID) << "has" << nMBMem << "MB of VRAM and" << nMBTexMem << "MB of texture";
569
570 // Available in OS X v10.9
571 //GLint maxOpenGLMajorVersion;
572 //CGLDescribeRenderer(rend, i, kCGLRPMajorGLVersion, &maxOpenGLMajorVersion);
573
574#endif
575 /*GLint fragCapable, clCapable
576 CGLDescribeRenderer(rend, i, kCGLRPGPUFragProcCapable, &fragCapable);
577 CGLDescribeRenderer(rend, i, kCGLRPAcceleratedCompute, &clCapable);*/
578 //info.fragCapable = (bool)fragCapable;
579 //info.clCapable = (bool)clCapable;
580

Callers

nothing calls this directly

Calls 5

RendererIDStringFunction · 0.85
makeAttribsFromFBConfigFunction · 0.85
FramebufferConfigClass · 0.85
gladLoadGLFunction · 0.50
push_backMethod · 0.45

Tested by

no test coverage detected