VIDEO - Basic GLSL shader support (prototype)

Here you can discuss the development of patches.

VIDEO - Basic GLSL shader support (prototype)

Postby NY00123 » 2013-7-22 @ 15:11

NOTE: It actually seems like I wasn't the first to try this: viewtopic.php?p=240720#p240720. Haven't seen a recent response from that forum member, though.

[EDIT] Warning: Do not blame me if any arbitrary shader makes you feel bad (say dizzy) while using it. You're on your own anyway, and some things may currently be done in an improper way (technically).

======

Hey,

I have attached a patch that adds basic GLSL shader support, along with a few sample shaders, one of them being an adaptation of this: https://gitorious.org/bsnes/xml-shaders ... ced.shader.

Note that a pair of shader files (vertex and fragment) should go into a "glshaders" directory, located where the default DOSBox config file (i.e. dosbox-SVN.conf) is found. Basically, same as the "capture" dir. For more details see http://www.dosbox.com/wiki/Dosbox.conf.
Furthermore, the common filename (without the file extension) should be set in the DOSBox configuration file. Finally, OpenGL output is a must and it's also recommended to *disable* any software scaler. Furthermore, output=openglnb may work better.

Usage example for CRT-interlaced.glslf and CRT-interlaced.glslv:
Code: Select all
output=openglnb
glshader=CRT-interlaced

Code: Select all
scaler=none


Now, if one wonders why should that be done, especially considering the fact there is already a patch with shader support by gulikoza (actually a portion of a Direct3D patch), then here are a couple of reasons:
- Potentially prepare the GL code to be compatible with any environment that supports OpenGL ES 2.0 (but not desktop GL).
- Let the ones interested in that take advantage of shaders on a wider range of platforms.

Note that among the included shaders, there is an adaptation of the CRT-interlaced shader from a source tree relevant to the emulator that was known as bsnes (now named higan). It couldn't be used as-is, though, since I wanted to ensure it is ES 2.0 compatible. Basically, any usage of the fixed pipeline should be gone. In practice, the patch has not yet been tested with true OpenGL ES 2.0 (or OpenGL 3.1)...

It is further the case that a lot of the features of the XML shader file format described here are *not* implemented:
http://gitorious.org/bsnes/pages/XmlShaderFormat
However, it seems to me the format has changed since then, and there are still more changes to come, unsurprisingly. Furthermore, it's just simpler for now to have a pair of basic shader files that can be loaded by DOSBox. The "default" files attached here are also used internally in DOSBox (after applying the patch), in case no shader is desired or one is not found. Finally, it is actually the case for now that, more often than not, a custom fragment shader can be compiled with the internal default vertex shader.

A couple of changes to the format for compatibility with ES 2 (not tested so far): Specify a precision in each fragment shader for the various floats, and manually pass a set of vertices from the DOSBox app (which runs on a CPU) to the vertex shader.
Note that currently the texture coordinates are *not* passed. These are calculated by the vertex shader using the inputs rubyTextureSize and rubyInputSize, along with the input vertex coordinates. It may be more efficient to simply pass these to the vertex shader, rather than let it re-calculate this (a few times per frame). For now, though, this is the case.

Finally, based on the XML shader format, an internal frame counter (rubyFrameCount) is incremented once per frame. In case a custom shader is used, this is done even if there is no actual update to the screen, while a refresh is done on the emulated machine's side. This is done using very little code reminding of stuff done in gulikoza's Direct3D patch. However, *no* buffer swap is done and the shader program is *not* being executed if there is no actual update. If it were the case then someone could complain that GL VSync doesn't work well when it does on vanilla DOSBox.
You do not have the required permissions to view the files attached to this post.
Last edited by NY00123 on 2013-7-23 @ 07:23, edited 7 times in total.
NY00123
Member
 
Posts: 230
Joined: 2010-2-13 @ 19:42

Re: Basic GLSL shader support (prototype)

Postby Dominus » 2013-7-22 @ 15:45

