首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用Ryzen 7在Windows上修复QT5.9线程的处理器关联

如何用Ryzen 7在Windows上修复QT5.9线程的处理器关联
EN

Stack Overflow用户
提问于 2017-08-06 08:09:48
回答 1查看 564关注 0票数 0

我一直在用OpenSceneGraph-3.4.0和QT5.9中的GUI为我的硕士论文开发一个程序(或者是在Visual 2015和2017中)。工作时一切都很好,但现在我家里有了一台新电脑,我试着让它运转起来。

但是,当我为查看器调用frame()方法时,在QtThread.cpp中,特别是在下面的行中,在setProcessorAffinity(unsigned int cpunum)中会出现读取访问冲突:

代码语言:javascript
复制
QtThreadPrivateData* pd = static_cast<QtThreadPrivateData*>(_prvData);

以下是完整的功能(QtThread.cpp是OSG的OpenThreads的一部分):

代码语言:javascript
复制
// Description:  set processor affinity for the thread
//
// Use: public
//
int Thread::setProcessorAffinity(unsigned int cpunum)
{
    QtThreadPrivateData* pd = static_cast<QtThreadPrivateData*>(_prvData);
    pd->cpunum = cpunum;
    if (!pd->isRunning) return 0;

    // FIXME:
    // Qt doesn't have a platform-independent thread affinity method at present.
    // Does it automatically configure threads on different processors, or we have to do it ourselves?
    return -1;
}

OSG中的查看器设置为osgViewer::Viewer::SingleThreaded,但如果删除该行,则会在GraphicsWindowQt.cpp(OsgQt的一部分)中出现“无法使QOpenGLContext在另一个线程中流通”的错误,因此这可能是一个死胡同。

编辑用于澄清

我在osgViewer::Viewer对象上调用frame()。在这个函数中,查看器调用realize() (它是viewer类的函数)。在这里,调用setUpThreading()(它是Viewer类的函数)。这反过来在那里调用OpenThreads::SetProcessorAffinityOfCurrentThread(0),执行以下代码:

代码语言:javascript
复制
Thread* thread = Thread::CurrentThread();
if (thread)
    return thread->setProcessorAffinity(cpunum);

线程(在第一行之后)有一个值0x00000000fdfdfdfd,在我看来这是一个错误。在任何情况下,最后一个电话是我在我原来的问题上张贴的那个。

我甚至不知道从哪里开始修这个。我想,这是与处理器有关的问题。我的处理器是Ryzen 71700(在工作中它是英特尔的i7 3770k),所以这可能会有所帮助。否则,在家里,我使用的是Windows 10,而在工作中使用的是Windows 7。

我会感谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-14 13:51:12

因此,最后,它似乎是OpenThreads的一个问题(因此,OpenSceneGraph部分,我什么也做不了)。当对OpenSceneGraph源代码使用cmake时,有一个选项"BUILD_OPENTHREADS_WITH_QT“需要禁用

我在在OSG论坛上的这个帖子找到了解决方案,所以多亏了这个家伙。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45529960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档