Which version of OpenGL is wine using?

Open forum for end-user questions about Wine. Before asking questions, check out the Wiki as a first step.
Forum Rules
Locked
James Huk

Which version of OpenGL is wine using?

Post by James Huk »

Hello again.

Today I got following questions:
1.Which version of OpenGL is wine written in? 3.1? 3.0? 2.1? 2.0? Lower
maybe?
2.Is wine using custom OpenGL extensions? From which vendors (NVIDIA I
guess, ATI, S3, INTEL or others as well?)?
3.What is the minimum OpenGL version to run DX2/3/6/7,DX8,DX8.1 and DX9.0
apps? (I guess for OpenGL apps it doesn't really matter right? You are just
wrapping it to native OpenGL commands probably – correct?)

Can somebody answer that – I'm very curious, also it may help me write my
wine-apps-manager (Yes, I'm trying to write something like that, if I ever
finish it, I will release it – right now it is a mess), if you can, please
answer.

Thanks in advance as always.

Best regards and sorry form my English
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-us ... chment.htm>
vitamin
Moderator
Moderator
Posts: 6605
Joined: Sat Feb 23, 2008 2:29 pm

Re: Which version of OpenGL is wine using?

Post by vitamin »

James Huk wrote:Today I got following questions:
1.Which version of OpenGL is wine written in? 3.1? 3.0? 2.1? 2.0? Lower
maybe?
ATM up to 2.1.
James Huk wrote:2.Is wine using custom OpenGL extensions? From which vendors (NVIDIA I guess, ATI, S3, INTEL or others as well?)?
Yes.
James Huk wrote:3.What is the minimum OpenGL version to run DX2/3/6/7,DX8,DX8.1 and DX9.0 apps?
Any. Wine will report and support only features that are available.
James Huk wrote:(I guess for OpenGL apps it doesn't really matter right? You are just
wrapping it to native OpenGL commands probably – correct?)
Correct, with few minor additions.
James Huk

Which version of OpenGL is wine using?

Post by James Huk »

2009/4/24 vitamin <[email protected]>
James Huk wrote:
Today I got following questions:
1.Which version of OpenGL is wine written in? 3.1? 3.0? 2.1? 2.0? Lower
maybe?
ATM up to 2.1.


James Huk wrote:
2.Is wine using custom OpenGL extensions? From which vendors (NVIDIA I
guess, ATI, S3, INTEL or others as well?)?

Yes.


James Huk wrote:
3.What is the minimum OpenGL version to run DX2/3/6/7,DX8,DX8.1 and DX9.0
apps?

Any. Wine will report and support only features that are available.


James Huk wrote:
(I guess for OpenGL apps it doesn't really matter right? You are just
wrapping it to native OpenGL commands probably – correct?)
Correct, with few minor additions.





1. Thanks.
2. You mean you are using extensions from all companies in the list above?

3.That is not what I meant – I mean what is minimum OpenGL version to
“emulate”(yes I know, we are not emulation anything) ALL features of:

a) DX7.0 and lower

b) DX8.0

c) DX8.1

d) DX9.0


I'm asking this because I test wine on many cards, and their OpenGL support
is very different from card to card. So we have cards that are OpenGL 1.1
only (Voodoo3/Banshee,RivaTNT2), 1.2(Rage128
PRO,GeForce2MX),1.5(GeForce5200FX) and 3.0(probably 3.1 in near future –
Geforce9800GT). Knowing that – for example – GeForce2 is not enough for DX
8.1, I would know to expect problems.


Thanks again
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-us ... chment.htm>
vitamin
Moderator
Moderator
Posts: 6605
Joined: Sat Feb 23, 2008 2:29 pm

Re: Which version of OpenGL is wine using?

Post by vitamin »

James Huk wrote:2. You mean you are using extensions from all companies in the list above?
No. Read the code to see what's used. Nvidia's and ATI's extensions are widely used. Others probably not, since there are none.
James Huk wrote:3.That is not what I meant – I mean what is minimum OpenGL version to “emulate”(yes I know, we are not emulation anything) ALL features of:
Any working. You can have dx9 on non-gpu card. But none of the T&L features will be supported.
Thunderbird
Level 5
Level 5
Posts: 336
Joined: Mon Nov 24, 2008 8:10 am

Post by Thunderbird »

