RobertBeckebans / RBDOOM-3-BFG

Doom 3 BFG Edition source port with updated DX12 / Vulkan renderer and modern game engine features
https://www.moddb.com/mods/rbdoom-3-bfg
GNU General Public License v3.0
1.38k stars 247 forks source link

GL_ARB_multitexture not available while it actually is #107

Closed showlabor closed 8 years ago

showlabor commented 10 years ago

RBDoom3BFG fails with "ERROR: GL_ARB_multitexture not available".

glxinfo on the other hand shows that it is available. So does the system installed glewinfo.

I'm on Fedora 20 (x86_64) with a Radeon R7 260x on MESA drivers using RBDOOM3BFG from commit c1b73088621aad3ec5fd42848f6d2193962bb1fe.

Here's the complete startup log:

./RBDoom3BFG 
QA Timing INIT: 000874ms
RBDOOM 3 BFG 1.0.1.1400 linux-x86_86 May 12 2014 10:07:42
found interface lo - loopback
found interface eth0 - 192.168.178.36/255.255.255.0
found interface virbr0 - 192.168.122.1/255.255.255.0
------ Initializing File System ------
Loaded resource file _common.resources
Loaded resource file _ordered.resources
Loaded resource file _sound_pc.resources
Loaded resource file _sound_pc_gr.resources
Current search path:
/home/fex/NOBACKUP/games/doom3bfg/base
/home/fex/.rbdoom3bfg/base
file system initialized.
--------------------------------------
WARNING: Unable to open resource file maps/_startup.resources
----- Initializing Decls -----
------------------------------
Couldn't open journal files
/proc/cpuinfo CPU processors: 4
/proc/cpuinfo CPU logical cores: 4
execing default.cfg
couldn't exec D3BFGConfig.cfg
couldn't exec autoexec.cfg
----- R_InitOpenGL -----
Initializing OpenGL subsystem
Using 8 color bits, 24 depth, 8 stencil display
Using GLEW 1.10.0
OpenGL Version  : 3.3
OpenGL Vendor   : X.Org
OpenGL Renderer : Gallium 0.4 on AMD BONAIRE
OpenGL GLSL     : 3.3
   maxTextureAnisotropy: 16.000000
...using GL_EXT_texture_lod_bias
X..GL_GREMEDY_string_marker not found
X..GL_EXT_framebuffer_object not found
...using GL_EXT_framebuffer_blit
TODO: Sys_SetClipboardData
--------- Game Map Shutdown ----------
--------------------------------------
Setup OpenAL device and context... Done.
OpenAL vendor: OpenAL Community
OpenAL renderer: OpenAL Soft
OpenAL version: 1.1 ALSOFT 1.15.1
OpenAL extensions: AL_EXT_ALAW AL_EXT_DOUBLE AL_EXT_EXPONENT_DISTANCE AL_EXT_FLOAT32 AL_EXT_IMA4 AL_EXT_LINEAR_DISTANCE AL_EXT_MCFORMATS AL_EXT_MULAW AL_EXT_MULAW_MCFORMATS AL_EXT_OFFSET AL_EXT_source_distance_model AL_LOKI_quadriphonic AL_SOFT_buffer_samples AL_SOFT_buffer_sub_data AL_SOFTX_deferred_updates AL_SOFT_direct_channels AL_SOFT_loop_points AL_SOFT_source_latency
********************
ERROR: GL_ARB_multitexture not available
********************
Sys_Error: Error during initialization
AL lib: (EE) alc_cleanup: 1 device not closed
RobertBeckebans commented 10 years ago

It looks like the driver isn't reporting the extensions that are part of the OpenGL 3.2 core. Do you run this with SDL 2 ?

showlabor commented 10 years ago

Yes, I was running it with SDL2. With SDL1 the game will start and I hear some music. The screen is tottally corrupted though.

You can find the output of glxinfo and glewinfo at https://github.com/showlabor/r7260x (uploaded them there since github doesn't allow file attachments).

So did I just get the glxinfo/glewinfo wrong (just grepped for GL_ARB_multitexture) and this is a driver issue after all?

RobertBeckebans commented 10 years ago

With SDL 2 it tries to request an OpenGL 3.2 compatibility profile. Maybe the driver thinks that it doesn't have to report the extensions anymore because they are part of the OpenGL 3.2 core. I'm going to make a branch for this within this week.

2014-05-13 11:14 GMT+02:00 Felix Homann notifications@github.com:

Yes, I was running it with SDL2. With SDL1 the game will start and I hear some music. The screen is tottally corrupted though.

You can find the output of glxinfo and glewinfo at https://github.com/showlabor/r7260x (uploaded them there since github doesn't allow file attachments).

So did I just get the glxinfo/glewinfo wrong (just grepped for GL_ARB_multitexture) and this is a driver issue after all?