Awesome! No more Windows only shaders! This might even have potential to get included in trunk (if we beg and sacrifice our goats).
As usual I have no time or rather my office gers renovated and my imac has no real place atm,,,
User avatar
Dominus
DOSBox Moderator
 
Posts: 7596
Joined: 2002-10-03 @ 09:54
Location: Vienna or Ludwigsburg

Re: Basic GLSL shader support (prototype)

Postby leileilol » 2013-7-22 @ 16:40

Indeed. I wonder if the EGA CRT shader will perform better in GLSL?

(Basically a combination of the EGAFilter with the CRT shader - it takes like 10 seconds for it to initialize per video mode change)
Voodoo2s aren't 100mhz stock
Geforce256 isn't released as a beta on New Years '99 under the Quadro brand
386DX vs SX isn't about a missing FPU
DOS gaming isn't a bilinear 320x200 16:10
DOS PCs aren't better than the Macintosh
Old PCs aren't 'aesthetic'
User avatar
leileilol
l33t++
 
Posts: 9252
Joined: 2006-12-16 @ 18:03

Re: Basic GLSL shader support (prototype)

Postby NY00123 » 2013-7-22 @ 17:50

Thanks for the interest so far!

leileilol wrote:Indeed. I wonder if the EGA CRT shader will perform better in GLSL?

(Basically a combination of the EGAFilter with the CRT shader - it takes like 10 seconds for it to initialize per video mode change)


One difference is that Microsoft provides its own HLSL shader compiler, while various (collections of) GPUs come with their own differents GLSL compilers.
As for your specific reported issue, one current limitation is that the GLSL shaders are recompiled when a video mode change is in process. Whie it can be avoided, there is still the chance that DOSBox will temporary change to use output=surface in the middle and then back to OpenGL later. And even if we ignore that, SDL_SetVideoMode may recreate the OpenGL context on some platforms (e.g. Windows), and not on others (like GNU/Linux with X11).
NY00123
Member
 
Posts: 230
Joined: 2010-2-13 @ 19:42

Re: Basic GLSL shader support (prototype)

Postby NY00123 » 2013-7-22 @ 18:01

It probably worths to add in a separated post a list of variables that shaders can take advantage of, using the given patch in its current form. A few of these come off the abovementioned XML shader format (used by bsnes/higan before, at least if not currently).

For more information about formatting, the default shaders given before can be used as a reference for now.

On to the list itself:

attribute vec4 a_position: The coordinates of a vertex given to the vertex shader. It originally comes as a vec3 from the CPU, in this order (as floating point numbers): (-1.0f,-1.0f,0.0f), (1.0f,-1.0f,0.0f), (1.0f,1.0f,0.0f), (-1.0f, 1.0f, 0.0f). The first 3 coordinates of a_position seem to consist of any of these points (depending on the vertex).
uniform vec2 rubyTextureSize: The dimensions of the input texture. Currently these are always POT (Power-Of-Two).
uniform vec2 rubyInputSize: The dimensions of the actual input image, a 2D sub image of the given texture. Its offset within the texture (as sent to glTexSubImage2D) is (0,0).
uniform vec2 rubyOutputSize: The dimensions of the output image. (Currently used by the adapted CRT-interlaced shaders only.)
uniform int rubyFrameCount: Frame counter; Initializes to 0 on first usage or host/client video mode change. (Also used just by the CRT-interlaced shaders for now.)

Note that for now, texture coordinates are *not* sent separately. It does *not* mean they should retrieved via gl_TexCoord[0] or a similar thing, if compatibility with OpenGL ES 2.0 (and OpenGL 3.1) is desired. Rather, the vertex shader (re)calculates each of the texture's corners using the attribute a_position and the uniforms rubyTextureSize and rubyOutputSize. It may not be the best way to do it, but this is the situation for now.

Finally, in general it worths to avoid from using any built-in variable that starts with gl_ (like gl_TexCoord), since some of these variables (if not all) are deprecated with newer revisions of OpenGL (ES) in mind.
Last edited by NY00123 on 2013-7-22 @ 19:27, edited 1 time in total.
NY00123
Member
 
