草庐IT

linux - 如何在 headless 服务器上利用我的独立显卡?

我正在为BioMesh3D开发一个远程可视化项目,利用增强的服务器进行处理和渲染。如果我们将用户设置为自动登录到图形桌面,就很容易让它工作,因为这样我们就有了一个正在运行的xserver。我们希望完全headless地运行它,而无需进行自动登录。如果我们想完全headless地运行服务器,似乎我们唯一的选择就是依赖像Xvfb这样的东西。但由于我们正在做一些相当复杂的渲染,我们想利用独立显卡。是否可以让Xvfb使用显卡?如果没有,我们可以使用其他方法吗? 最佳答案 如果您想在Linux上使用硬件OpenGL渲染,那么您的选择是:尝试使

c++ - 如何使用 QT、OpenGL、C++ 和 Linux 更改屏幕分辨率?

我只想做一个全屏游戏。我知道如何在Windows上更改分辨率,但如何在Linux下更改分辨率?是否有跨平台的QT解决方案?我的GLWidget周围也有边框。如何让小部件覆盖整个窗口?我只是要发布代码:#includeclassGLWidget:publicQGLWidget{public:voidinitializeGL(){glClearColor(0.0f,0.0f,1.0f,0.0f);glClearDepth(1.0f);}voidpaintGL(){glClear(GL_COLOR_BUFFER_BIT);}voidresizeGL(intwidth,intheight){i

c++ - 如何使用 QT、OpenGL、C++ 和 Linux 更改屏幕分辨率?

我只想做一个全屏游戏。我知道如何在Windows上更改分辨率,但如何在Linux下更改分辨率?是否有跨平台的QT解决方案?我的GLWidget周围也有边框。如何让小部件覆盖整个窗口?我只是要发布代码:#includeclassGLWidget:publicQGLWidget{public:voidinitializeGL(){glClearColor(0.0f,0.0f,1.0f,0.0f);glClearDepth(1.0f);}voidpaintGL(){glClear(GL_COLOR_BUFFER_BIT);}voidresizeGL(intwidth,intheight){i

c++ - SDL2 - 检查是否创建了 OpenGL 上下文

我正在使用SDL2和OpenGL创建一个应用程序,它在3台不同的计算机上运行良好。但是在另一台计算机(更新的archlinux)上,它不会,并且会因以下错误而崩溃:OpenGLcontextalreadycreated所以我的问题是:如何检查OpenGL上下文是否已创建?然后,如果它已经创建,我如何获得它的句柄?如果我不能这样做,我该如何绕过这个问题? 最佳答案 SDL2实际上不会在您没有要求的情况下创建OpenGL上下文。但是,如果您要求它在OpenGL根本不工作时创建一个OpenGL上下文,SDL2喜欢,erm,有点自由式。(实

c++ - SDL2 - 检查是否创建了 OpenGL 上下文

我正在使用SDL2和OpenGL创建一个应用程序,它在3台不同的计算机上运行良好。但是在另一台计算机(更新的archlinux)上,它不会,并且会因以下错误而崩溃:OpenGLcontextalreadycreated所以我的问题是:如何检查OpenGL上下文是否已创建?然后,如果它已经创建,我如何获得它的句柄?如果我不能这样做,我该如何绕过这个问题? 最佳答案 SDL2实际上不会在您没有要求的情况下创建OpenGL上下文。但是,如果您要求它在OpenGL根本不工作时创建一个OpenGL上下文,SDL2喜欢,erm,有点自由式。(实

c - glPopMatrix() 大喊 "unsupported texture format in setup_hardware_state"

我正尝试在Linux专用视频播放器中进行一些优化以提高性能,因为播放MP4文件对CPU占用很大,因为视频帧是用YV12编码的并且OpenGL不提供显示此格式的native方式。现在有一个代码在CPU上运行,在将图像发送到GPU进行显示之前将YV12转换为RGB,这会占用100%的CPU处理。我目前正在研究如何解码YV12帧而无需编写着色器来执行YV12->RGB转换。据我所知,一种方法是通过GL_MESA_ycbcr_texture,我的系统显然支持它(由glxinfo报告)。在这个FedoraBox中,我有一个ATITechnologiesIncRV610视频设备[RadeonHD2

c - glPopMatrix() 大喊 "unsupported texture format in setup_hardware_state"

我正尝试在Linux专用视频播放器中进行一些优化以提高性能,因为播放MP4文件对CPU占用很大,因为视频帧是用YV12编码的并且OpenGL不提供显示此格式的native方式。现在有一个代码在CPU上运行,在将图像发送到GPU进行显示之前将YV12转换为RGB,这会占用100%的CPU处理。我目前正在研究如何解码YV12帧而无需编写着色器来执行YV12->RGB转换。据我所知,一种方法是通过GL_MESA_ycbcr_texture,我的系统显然支持它(由glxinfo报告)。在这个FedoraBox中,我有一个ATITechnologiesIncRV610视频设备[RadeonHD2

c - 你如何在 Ubuntu 上编译 OpenGL 程序?

当我尝试编译thefirstexample在thispage使用:cc-oabgrabgr.c-lglut-lGLU-lGL-lXmu-lXext-lX11-lm我收到一条错误消息:/usr/bin/ld:cannotfind-lXmucollect2:ldreturned1exitstatus什么是“lXmu”?我如何编译它? 最佳答案 尝试安装libxmu-dev。sudoapt-getinstalllibxmu-dev 关于c-你如何在Ubuntu上编译OpenGL程序?,我们在S

c - 你如何在 Ubuntu 上编译 OpenGL 程序?

当我尝试编译thefirstexample在thispage使用:cc-oabgrabgr.c-lglut-lGLU-lGL-lXmu-lXext-lX11-lm我收到一条错误消息:/usr/bin/ld:cannotfind-lXmucollect2:ldreturned1exitstatus什么是“lXmu”?我如何编译它? 最佳答案 尝试安装libxmu-dev。sudoapt-getinstalllibxmu-dev 关于c-你如何在Ubuntu上编译OpenGL程序?,我们在S

wayland 之opengl es

  EGL是OpenGLES渲染API和本地窗口系统(nativeplatformwindowsystem)之间的一个中间接口层,它主要由系统制造商实现。使用EGL绘图的基本步骤Display(EGLDisplay)是对实际显示设备的抽象。Surface(EGLSurface)是对用来存储图像的内存区域FrameBuffer的抽象,包括ColorBuffer,StencilBuffer,DepthBuffer。Context(EGLContext)存储OpenGLES绘图的一些状态信息。使用EGL的绘图的一般步骤:获取EGLDisplay对象:eglGetDisplay()初始化与EGLDis