— Reply to this email directly or view it on GitHubhttps://github.com/RobertBeckebans/RBDOOM-3-BFG/issues/107#issuecomment-42933285 .

showlabor commented 10 years ago

Just for the record: The issue is not exclusive to radeon Mesa drivers. rbdoom3-bfg behaves the same on Intel graphics.

ghost commented 10 years ago

Yes the same. A window appears and disappears instantly after i try to launch the game. terminal launch gives more or less the same warnings and errors.problem goes away when i switch to closed source binary blob (amd)

Midgardsomr commented 9 years ago

Same problem here with SDL2 activated. Is there a branch for mesa drivers i didn't found?

auledoom1 commented 9 years ago

For thouse with the open source RADEON drivers on the current mesa implemtation, this drivers doesnt support RGBA_MULTITEXTURE. Switchin to fglrx restricted ati driver solves the problem. Be aware that the fglrx beta driver installer may be buggy and need additional manual assistence to correctly load the driver on boot time, at least for my current ubuntu 14.04 XD (but finally get it working). running fglrxinfo displays this on my system: display: :0 screen: 0 OpenGL vendor string: Advanced Micro Devices, Inc. OpenGL renderer string: AMD Radeon HD 7480D OpenGL version string: 4.4.12967 Compatibility Profile Context 14.20

if the Opengl rendering string shows GALLIUM or something similar, you are still stuck with the opensource driver.

Hope this helps anyone with an ATI card.

John-Gee commented 9 years ago

Well, we would like this to work with Galllium3d not only FGLRX :)

auledoom1 commented 9 years ago

If Gallium3d will be a target, then a downgrade of the code that uses GLSL will also be necesary; or at least a safe check of the OpenGL and GLSL versions available on init to enable/disable some engine features. The current gallium3d driver lacks support for GLSL v1.5 as well (im using Oibaf's ppa repos on my ubuntu system). In the meantime, maybe a second readme just for linux systems, one that shows the actual systems requeriments and constrains will be nice ;D

John-Gee commented 9 years ago

Gallium3d's radeonsi has had 1.50 since January, or am I missing something ?

http://lists.freedesktop.org/archives/mesa-dev/2014-January/052430.html

auledoom1 commented 9 years ago

According to this http://www.mesa3d.org/relnotes/10.2.5.html "some drivers don't support all the features required in OpenGL 3.3", i don't know for my particular case if the features are not implemented, or have buggy implementation, or need some aditional tweaking. I'm not an expert on the subject, just sharing my personal experience on my particular case XD Fact: ubuntu 14.04 won't run rbdoom with Gallium3d default installation on a RADEON HD7480D, not either using the latest updates from the Oibaf's repo, just installing fglrx driver solves both issue.#107 and #137

John-Gee commented 9 years ago

Right, but there's more in the text you are quoting that might be of interest: " OpenGL 3.3 is only available if requested at context creation because compatibility contexts are not supported." That could be why.

My glxinfo: "OpenGL vendor string: X.Org OpenGL renderer string: Gallium 0.4 on AMD TAHITI OpenGL core profile version string: 3.3 (Core Profile) Mesa 10.3.0-devel (git-088106f) OpenGL core profile shading language version string: 3.30 OpenGL core profile context flags: (none) OpenGL core profile profile mask: core profile"

Yes it says 10.3.0-dev so maybe it implementend what 10.2.5 didn't, but I doubt it.

You can also check that one, which is more precise: http://cgit.freedesktop.org/mesa/mesa/tree/docs/GL3.txt

"GL 3.2, GLSL 1.50 --- all DONE: i965, nv50, nvc0, r600, radeonsi"

John-Gee commented 9 years ago

and thanks to this commit now it works!

https://github.com/RobertBeckebans/RBDOOM-3-BFG/commit/9147482a370aa7764231a56b5e20e07bcceb5da8

urbenlegend commented 9 years ago

I downloaded the latest master and I am still having this issue on Intel drivers with Core i7-4600U with HD graphics 4400

I am running Ubuntu 14.04 with default drivers.

JanSimek commented 9 years ago
OpenGL Vendor   : X.Org
OpenGL Renderer : Gallium 0.4 on AMD TAHITI
OpenGL GLSL     : 3.3

I still get this error about GL_ARB_multitexture not being available. When I enable glewExperimental it doesn't complain anymore, but the shaders aren't compiled:

GLSL ES 3.00 is not supported. Supported versions are: 1.10, 1.20, 1.30, 1.40, 1.50, 3.30, and 1.00 ES

So I commented out the line in RendererSystem_init.cpp which sets the driver type to GLDRV_OPENGL_MESA and it works. So if I understand it right OpenGL ES should not be used on systems with Gallium+ATI driver?