OpenSpades crash

OpenSpades is an open source alternative client for AoS Classic and beyond! Runs on Windows, Mac, and Linux. Created by yvt.
Compatible with AoS Classic.
10 posts Page 1 of 1 First unread post
ViWalls
Winter Celebration 2013
Winter Celebration 2013
Posts: 5
Joined: Fri Dec 20, 2013 4:45 pm


Someone knows how to resolve this problem?
Code: Select all
2016/05/05 04:37:37 [..\..\Sources\Draw\GLProgramManager.cpp:137] Loading GLSL shader 'Shaders/PostFilters/CameraBlur.fs'
2016/05/05 04:37:37 [..\..\Sources\Draw\GLRenderer.cpp:210] GLRender finalizing
2016/05/05 04:37:37 [..\..\Sources\Draw\GLRenderer.cpp:298] New map loaded; freeing old renderers...
2016/05/05 04:37:37 [..\..\Sources\Draw\GLRenderer.cpp:337] No map loaded
2016/05/05 04:37:37 [..\..\Sources\Draw\GLRenderer.cpp:250] GLRenderer finalized
2016/05/05 04:37:37 [..\..\Sources\Gui\Runner.cpp:54] [!] Unhandled exception in SDLRunner:
Error while compiling a shader:

Fragment shader failed to compile with the following errors:
ERROR: 0:33: error(#133) Reserved word: filter
ERROR: 0:33: error(#132) Syntax error: "filter" parse error
ERROR: error(#273) 2 compilation errors.  No code generated



Shader source:

#define USE_HDR 1
#define LINEAR_FRAMEBUFFER 1
#define USE_VOLUMETRIC_FOG 0
/*
 Copyright (c) 2013 yvt
 
 This file is part of OpenSpades.
 
 OpenSpades is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation, either version 3 of the License, or
 (at your option) any later version.
 
 OpenSpades is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied 

at ..\..\Sources\Draw\GLShader.cpp:88
?Compile@GLShader@draw@spades@@QAEXXZ at ..\..\Sources\Draw\GLShader.cpp:56
?CreateShader@GLProgramManager@draw@spades@@AAEPAVGLShader@23@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z at ..\..\Sources\Draw\GLProgramManager.cpp:135
?CreateProgram@GLProgramManager@draw@spades@@AAEPAVGLProgram@23@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z at ..\..\Sources\Draw\GLProgramManager.cpp:86
?RegisterProgram@GLProgramManager@draw@spades@@QAEPAVGLProgram@23@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z at ..\..\Sources\Draw\GLProgramManager.cpp:58
?DoInit@MainScreen@gui@spades@@AAEXXZ at ..\..\Sources\Gui\MainScreen.cpp:274
?RunFrame@MainScreen@gui@spades@@UAEXM@Z at ..\..\Sources\Gui\MainScreen.cpp:234
?Run@SDLRunner@gui@spades@@QAEXHH@Z at ..\..\Sources\Gui\SDLRunner.cpp:414
?Run@Runner@gui@spades@@QAEXXZ at ..\..\Sources\Gui\Runner.cpp:75
?RunProtected@Runner@gui@spades@@QAEXXZ at ..\..\Sources\Gui\Runner.cpp:48
_SDL_main at ..\..\Sources\Gui\Main.cpp:369

2016/05/05 04:37:45 [..\..\Sources\Core\Settings.cpp:268] Saving preference to SPConfig.cfg
2016/05/05 04:37:45 [..\..\Sources\Core\Settings.cpp:184] Saving preferences to SPConfig.cfg
2016/05/05 04:37:45 [..\..\Sources\Gui\Main.cpp:94] Thread quantum was restored
Chameleon
Modder
Modder
Posts: 601
Joined: Thu Nov 22, 2012 6:41 pm


Did you do anything with shaders? Because it seems that you've edited them and used word "filter", which is reserved for some programming function (like "for" "if" "while")
Marisa Kirisame
Deuced Up
Posts: 152
Joined: Sat Sep 21, 2013 10:52 pm


ViWalls wrote:
Code: Select all
2016/05/05 04:37:37 [..\..\Sources\Gui\Runner.cpp:54] [!] Unhandled exception in SDLRunner:
Error while compiling a shader:

Fragment shader failed to compile with the following errors:
ERROR: 0:33: error(#133) Reserved word: filter
ERROR: 0:33: error(#132) Syntax error: "filter" parse error
ERROR: error(#273) 2 compilation errors.  No code generated
What GPU is this?

I'm guessing it's a Radeon, partly because the error line syntax isn't Intel's (well, Mesa's - I don't know what the non-Mesa Intel error messages look like) nor is it nVidia's, and partly because ever since AMD took over the Radeon drivers have been getting worse every single update.
Chameleon wrote:
Did you do anything with shaders?
Not at all. I would bet money that the shaders were untouched. In fact, "filter()" is a function.

Here's the problem. If a '#version' line is not defined, the shader defaults to GLSL 1.10. You absolutely MUST define a #version line if you want any newer feature. But the fuckwits who wrote the driver decided "HEY LET'S BE FUCKWITS AND MAKE IT USE THE LATEST VERSION AND INTRODUCE EVEN MORE COMPATIBILITY ISSUES".

"filter" was added as a reserved keyword in GLSL 1.30.
The GLSL 1.30 spec, which the fuckwits who made your driver didn't read wrote:
Version 1.10 of the language does not require shaders to include [the #version] directive, and shaders that do not include a #version directive will be treated as targeting version 1.10.
(emphasis mine)

TL;DR the fuckwits who wrote your graphics drivers are fuckwits. Also water is wet. OpenSpades needs to work around those fuckwits as said fuckwits won't do a thing.
longbyte1
Deuced Up
Posts: 336
Joined: Sun Jul 21, 2013 7:27 pm


maybe uh yvt should have included a #version next time?
Marisa Kirisame
Deuced Up
Posts: 152
Joined: Sat Sep 21, 2013 10:52 pm


longbyte1 wrote:
maybe uh yvt should have included a #version next time?
Maybe GPU driver writers shouldn't be such fuckwits.

Until then, the fix is to rename the instances of `filter` with sometihng else, e.g. `fuck_amd`.
longbyte1
Deuced Up
Posts: 336
Joined: Sun Jul 21, 2013 7:27 pm


why couldn't the fix be to add a #version line?
Marisa Kirisame
Deuced Up
Posts: 152
Joined: Sat Sep 21, 2013 10:52 pm


longbyte1 wrote:
why couldn't the fix be to add a #version line?
It probably wouldn't fix it. Plus, if the aim is to get it working on GL 2.0 and up, then that needs GLSL 1.10, which DOES NOT HAVE A VERSION LINE.

Honestly, the true solution is to bleach the gene pool.
longbyte1
Deuced Up
Posts: 336
Joined: Sun Jul 21, 2013 7:27 pm


Marisa Kirisame wrote:
longbyte1 wrote:
why couldn't the fix be to add a #version line?
It probably wouldn't fix it. Plus, if the aim is to get it working on GL 2.0 and up, then that needs GLSL 1.10, which DOES NOT HAVE A VERSION LINE.

Honestly, the true solution is to bleach the gene pool.
Oh well you should have just told me glsl 1.10 doesn't support #version lines.
Marisa Kirisame
Deuced Up
Posts: 152
Joined: Sat Sep 21, 2013 10:52 pm


longbyte1 wrote:
Oh well you should have just told me glsl 1.10 doesn't support #version lines.
Open your eyes:
Marisa Kirisame wrote:
The GLSL 1.30 spec, which the fuckwits who made your driver didn't read wrote:
Version 1.10 of the language does not require shaders to include [the #version] directive, and shaders that do not include a #version directive will be treated as targeting version 1.10.
(emphasis mine)
To clarify, this is from the official GLSL specification.
longbyte1
Deuced Up
Posts: 336
Joined: Sun Jul 21, 2013 7:27 pm


the spec wrote:
Version 1.10 of the language does not require shaders to include [the #version] directive, and shaders that do not include a #version directive will be treated as targeting version 1.10.
is very different than
what you just told me wrote:
DOES NOT HAVE A VERSION LINE.
If what you're telling me is correct, explicitly adding a #version line for GL 1.10 shaders will fix the problem.
10 posts Page 1 of 1 First unread post
Return to “OpenSpades Discussion”

Who is online

Users browsing this forum: No registered users and 23 guests