Direct3D9 and lower report the capabilities offered by the gpu e.g. whether the gpu offers multitexturing, shaders and things like that. Games check these capabilities and due to that a Riva TNT would be able to run basic Direct3D9 apps as long as they don't use shaders.

Further the OpenGL version itself isn't that important it is mostly about the offered OpenGL extensions. If you want to unlock all Direct3D7 features you need a Geforce1/2/2mx/4mx or radeon 7xxx, for fully Direct3D8.1 you would in theory need a Geforce3/4ti / Radeon8500/9000/9100/9200/9300 but we don't support pixel shaders on those cards because the functionality is very limited on those cards and is only exposed using some old pixel shader extensions. For Direct3D9 SM2.0 support you need a Radeon >=9500 or a GeforceFX but for SM3.0 you need a Radeon >= X1300 or a Geforce >= 6200.
James Huk

Which version of OpenGL is wine using?

Post by James Huk »

2009/4/26 Thunderbird <[email protected]>
Direct3D9 and lower report the capabilities offered by the gpu e.g. whether
the gpu offers multitexturing, shaders and things like that. Games check
these capabilities and due to that a Riva TNT would be able to run basic
Direct3D9 apps as long as they don't use shaders.

Further the OpenGL version itself isn't that important it is mostly about
the offered OpenGL extensions. If you want to unlock all Direct3D7 features
you need a Geforce1/2/2mx/4mx or radeon 7xxx, for fully Direct3D8.1 you
would in theory need a Geforce3/4ti / Radeon8500/9000/9100/9200/9300 but we
don't support pixel shaders on those cards because the functionality is very
limited on those cards and is only exposed using some old pixel shader
extensions. For Direct3D9 SM2.0 support you need a Radeon >=9500 or a
GeforceFX but for SM3.0 you need a Radeon >= X1300 or a Geforce >= 6200.





Thank You – that is what I wanted to know.

Few more question please...

4.What about wine support for cards other then Geforce or Radeon? For
example, few month ago S3 released something called Chrome GTX 540 – with
full OpenGL 3.0 support – assuming drivers are not buggy, will that card
work well with wine? Will features like PS(Pixel Shaders) and VS(Vertex
Shaders) be supported?

5.If I remember correctly – before OpenGL 3.0 you could use PS only with
Nvidia hardware thought one of the extensions – did that change with the
release of OpenGL 3.0 – in other words, can you use generic OpenGL (NOT
vendor specific extension) to get GLSL and ARB to “emulate” DX Pixel and
Vertex Shaders? If so, are you planning to rewrite wine to use this generic
OpenGL instead of extensions?

Sorry for so many questions – but I REALLY would like to know.

Thanks again

Best regards
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-us ... chment.htm>
DaVince
Level 8
Level 8
Posts: 1099
Joined: Wed Oct 29, 2008 4:53 pm

Post by DaVince »

Whether certain cards are supported well in Wine depends mostly on whether the Linux video drivers for that card support OpenGL/3D capabilities well... For example, my cheap integrated Intel chip seems to work fairly well with Wine D3D apps.
vitamin
Moderator
Moderator
Posts: 6605
Joined: Sat Feb 23, 2008 2:29 pm

Re: Which version of OpenGL is wine using?

Post by vitamin »

James Huk wrote:4.What about wine support for cards other then Geforce or Radeon? For
example, few month ago S3 released something called Chrome GTX 540 – with
full OpenGL 3.0 support – assuming drivers are not buggy, will that card
work well with wine? Will features like PS(Pixel Shaders) and VS(Vertex
Shaders) be supported?
OpenGL is OpenGL no matter who implemented it. It will be supported. What exactly will be available depends on HW & driver.
James Huk wrote:5.If I remember correctly – before OpenGL 3.0 you could use PS only with
Nvidia hardware thought one of the extensions – did that change with the
release of OpenGL 3.0 – in other words, can you use generic OpenGL (NOT
vendor specific extension) to get GLSL and ARB to “emulate” DX Pixel and
Vertex Shaders? If so, are you planning to rewrite wine to use this generic
OpenGL instead of extensions?
Wrong. Wine support PS & VS with any card providing ARB/GLSL. And Wine currently desn't use OGL 3.