Posts: 230
Joined: 2010-2-13 @ 19:42

Re: Basic GLSL shader support (prototype)

Postby kekko » 2013-7-22 @ 19:20

This is something Dosbox really lacks of.
- OpenGL is portable to almost any platform (and actually Dosbox already uses it)
- shaders allow dosbox to extend its range of supported scalers
- it would take advantage of gpu acceleration

Now, someone please write a shader for xBRZ scaler :P
User avatar
kekko
Member
 
Posts: 480
Joined: 2004-3-24 @ 18:56

Re: Basic GLSL shader support (prototype)

Postby leileilol » 2013-7-22 @ 21:26

I'd like to see a 3dfx Voodoo2 undither shader :)
Voodoo2s aren't 100mhz stock
Geforce256 isn't released as a beta on New Years '99 under the Quadro brand
386DX vs SX isn't about a missing FPU
DOS gaming isn't a bilinear 320x200 16:10
DOS PCs aren't better than the Macintosh
Old PCs aren't 'aesthetic'
User avatar
leileilol
l33t++
 
Posts: 9252
Joined: 2006-12-16 @ 18:03

Re: Basic GLSL shader support (prototype)

Postby Dominus » 2013-7-23 @ 06:38

Moved to the Dosbox patches forum
User avatar
Dominus
DOSBox Moderator
 
Posts: 7596
Joined: 2002-10-03 @ 09:54
Location: Vienna or Ludwigsburg

Re: Basic GLSL shader support (prototype)

Postby Laukku » 2013-7-23 @ 10:43

Yes! :-D I'd been wondering too where the guy with the other GLSL patch had disappeared to. Is there a buld of this that can be downloaded?
User avatar
Laukku
Newbie
 
Posts: 49
Joined: 2011-8-31 @ 06:27

Re: Basic GLSL shader support (prototype)

Postby kekko » 2013-7-23 @ 20:08

I can't patch current svn version of sdlmain.cpp

Code: Select all
patching file include/render.h
patching file src/gui/render.cpp
patching file src/gui/sdlmain.cpp
Hunk #2 FAILED at 85.
Hunk #3 FAILED at 180.
Hunk #4 succeeded at 252 (offset 5 lines).
Hunk #6 succeeded at 749 (offset 9 lines).
Hunk #8 succeeded at 900 with fuzz 1 (offset 9 lines).
Hunk #9 succeeded at 1011 (offset 2 lines).
Hunk #10 succeeded at 1082 (offset 5 lines).
Hunk #11 FAILED at 1151.
Hunk #12 succeeded at 1178 (offset 3 lines).
Hunk #13 FAILED at 1481.
Hunk #14 succeeded at 1890 (offset -9 lines).
4 out of 14 hunks FAILED -- saving rejects to file src/gui/sdlmain.cpp#
User avatar
kekko
Member
 
Posts: 480
Joined: 2004-3-24 @ 18:56

Re: Basic GLSL shader support (prototype)

Postby NY00123 » 2013-7-23 @ 20:58

That is... surely strange. It does seem like the patch I have uploaded is based on revision 3833 (currently the last one).
Just to be sure I have obtained a second copy of the SVN source tree, and I confirm that the patch has just been applied successfully.
NY00123
Member
 
Posts: 230
Joined: 2010-2-13 @ 19:42

Re: Basic GLSL shader support (prototype)

Postby Dominus » 2013-7-23 @ 21:52

kekko, there is already a GL shader for xbrz. I have no idea where I have those files from, but dated march 2012 I have 5xBR-v3.7a.OpenGL.shader (and 3.7b/c/+CRT)
User avatar
Dominus
DOSBox Moderator
 
Posts: 7596
Joined: 2002-10-03 @ 09:54
Location: Vienna or Ludwigsburg

Re: Basic GLSL shader support (prototype)

Postby kekko » 2013-7-24 @ 15:26

NY00123 wrote:That is... surely strange. It does seem like the patch I have uploaded is based on revision 3833 (currently the last one).
Just to be sure I have obtained a second copy of the SVN source tree, and I confirm that the patch has just been applied successfully.


