Not logged inOpenClonk Forum
Up Topic General / Help and Questions / clonk shader fails
- - By Anonymous [nz] Date 2012-12-09 06:16
it loads fine but when it gets to the landscape shader it fails
[18:05:35] Command line: C:\Program Files (x86)\Desura\Common\OpenClonk\clonk.exe
[18:05:35] OpenClonk Beyond the Rocks Delta
[18:05:35] Version: 5.3.2 [024] Delta win-x86 (a3e9cf2b0d46)
[18:05:36] Loading graphics...
[18:05:43] Scenario: C:\Program Files (x86)\Desura\Common\OpenClonk\\Tutorial.ocf\Tutorial01.ocs
[18:05:43] Scenario uses specified object definitions.
[18:05:43] Loading extras...
[18:05:44] Loading graphics...
[18:05:45] Loading object definitions:
[18:05:45] Objects.ocd...
[18:05:50] [FIXME] Shovel.ocd: Vertex declaration with multiple sets of texture coordinates found; game will only use the first.
[18:05:53] [FIXME] InventorsLab.ocd: Vertex declaration with multiple sets of texture coordinates found; game will only use the first.
[18:05:53] [FIXME] InventorsLab.ocd: Vertex declaration with multiple sets of texture coordinates found; game will only use the first.
[18:05:53] [FIXME] InventorsLab.ocd: Vertex declaration with multiple sets of texture coordinates found; game will only use the first.
[18:05:53] [FIXME] InventorsLab.ocd: Vertex declaration with multiple sets of texture coordinates found; game will only use the first.
[18:05:54] [FIXME] Shipyard.ocd: Vertex declaration with multiple sets of texture coordinates found; game will only use the first.
[18:05:54] [FIXME] Shipyard.ocd: Vertex declaration with multiple sets of texture coordinates found; game will only use the first.
[18:05:56] [FIXME] Coniferous.ocd: Vertex declaration with multiple sets of texture coordinates found; game will only use the first.
[18:05:57]    258 definitions loaded.
[18:05:57] Tutorial.ocf...
[18:05:57] Failed to read material script: Flag.ocd/Scene.material:1: Material with name 'Flag' is already defined in Flag.ocd/Scene.material:2
[18:05:57]    5 definitions loaded.
[18:05:57] Tutorial01.ocs...
[18:05:57]    0 definitions loaded.
[18:05:57] C4AulScriptEngine linked - 43190 lines, 0 warnings, 0 errors
[18:05:57] Texture table holds 39 entries.
[18:05:59] 30 textures loaded.
[18:05:59] 20 materials loaded.
[18:05:59] Creating landscape...
[18:06:00]   gl: Texturing uses 29 slots at 512x512, 6 levels (44 MB total)
[18:06:00]   gl: Compiling vertex shader 0:
[18:06:00] Vertex shader was successfully compiled to run on hardware.
[18:06:00]   gl: Compiling fragment shader 0:
[18:06:00] Fragment shader failed to compile with the following errors:
[18:06:00] ERROR: 4:22: error(#206) Assigning non-constant to = const highp 2-component vector of float
[18:06:00] ERROR: error(#273) 1 compilation errors.  No code generated
[18:06:00]   gl: Compiling vertex shader 1:
[18:06:00] Vertex shader was successfully compiled to run on hardware.
[18:06:00]   gl: Compiling fragment shader 1:
[18:06:00] Fragment shader failed to compile with the following errors:
[18:06:00] ERROR: 4:22: error(#206) Assigning non-constant to = const highp 2-component vector of float
[18:06:00] ERROR: error(#273) 1 compilation errors.  No code generated
[18:06:00]   gl: Compiling vertex shader 2:
[18:06:00] Vertex shader was successfully compiled to run on hardware.
[18:06:00]   gl: Compiling fragment shader 2:
[18:06:00] Fragment shader failed to compile with the following errors:
[18:06:00] ERROR: 4:22: error(#206) Assigning non-constant to = const highp 2-component vector of float
[18:06:00] ERROR: error(#273) 1 compilation errors.  No code generated
[18:06:00]   gl: Compiling vertex shader 3:
[18:06:00] Vertex shader was successfully compiled to run on hardware.
[18:06:00]   gl: Compiling fragment shader 3:
[18:06:00] Fragment shader failed to compile with the following errors:
[18:06:00] ERROR: 4:22: error(#206) Assigning non-constant to = const highp 2-component vector of float
[18:06:00] ERROR: error(#273) 1 compilation errors.  No code generated
[18:06:00]   gl: Compiling vertex shader 4:
[18:06:00] Vertex shader was successfully compiled to run on hardware.
[18:06:00]   gl: Compiling fragment shader 4:
[18:06:00] Fragment shader failed to compile with the following errors:
[18:06:00] ERROR: 4:22: error(#206) Assigning non-constant to = const highp 2-component vector of float
[18:06:00] ERROR: error(#273) 1 compilation errors.  No code generated
[18:06:00]   gl: Compiling vertex shader 5:
[18:06:00] Vertex shader was successfully compiled to run on hardware.
[18:06:00]   gl: Compiling fragment shader 5:
[18:06:00] Fragment shader failed to compile with the following errors:
[18:06:00] ERROR: 4:22: error(#206) Assigning non-constant to = const highp 2-component vector of float
[18:06:00] ERROR: error(#273) 1 compilation errors.  No code generated
[18:06:00]   gl: Compiling vertex shader 6:
[18:06:00] Vertex shader was successfully compiled to run on hardware.
[18:06:00]   gl: Compiling fragment shader 6:
[18:06:00] Fragment shader failed to compile with the following errors:
[18:06:00] ERROR: 4:22: error(#206) Assigning non-constant to = const highp 2-component vector of float
[18:06:00] ERROR: error(#273) 1 compilation errors.  No code generated
[18:06:00]   gl: Compiling vertex shader 7:
[18:06:00] Vertex shader was successfully compiled to run on hardware.
[18:06:00]   gl: Compiling fragment shader 7:
[18:06:00] Fragment shader failed to compile with the following errors:
[18:06:00] ERROR: 4:22: error(#206) Assigning non-constant to = const highp 2-component vector of float
[18:06:00] ERROR: error(#273) 1 compilation errors.  No code generated
[18:06:00]   gl: Failed to link shader!
[18:06:00] FATAL ERROR: [!] Could not initialize landscape shader!
[18:06:00] FATAL ERROR: Landscape error.
[18:06:01] Game cleared.
[18:06:02] Loading graphics...
[18:06:04] [Msg] Error Log: [!] Could not initialize landscape shader!|Landscape error.
[18:06:11] Game cleared.
[18:06:11] Engine shut down.
Reply
Parent - - By PeterW [gb] Date 2012-12-09 14:08 Edited 2012-12-09 14:12
Hm, interesting. What driver version?

Line 22 is "const vec2 scalerStepX = vec2(1.0 / 8.0, 0.0);", so my best initial guess would be that for some reason your driver doesn't support arithmetic in calculating constants.

Could you maybe try to unpack Graphics.ocg and replace the "const" lines in LandscapeShader.c with:

const vec2 scalerStepX = vec2(0.125, 0.0);
const vec2 scalerStepY = vec2(0.0, 0.03125);
const vec2 scalerOffset = vec2(0.04166666666667, 0.01041666666667);
const vec2 scalerPixel = vec2(0.04166666666667, 0.01041666666667);


That *could* fix the problem.
Parent - - By Sven2 [de] Date 2012-12-09 14:40
Maybe you can change that in the repos? I see no downside to it and you might add the 1.0/8.0 as a comment for clarity.
Parent - - By PeterW [gb] Date 2012-12-09 15:52 Edited 2012-12-09 16:02
If we can confirm that this works - yes, possibly. Or I'll put the math into engine.

I'm still a bit confused why representing 1/3 in floats hasn't become a problem yet. Half-speculating that the driver might actually optimize out the divisor when realizing that the surface has a size divisible by 3 or something...

Edit: Just checked - the GLSL 1.10 specs (7 years old!) already states that:

> An integral constant expression can be one of
> * a literal integer value
> ...
> * an expression whose operands are integral constant expressions, including constructors, but excluding function calls.


This should be completely legal...
Parent - - By Isilkor Date 2012-12-11 00:54
I think you wanted to paste the preceding paragraph; this isn't an integral constant expression, after all.

> Initializers for const declarations must be formed from literal values, other const variables (not including function call paramaters), or expressions of these.
> Constructors may be used in such expressions, but function calls may not.

Reply
Parent - By PeterW [gb] Date 2012-12-11 01:06
Right. Even read that paragraph, but though the other sounded more appropriate. But integral is the wrong keyword here, I guess.
Up Topic General / Help and Questions / clonk shader fails

Powered by mwForum 2.29.7 © 1999-2015 Markus Wichitill