Wine has 2 shader backends GLSL and ARB. These _are_ the shader implementations. There is nothing to emulate. ARB supports up to 1.4 shaders. So if GLSL available Wine prefers that instead. GLSL supports shaders all the way to 4.0

Wine will not do any sort of shader emulations if they are not supported by the hardware / driver.
James Huk

Which version of OpenGL is wine using?

Post by James Huk »

2009/4/27 vitamin <[email protected]>
James Huk wrote:
4.What about wine support for cards other then Geforce or Radeon? For
example, few month ago S3 released something called Chrome GTX 540 – with
full OpenGL 3.0 support – assuming drivers are not buggy, will that card
work well with wine? Will features like PS(Pixel Shaders) and VS(Vertex
Shaders) be supported?
OpenGL is OpenGL no matter who implemented it. It will be supported. What
exactly will be available depends on HW & driver.


James Huk wrote:
5.If I remember correctly – before OpenGL 3.0 you could use PS only with
Nvidia hardware thought one of the extensions – did that change with the
release of OpenGL 3.0 – in other words, can you use generic OpenGL (NOT
vendor specific extension) to get GLSL and ARB to “emulate” DX Pixel and
Vertex Shaders? If so, are you planning to rewrite wine to use this
generic
OpenGL instead of extensions?
Wrong. Wine support PS & VS with any card providing ARB/GLSL. And Wine
currently desn't use OGL 3.

Wine has 2 shader backends GLSL and ARB. These _are_ the shader
implementations. There is nothing to emulate. ARB supports up to 1.4
shaders. So if GLSL available Wine prefers that instead. GLSL supports
shaders all the way to 4.0

Wine will not do any sort of shader emulations if they are not supported by
the hardware / driver.





Thanks once again, LAST question – if I get you all correctly, then graphics
problems with ATI/Intel and other hardware are only driver related (well OK,
maybe with Intel also HW related) or maybe mesa/dri itself is simply not up
to the challenge?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-us ... chment.htm>
vitamin
Moderator
Moderator
Posts: 6605
Joined: Sat Feb 23, 2008 2:29 pm

Re: Which version of OpenGL is wine using?

Post by vitamin »

James Huk wrote:Thanks once again, LAST question – if I get you all correctly, then graphics
problems with ATI/Intel and other hardware are only driver related (well OK,
maybe with Intel also HW related) or maybe mesa/dri itself is simply not up
to the challenge?
Mostly drivers, as HW provides most of the required functionality. Or it's emulated via drivers.

Also there are cases of different behavior between different vendor's drivers. Some match DX behavior some don't. While OpenGL doesn't explicitly specify which is correct.

Also some nVidia extensions implement missing from OpenGL features. While neither ATI nor Intel provide those.

And don't discount Wine - it has lots of bugs that show up on one or the other card. Somewhere it could be combinations of Wine's limitations and game requirements. Somewhere it's a dumb assumptions on game developer's side.
Daniel Kasak

Which version of OpenGL is wine using?

Post by Daniel Kasak »

On Mon, 2009-04-27 at 18:51 +0000, James Huk wrote:
Thanks once again, LAST question – if I get you all correctly, then graphics
problems with ATI/Intel and other hardware are only driver related (well OK,
maybe with Intel also HW related) or maybe mesa/dri itself is simply not up
to the challenge?
There was a discussion along these lines in the 'open-source ATI' forums
on phoronix.com ...
http://www.phoronix.com/forums/showthread.php?t=16585

Bridgeman ( AMD employee, the 'face' of AMD's open-sourcing effort )
answered the question of wine on open-source drivers:

1. Wine was originally written on NVidia cards and made some design
decisions based on the internal implementation of the NVidia driver,
which causes problems on any other driver even if the OpenGL
implementation of those other drivers is 100% correct. The
NVidia-specific aspects of Wine are being taken out over time, but it
does take time.

2. Wine relies on a number of OpenGL functions which no other app in the
world seems to use, not even compliance test suites. Nothing wrong with
that (although it`s a pain in the butt), however it means that Wine
relies on some of the least tested and least-exercised parts of the
driver. Again, this just takes time - as OpenGL bugs are found we fix
them, but identifying the specific OpenGL issues is the time-consuming
part. This is a relatively small part of the problem as far as I can
see, and I believe workarounds are in place for the open issues.

Dan
Locked