Ok i'll try to investigate on this from my side; meanwhile would you mind uploading modified sdlmain.cpp ? thanks


Dominus wrote:kekko, there is already a GL shader for xbrz. I have no idea where I have those files from, but dated march 2012 I have 5xBR-v3.7a.OpenGL.shader (and 3.7b/c/+CRT)


I guess it's xBR scaler, a bit different scaler and less "advanced" than xBRZ
User avatar
kekko
Member
 
Posts: 480
Joined: 2004-3-24 @ 18:56

Re: Basic GLSL shader support (prototype)

Postby Dominus » 2013-7-24 @ 17:12

Ah right. True
User avatar
Dominus
DOSBox Moderator
 
Posts: 7596
Joined: 2002-10-03 @ 09:54
Location: Vienna or Ludwigsburg

Re: Basic GLSL shader support (prototype)

Postby NY00123 » 2013-7-24 @ 18:19

Before I upload a full copy of sdlmain.cpp, can anybody try to apply the patch on a clean copy of the DOSBox tree? Ensure it is really clean, with zero modifications done locally.
NY00123
Member
 
Posts: 230
Joined: 2010-2-13 @ 19:42

Re: Basic GLSL shader support (prototype)

Postby Dominus » 2013-7-24 @ 19:26

Patched revision 3833 without problems for me. Kekko, what does "svn info" output for you? One thing to keep in mind, not too long ago, the repository url on SF changed. So you might have an up to date SVN of the *OLD* repository, not the new one.
User avatar
Dominus
DOSBox Moderator
 
Posts: 7596
Joined: 2002-10-03 @ 09:54
Location: Vienna or Ludwigsburg

Re: Basic GLSL shader support (prototype)

Postby kekko » 2013-7-24 @ 19:37

Dominus wrote:Patched revision 3833 without problems for me. Kekko, what does "svn info" output for you? One thing to keep in mind, not too long ago, the repository url on SF changed. So you might have an up to date SVN of the *OLD* repository, not the new one.


you're right :) i've been far from dosbox for quite a while, I missed that url change.
Thanks
User avatar
kekko
Member
 
Posts: 480
Joined: 2004-3-24 @ 18:56

Re: Basic GLSL shader support (prototype)

Postby kekko » 2013-7-24 @ 20:08

sorry to bother again, sources patched correctly, but linker can't find some gl function instance:

