Feature request: Shader Emulation for Old Graphics Cards

Open forum for end-user questions about Wine. Before asking questions, check out the Wiki as a first step.
Forum Rules
Locked
hellork
Level 3
Level 3
Posts: 82
Joined: Thu Mar 27, 2008 7:13 pm

Feature request: Shader Emulation for Old Graphics Cards

Post by hellork »

What I would like to see is maybe some check boxes in winecfg such as "emulate shaders [ ] v 1.1 [ ] v 1.4 [ ] v. 2.0 [ ] v 3.0"

Maybe this would be too much work and I don't know what I'm asking. But I think fast emulation is possible using open source. This would allow many modern programs to be run on older hardware and I think it would draw in more people and increase interest in the wine project.
David Gerard

Feature request: Shader Emulation for Old Graphics Cards

Post by David Gerard »

On 28/03/2008, hellork <[email protected]> wrote:
What I would like to see is maybe some check boxes in winecfg such as "emulate shaders [ ] v 1.1 [ ] v 1.4 [ ] v. 2.0 [ ] v 3.0"
Maybe this would be too much work and I don't know what I'm asking. But I think fast emulation is possible using open source. This would allow many modern programs to be run on older hardware and I think it would draw in more people and increase interest in the wine project.
The *proper* place for this would be in the graphics card driver or in
Mesa (OpenGL emulator), in X itself. I don't know how feasible that
would be in those places. Emulation is possible, but it's nothing like
as fast as the dedicated hardware of a GPU.


- d.
vitamin
Moderator
Moderator
Posts: 6605
Joined: Sat Feb 23, 2008 2:29 pm

Re: Feature request: Shader Emulation for Old Graphics Cards

Post by vitamin »

hellork wrote:What I would like to see is maybe some check boxes in winecfg such as "emulate shaders [ ] v 1.1 [ ] v 1.4 [ ] v. 2.0 [ ] v 3.0"

Maybe this would be too much work and I don't know what I'm asking. But I think fast emulation is possible using open source. This would allow many modern programs to be run on older hardware and I think it would draw in more people and increase interest in the wine project.
This is not possible. If old card does not support new shaders, emulating them in software will be 100's times slover then new card can.
There are reasons why GPUs were made and we using them instead of good 'ol VGA video cards without any acceleration.
DARKGuy .

Feature request: Shader Emulation for Old Graphics Cards

Post by DARKGuy . »

I'd say it -is- possible.

I've been watching this thread for years ->
http://forum.thegamecreators.com/?m=for ... =91453&b=1 it's a very
unvaluable source of shader information... free too. There are various
methods to archieve a same effect through different instructions that
work on various cards.

Or at least, if the issue is passing through some shader version check
for a game, some option to "emulate shader version" and/or disable
specific GLX extensions (or returning "default" values...values that
look "ok" in most games) would've been really useful when I had my
Transformers game issue back with my 4200.

BTW, acceleration isn't the same as having pixel/vertex shaders...

On Thu, Mar 27, 2008 at 9:07 PM, vitamin <[email protected]> wrote:
hellork wrote:
What I would like to see is maybe some check boxes in winecfg such as "emulate shaders [ ] v 1.1 [ ] v 1.4 [ ] v. 2.0 [ ] v 3.0"

Maybe this would be too much work and I don't know what I'm asking. But I think fast emulation is possible using open source. This would allow many modern programs to be run on older hardware and I think it would draw in more people and increase interest in the wine project.
This is not possible. If old card does not support new shaders, emulating them in software will be 100's times slover then new card can.
There are reasons why GPUs were made and we using them instead of good 'ol VGA video cards without any acceleration.




vitamin
Moderator
Moderator
Posts: 6605
Joined: Sat Feb 23, 2008 2:29 pm

Re: Feature request: Shader Emulation for Old Graphics Cards

Post by vitamin »

I'd like to see how would you emulate conditions, cycles and other "flow control" instructions. Or float point formats?
You can't (in the GPU itself at least). And doing it outside the GPU is prohibitively slow.
DARKGuy .

Feature request: Shader Emulation for Old Graphics Cards

Post by DARKGuy . »

Well, WINE acts a layer between the game and OpenGL calls... no? I'd
assume WINE could execute a few OpenGL calls to "emulate" the results
(just return what the card is able to - or return a null value, zero,
something that'll just make the game -skip- it) instead of being just
a redirection (that'll be obviously, slower). I'm just throwing up
ideas here, I --know-- it's possible, just not --how--.

On Thu, Mar 27, 2008 at 9:27 PM, vitamin <[email protected]> wrote:
I'd like to see how would you emulate conditions, cycles and other "flow control" instructions. Or float point formats?
You can't (in the GPU itself at least). And doing it outside the GPU is prohibitively slow.




hellork
Level 3
Level 3
Posts: 82
Joined: Thu Mar 27, 2008 7:13 pm

Re: Feature request: Shader Emulation for Old Graphics Cards

Post by hellork »

Obviously emulation would not have to be 100% accurate or it would indeed be significantly slower. Perhaps a quality slider could be implemented such that certain features could be dropped, stubbed or filled in with gray texture for example. Some systems, namely laptops or surplus servers, can have several fast CPUs but are lacking in the GPU department for various reasons (expensive or built into the motherboard) and can't be replaced easily or economically. In these cases, some software fallback ability would be useful. Perhaps the checkbox idea was unnecessary and software emulation could be automatic (Perhaps with a debug message: shader version %d not available, attempting partial emulation with shader_emulator.c ...).
DARKGuy .

Feature request: Shader Emulation for Old Graphics Cards

Post by DARKGuy . »

Yeah! that's very similar to what I had in mind... it could work
wonders, and will help other games run and be friendlier with laptops,
heh...

On Thu, Mar 27, 2008 at 10:11 PM, hellork <[email protected]> wrote:
Obviously emulation would not have to be 100% accurate or it would indeed be significantly slower. Perhaps a quality slider could be implemented such that certain features could be dropped, stubbed or filled in with gray texture for example. Some systems, namely laptops or surplus servers, can have several fast CPUs but are lacking in the GPU department for various reasons (expensive or built into the motherboard) and can't be replaced easily or economically. In these cases, some software fallback ability would be useful. Perhaps the checkbox idea was unnecessary and software emulation could be automatic (Perhaps with a debug message: shader version %d not available, attempting partial emulation with shader_emulator.c ...).




vitamin
Moderator
Moderator
Posts: 6605
Joined: Sat Feb 23, 2008 2:29 pm

Re: Feature request: Shader Emulation for Old Graphics Cards

Post by vitamin »

People you have no concepts of the shaders yet you talk like you know exactly what they are and how they work. This is pointless. No it is impossible to emulate such stuff unless you are ok with having 1/100 FPS. But if you are ok with that, what are you doing with this modern HW in the first place? Why aren't you still using i386 based PC?
Locked