我正在尝试使用自定义的SDL2编译项目(tyr-quake)。我的SDL2构建会禁用所有加速的视频(OpenGL,OpenGLES,Vulkan,Metal等),X11和Wayland,但启用KMSDRM。
一切都很好,我也想用此SDL2版本编译的项目也已编译。除了运行时,SDL_CreateRenderer
返回Couldn't find matching render driver
(即使我修改了源以传递它SDL_RENDERER_SOFTWARE
并将SDL_HINT_FRAMEBUFFER_accELERATION
提示设置为"0"
)。>
我稍微看了一下SDL源代码,确实调用了软件SW_CreateRenderer
,但是稍后(在SDL_CreateWindowTexture
中),它仍然想使用其他渲染驱动器创建渲染器(它明确避免使用该软件)。
我还尝试修补源代码以执行以下操作:
SDL_Surface *surface = SDL_GetWindowSurface(sdl_window);
renderer = SDL_CreateSoftwareRenderer(surface);
但这也失败了,因为SDL_GetWindowSurface
以No hardware accelerated renderers available
失败并返回NULL。
我的问题是:使用KMSDRM时,是否可以仅使用SDL进行软件渲染,还是我需要启用某些硬件加速渲染选项并可用?