Code: Select all
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x538): undefined reference to `glUnmapBufferARB@4'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x5b8): undefined reference to `glBindBufferARB@8'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x5d1): undefined reference to `glUniform1i@8'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x1585): undefined reference to `glUniform1i@8'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x16c7): undefined reference to `glBindBufferARB@8'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x16de): undefined reference to `glMapBufferARB@8'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x19e0): undefined reference to `glUnmapBufferARB@4'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x1a60): undefined reference to `glBindBufferARB@8'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x1a79): undefined reference to `glUniform1i@8'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x1e07): undefined reference to `glCreateShader@4'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x1e42): undefined reference to `glShaderSource@16'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x1e4d): undefined reference to `glCompileShader@4'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x1e68): undefined reference to `glGetShaderiv@12'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x1e93): undefined reference to `glGetShaderiv@12'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x1ec1): undefined reference to `glGetShaderInfoLog@16'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x1ee6): undefined reference to `glDeleteShader@4'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x2b53): undefined reference to `glGenBuffersARB@8'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x2b6b): undefined reference to `glBindBufferARB@8'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x2b9e): undefined reference to `glBufferDataARB@16'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x2bb5): undefined reference to `glBindBufferARB@8'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x2bda): undefined reference to `glCreateShader@4'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x2c0c): undefined reference to `glShaderSource@16'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x2c1b): undefined reference to `glCompileShader@4'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x2c3d): undefined reference to `glGetShaderiv@12'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x2c67): undefined reference to `glCreateShader@4'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x2c82): undefined reference to `glDeleteShader@4'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x2f40): undefined reference to `glBindBufferARB@8'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x2f65): undefined reference to `glDeleteBuffersARB@8'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x304f): undefined reference to `glGetShaderiv@12'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x3086): undefined reference to `glGetShaderInfoLog@16'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x30b9): undefined reference to `glDeleteShader@4'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x30e8): undefined reference to `glShaderSource@16'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x30f7): undefined reference to `glCompileShader@4'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x3119): undefined reference to `glGetShaderiv@12'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x313c): undefined reference to `glDeleteProgram@4'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x3144): undefined reference to `glCreateProgram@0'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x3159): undefined reference to `glDeleteShader@4'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x3168): undefined reference to `glDeleteShader@4'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x318c): undefined reference to `glAttachShader@8'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x31a4): undefined reference to `glAttachShader@8'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x31b4): undefined reference to `glLinkProgram@4'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x31c3): undefined reference to `glDeleteShader@4'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x31d2): undefined reference to `glDeleteShader@4'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x31f5): undefined reference to `glGetProgramiv@12'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x3400): undefined reference to `glUseProgram@4'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x3418): undefined reference to `glGetAttribLocation@8'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x3435): undefined reference to `glGetUniformLocation@8'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x344d): undefined reference to `glUniform1i@8'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x3465): undefined reference to `glGetUniformLocation@8'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x3485): undefined reference to `glUniform2f@12'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x349d): undefined reference to `glGetUniformLocation@8'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x34dd): undefined reference to `glUniform2f@12'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x34f5): undefined reference to `glGetUniformLocation@8'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x3543): undefined reference to `glUniform2f@12'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x3565): undefined reference to `glGetUniformLocation@8'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x361a): undefined reference to `glVertexAttribPointer@24'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x362a): undefined reference to `glEnableVertexAttribArray@4'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x368c): undefined reference to `glGetShaderiv@12'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x36c3): undefined reference to `glGetShaderInfoLog@16'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x36f6): undefined reference to `glDeleteShader@4'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x376a): undefined reference to `glGetProgramiv@12'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x37a3): undefined reference to `glGetProgramInfoLog@16'
gui/libgui.a(sdlmain.o):sdlmain.cpp:(.text+0x37d7): undefined reference to `glDeleteProgram@4'
collect2: ld returned 1 exit status
make[3]: *** [dosbox.exe] Error 1
make[3]: Leaving directory `/home/Francesco/dosbox/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/Francesco/dosbox/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/Francesco/dosbox'
make: *** [all] Error 2
User avatar
kekko
Member
 
Posts: 480
Joined: 2004-3-24 @ 18:56

Re: Basic GLSL shader support (prototype)

Postby Dominus » 2013-7-24 @ 20:21

compiled for me (OS X 10.8.x)
User avatar
Dominus
DOSBox Moderator
 
Posts: 7596
Joined: 2002-10-03 @ 09:54
Location: Vienna or Ludwigsburg

Re: Basic GLSL shader support (prototype)

Postby kekko » 2013-7-24 @ 20:24

same with vs2008 (above was mingw). am i missing something obvious?

