Modding, Mission Design, and Coding > Test Builds

Shader versioning test

(1/9) > >>

AdmiralRalwood:
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).

SSE2: http://deviance.duckish.net/downloads/fs2_fred2_open_PR316_SSE2.7z
AVX: http://deviance.duckish.net/downloads/fs2_fred2_open_PR316_AVX.7z

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.

m!m:
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.

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

Echelon9:
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.

niffiwan:
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 :)

Navigation

[0] Message Index

[#] Next page

Go to full version