Modding, Mission Design, and Coding > Test Builds

Shader versioning test

(1/9) > >>

There's a pull request to hopefully fix shader compilation on certain drivers, but it may break others. In the interests of collecting data, we'd like people to run both a recent Nightly Build and this test build with shaders enabled and report if there are any differences (e.g. if you can run a normal build with shaders, but can't run this build with shaders, or vice versa, let us know and share your debug log).


Please note that since we want to test shader compilation, you will need to remove the -no_glsl ("Disable GLSL (shader) Support") command-line option (and probably -disable_glsl_model / "Don't use shaders for model rendering" as well) for this test.

If you disabled the commandline options AdmiralRalwood mentioned you should be able to test it by simply going to the Tech Room and looking at a ship model.

It would help to use the MediaVPs so that we actually are using most of the shaders too?

The background context here is standards compliance with the OpenGL GLSL shader language.

Per the specifications, it is clear that the start of a shader (whether a fragment, vertex, or geometry shader etc) *must* begin with a version declaration which informs the driver which feature set is expected by the program / shader. e.g.

--- Code: ---#version 120
// Shader code goes here

--- End code ---

Now driver conformance with the OpenGL specification is a mixed bag. As engine developers, we have to work with these quirks in the same way web developers have worked around browser-specific interpretations.

In this case, the specification is clear we *must* include a #version directive. We want to understand from this test which combinations (hardware, driver and OS) correctly interpret this. i.e.

* Mesa (Intel, nVidia, and AMD; open source driver on Linux): correctly requires a #version directive.
* nVidia GeForce (nVidia, closed source driver on Windows/Linux): correctly requires a #version directive?
* AMD Catalyst (AMD, closed source driver on Windows/Linux): barfs with a #version directive and certain OpenGL features.
* OS X ([all?], closed source driver on OS X): correctly requires a #version directive.Now it may also be that our fs2open shaders are making errors too, which we can confirm by putting them through a reference GLSL compiler.

As GPUs become fully programmable devices, the former fixed function pipeline approaches are less relevant and shader-driven approaches come to the fore. We'd like to better understand the environment we are working with at the moment.

OK - recent master builds work, but a build from the PR does not. It exits as soon as I view a ship in the ship lab or tech room.

OS: Linux Mint 17 64bit
Card: GeForce GTS 450
NVIDIA Driver Version: 340.76 (closed source drivers supplied by distro)

Log here, as a wild guess I think my setup wants #version 140 in the shaders rather than #version 120 :)


[0] Message Index

[#] Next page

Go to full version