Code: Select all
1>sdlmain.obj : error LNK2019: unresolved external symbol _glUniform1i@8 referenced in function "void __cdecl GFX_DrawGLTexture(void)" (?GFX_DrawGLTexture@@YAXXZ)
1>sdlmain.obj : error LNK2019: unresolved external symbol _glMapBufferARB@8 referenced in function "bool __cdecl GFX_StartUpdate(unsigned char * &,unsigned int &)" (?GFX_StartUpdate@@YA_NAAPAEAAI@Z)
1>sdlmain.obj : error LNK2019: unresolved external symbol _glBindBufferARB@8 referenced in function "bool __cdecl GFX_StartUpdate(unsigned char * &,unsigned int &)" (?GFX_StartUpdate@@YA_NAAPAEAAI@Z)
1>sdlmain.obj : error LNK2019: unresolved external symbol _glDeleteShader@4 referenced in function "unsigned int __cdecl GFX_LoadGLShader(unsigned int,char const *)" (?GFX_LoadGLShader@@YAIIPBD@Z)
1>sdlmain.obj : error LNK2019: unresolved external symbol _glGetShaderInfoLog@16 referenced in function "unsigned int __cdecl GFX_LoadGLShader(unsigned int,char const *)" (?GFX_LoadGLShader@@YAIIPBD@Z)
1>sdlmain.obj : error LNK2019: unresolved external symbol _glGetShaderiv@12 referenced in function "unsigned int __cdecl GFX_LoadGLShader(unsigned int,char const *)" (?GFX_LoadGLShader@@YAIIPBD@Z)
1>sdlmain.obj : error LNK2019: unresolved external symbol _glCompileShader@4 referenced in function "unsigned int __cdecl GFX_LoadGLShader(unsigned int,char const *)" (?GFX_LoadGLShader@@YAIIPBD@Z)
1>sdlmain.obj : error LNK2019: unresolved external symbol _glShaderSource@16 referenced in function "unsigned int __cdecl GFX_LoadGLShader(unsigned int,char const *)" (?GFX_LoadGLShader@@YAIIPBD@Z)
1>sdlmain.obj : error LNK2019: unresolved external symbol _glCreateShader@4 referenced in function "unsigned int __cdecl GFX_LoadGLShader(unsigned int,char const *)" (?GFX_LoadGLShader@@YAIIPBD@Z)
1>sdlmain.obj : error LNK2019: unresolved external symbol _glUnmapBufferARB@4 referenced in function "void __cdecl GFX_EndUpdate(unsigned short const *)" (?GFX_EndUpdate@@YAXPBG@Z)
1>sdlmain.obj : error LNK2019: unresolved external symbol _glEnableVertexAttribArray@4 referenced in function "unsigned int __cdecl GFX_SetSize(unsigned int,unsigned int,unsigned int,double,double,void (__cdecl*)(enum GFX_CallBackFunctions_t))" (?GFX_SetSize@@YAIIIINNP6AXW4GFX_CallBackFunctions_t@@@Z@Z)
1>sdlmain.obj : error LNK2019: unresolved external symbol _glVertexAttribPointer@24 referenced in function "unsigned int __cdecl GFX_SetSize(unsigned int,unsigned int,unsigned int,double,double,void (__cdecl*)(enum GFX_CallBackFunctions_t))" (?GFX_SetSize@@YAIIIINNP6AXW4GFX_CallBackFunctions_t@@@Z@Z)
1>sdlmain.obj : error LNK2019: unresolved external symbol _glUniform2f@12 referenced in function "unsigned int __cdecl GFX_SetSize(unsigned int,unsigned int,unsigned int,double,double,void (__cdecl*)(enum GFX_CallBackFunctions_t))" (?GFX_SetSize@@YAIIIINNP6AXW4GFX_CallBackFunctions_t@@@Z@Z)
1>sdlmain.obj : error LNK2019: unresolved external symbol _glGetUniformLocation@8 referenced in function "unsigned int __cdecl GFX_SetSize(unsigned int,unsigned int,unsigned int,double,double,void (__cdecl*)(enum GFX_CallBackFunctions_t))" (?GFX_SetSize@@YAIIIINNP6AXW4GFX_CallBackFunctions_t@@@Z@Z)
1>sdlmain.obj : error LNK2019: unresolved external symbol _glGetAttribLocation@8 referenced in function "unsigned int __cdecl GFX_SetSize(unsigned int,unsigned int,unsigned int,double,double,void (__cdecl*)(enum GFX_CallBackFunctions_t))" (?GFX_SetSize@@YAIIIINNP6AXW4GFX_CallBackFunctions_t@@@Z@Z)
1>sdlmain.obj : error LNK2019: unresolved external symbol _glUseProgram@4 referenced in function "unsigned int __cdecl GFX_SetSize(unsigned int,unsigned int,unsigned int,double,double,void (__cdecl*)(enum GFX_CallBackFunctions_t))" (?GFX_SetSize@@YAIIIINNP6AXW4GFX_CallBackFunctions_t@@@Z@Z)
1>sdlmain.obj : error LNK2019: unresolved external symbol _glGetProgramInfoLog@16 referenced in function "unsigned int __cdecl GFX_SetSize(unsigned int,unsigned int,unsigned int,double,double,void (__cdecl*)(enum GFX_CallBackFunctions_t))" (?GFX_SetSize@@YAIIIINNP6AXW4GFX_CallBackFunctions_t@@@Z@Z)
1>sdlmain.obj : error LNK2019: unresolved external symbol _glGetProgramiv@12 referenced in function "unsigned int __cdecl GFX_SetSize(unsigned int,unsigned int,unsigned int,double,double,void (__cdecl*)(enum GFX_CallBackFunctions_t))" (?GFX_SetSize@@YAIIIINNP6AXW4GFX_CallBackFunctions_t@@@Z@Z)
1>sdlmain.obj : error LNK2019: unresolved external symbol _glLinkProgram@4 referenced in function "unsigned int __cdecl GFX_SetSize(unsigned int,unsigned int,unsigned int,double,double,void (__cdecl*)(enum GFX_CallBackFunctions_t))" (?GFX_SetSize@@YAIIIINNP6AXW4GFX_CallBackFunctions_t@@@Z@Z)
1>sdlmain.obj : error LNK2019: unresolved external symbol _glAttachShader@8 referenced in function "unsigned int __cdecl GFX_SetSize(unsigned int,unsigned int,unsigned int,double,double,void (__cdecl*)(enum GFX_CallBackFunctions_t))" (?GFX_SetSize@@YAIIIINNP6AXW4GFX_CallBackFunctions_t@@@Z@Z)
1>sdlmain.obj : error LNK2019: unresolved external symbol _glCreateProgram@0 referenced in function "unsigned int __cdecl GFX_SetSize(unsigned int,unsigned int,unsigned int,double,double,void (__cdecl*)(enum GFX_CallBackFunctions_t))" (?GFX_SetSize@@YAIIIINNP6AXW4GFX_CallBackFunctions_t@@@Z@Z)
1>sdlmain.obj : error LNK2019: unresolved external symbol _glDeleteProgram@4 referenced in function "unsigned int __cdecl GFX_SetSize(unsigned int,unsigned int,unsigned int,double,double,void (__cdecl*)(enum GFX_CallBackFunctions_t))" (?GFX_SetSize@@YAIIIINNP6AXW4GFX_CallBackFunctions_t@@@Z@Z)
1>sdlmain.obj : error LNK2019: unresolved external symbol _glBufferDataARB@16 referenced in function "unsigned int __cdecl GFX_SetSize(unsigned int,unsigned int,unsigned int,double,double,void (__cdecl*)(enum GFX_CallBackFunctions_t))" (?GFX_SetSize@@YAIIIINNP6AXW4GFX_CallBackFunctions_t@@@Z@Z)
1>sdlmain.obj : error LNK2019: unresolved external symbol _glGenBuffersARB@8 referenced in function "unsigned int __cdecl GFX_SetSize(unsigned int,unsigned int,unsigned int,double,double,void (__cdecl*)(enum GFX_CallBackFunctions_t))" (?GFX_SetSize@@YAIIIINNP6AXW4GFX_CallBackFunctions_t@@@Z@Z)
1>sdlmain.obj : error LNK2019: unresolved external symbol _glDeleteBuffersARB@8 referenced in function "unsigned int __cdecl GFX_SetSize(unsigned int,unsigned int,unsigned int,double,double,void (__cdecl*)(enum GFX_CallBackFunctions_t))" (?GFX_SetSize@@YAIIIINNP6AXW4GFX_CallBackFunctions_t@@@Z@Z)
1>.\Release/dosbox.exe : fatal error LNK1120: 25 unresolved externals
User avatar
kekko
Member
 
Posts: 480
Joined: 2004-3-24 @ 18:56

Next

Return to DOSBox Patches

Who is online

Users browsing this forum: No registered users and 5 guests