Author Topic: Supported graphic cards?  (Read 6372 times)

0 Members and 2 Guests are viewing this topic.

Arnold

  • Hero Member
  • *****
  • Posts: 973
Supported graphic cards?
« on: June 07, 2016, 01:53:34 AM »
Hi Charles,

I refer to examples\OpenGl\ImageRotate1.o2bas (and some others). If I run this example on my old notebook I only see the blank square moving around, running the demo on a newer notebook with Win7 will show the image correctly and it runs as quick as a flash. The difference must be in Oxygen.dll. If I use the dll of build 07/2015 in the newest release the examples will work with my old notebook too.

In the past you mentioned that with the newer releases you use GLSL 3.3 and geometry shaders. Searching in Internet on this subject makes me dizzy. And I see that there is already a version 4.5.

Maybe it is possible to get the info which version of GLSL is used and if it is supported by the graphics card? I assume the difference arises somewhere in these lines of the example:

  GetTexImage "../images/Dawn1815.jpg",res,imgs[1]
  MakeTexture strptr imgs[1],res,res,texn[1]

If such a message would be possible it would help to avoid looking for errors in the wrong places.

Roland

Mike Lobanovsky

  • Hero Member
  • *****
  • Posts: 1993
Re: Supported graphic cards?
« Reply #1 on: June 07, 2016, 03:39:11 AM »
Hi Roland,

glGetString() would return much of the information you need:

Quote
Name
glGetString return a string describing the current GL connection

C Specification
const GLubyte* glGetString(  GLenum   name );

Parameters

name
Specifies a symbolic constant, one of GL_VENDOR, GL_RENDERER, GL_VERSION, GL_SHADING_LANGUAGE_VERSION, or GL_EXTENSIONS.

Description

glGetString returns a pointer to a static string describing some aspect of the current GL connection. name can be one of the following:

GL_VENDOR
Returns the company responsible for this GL implementation. This name does not change from release to release.

GL_RENDERER
Returns the name of the renderer. This name is typically specific to a particular configuration of a hardware platform. It does not change from release to release.

GL_VERSION
Returns a version or release number.

GL_SHADING_LANGUAGE_VERSION
Returns a version or release number for the shading language.

GL_EXTENSIONS
Returns a space-separated list of supported extensions to GL.



Below please find a couple of help files that describe the capabilities of OpenGL Specifications 2 and 3 and their respective GLSL extensions.

.
« Last Edit: June 07, 2016, 03:56:16 AM by Mike Lobanovsky »
Mike
(3.6GHz Intel Core i5 Quad w/ 16GB RAM, nVidia GTX 1060Ti w/ 6GB VRAM, Windows 7 Ultimate Sp1)

Arnold

  • Hero Member
  • *****
  • Posts: 973
Re: Supported graphic cards?
« Reply #2 on: June 07, 2016, 12:46:36 PM »
Hi Mike,

thank you for the info which as always extends my understanding a little bit more. I tried out glGetString (and abused OpenglSceneFrame.inc a little bit):

Code: OxygenBasic
  1. 'glGetString
  2.  
  3. includepath "$/inc/"
  4. include "console.inc"  
  5.  
  6. include "OpenglSceneFrame.inc"
  7.  
  8. #define GL_SHADING_LANGUAGE_VERSION       0x8B8C
  9.  
  10. sub initialize(sys hWnd)
  11. end sub
  12.  
  13.  
  14. sub scene(sys hWnd)
  15. ==================
  16.  
  17. glLoadIdentity
  18. glClear GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT
  19. glClearColor 0.9, 0.9, 0, 0
  20.  
  21. cls
  22. string version = (char)glGetString(GL_VERSION)
  23. printl "GL_VERSION " version & cr
  24.  
  25. string vendor = (char)glGetString(GL_VENDOR)
  26. printl "GL_VENDOR " vendor & cr
  27.  
  28. string renderer = (char)glGetString(GL_RENDERER)
  29. printl "GL_RENDERER " renderer & cr
  30.  
  31. 'lot of info
  32. string extensions = (char)glGetString(GL_EXTENSIONS)
  33. printl "GL_EXTENSIONS " extensions & cr
  34.  
  35. string glshaders = (char)glGetString(GL_SHADING_LANGUAGE_VERSION)
  36. printl "GL_SHADING_LANGUAGE_VERSION " glshaders & cr
  37.  
  38. printl : printl "Close Window to quit"
  39. waitkey
  40.  
  41. end sub
  42.  
  43.  
  44. sub Release(sys hwnd)
  45. end sub
  46.  

These are the results with my 32 bit notebook:

GL_VERSION 3.0.0
GL_VENDOR NVIDIA Corporation
GL_RENDERER GeForce 8200M G/PCI/SSE2/3DNOW!
GL_SHADING_LANGUAGE_VERSION 1.30 NVIDIA via Cg compiler

These are the results with my 64 bit notebook:

GL_VERSION 3.0.0 - Build 8.15.10.2342
GL_VENDOR Intel
GL_RENDERER Mobile Intel(R) HD Graphics
GL_SHADING_LANGUAGE_VERSION 1.30  - Intel Build 8.15.10.2342

GL_EXTENSIONS will also show a lot of information. It is good to know that it is possible to retrieve these and some more data if necessary.

Roland

Mike Lobanovsky

  • Hero Member
  • *****
  • Posts: 1993
Re: Supported graphic cards?
« Reply #3 on: June 07, 2016, 01:17:07 PM »
... which means both of your drivers should support everything that's written in the .CHM file I sent you, and that's quite a lot for an amateur developer.

OTOH the 3.2 quick reference card is a little too advanced for you, and some of the features described there won't be available in your notebooks in both OpenGL and GLSL.

However you can always try and update your OpenGL drivers from their vendors' to the latest available for your specific video chips. It's a breeze for nVidia where the easiest way would be to let your video card be detected, and the most up-to-date driver installed, automatically. Intel isn't as friendly in this respect but I think similar things can be done for your 64-bit notebook video as well. All this should upgrade your OpenGL to at least 3.2, and your GLSL, to 1.5, i.e. to the specs that are described, albeit not in full, in the quick reference card I sent you.
Mike
(3.6GHz Intel Core i5 Quad w/ 16GB RAM, nVidia GTX 1060Ti w/ 6GB VRAM, Windows 7 Ultimate Sp1)

Charles Pegge

  • Admin Support Member
  • *****
  • Posts: 4409
    • Oxygen Basic
Re: Supported graphic cards?
« Reply #4 on: June 07, 2016, 02:08:51 PM »
Hi Mike :)

Your Opengl expertise is most welcome! It is a huge investment of time to keep on top of this technology.

examples/opengl/GLSLWIP.o2bas is the only shader example so far. Does it work on your older PC, Roland?

Some of my recent oxygen.dll releases disrupted some of the opengl examples, using OpenglSceneFrame.inc. My apologies. I have been retro-fitting namespace support all the way down to the linker.


.
« Last Edit: June 08, 2016, 01:49:28 AM by Charles Pegge »

Arnold

  • Hero Member
  • *****
  • Posts: 973
Re: Supported graphic cards?
« Reply #5 on: June 08, 2016, 01:07:37 AM »
Hi Charles,

I used your latest release and the Opengl examples now work very nice as well with my 32 bit as with my 64 bit notebook. It is a total different feeling with my old notebook.

Examples/OpenGL/GLSLWIP.o2bas and VertexBufferObject.o2bas show some messages of failing functions like: glVertexAttribDivisor, glDrawElementsBaseVertex, glDrawArraysInstanced etc. This happens with both notebooks. VertexBufferObject then opens a window with a rotating square in different dark colors and GLSLWIP shows a black Window. I do not know if this is expected?

Roland

Mike Lobanovsky

  • Hero Member
  • *****
  • Posts: 1993
Re: Supported graphic cards?
« Reply #6 on: June 08, 2016, 01:45:00 AM »
Roland,

This must be due to the problem with your (somewhat) outdated OpenGL drivers. You should update both of them to the latest available from their respective vendors a.s.a.p.

glVertexAttribDivisor(), glDrawElementsBaseVertex(), glDrawArraysInstanced() and a lot others simply aren't available in OpenGL below 3.1 and/or 3.2.
Mike
(3.6GHz Intel Core i5 Quad w/ 16GB RAM, nVidia GTX 1060Ti w/ 6GB VRAM, Windows 7 Ultimate Sp1)

Charles Pegge

  • Admin Support Member
  • *****
  • Posts: 4409
    • Oxygen Basic
Re: Supported graphic cards?
« Reply #7 on: June 08, 2016, 01:56:29 AM »

This is what it should look like, when all the GLSL functions are available:

.

Mike Lobanovsky

  • Hero Member
  • *****
  • Posts: 1993
Re: Supported graphic cards?
« Reply #8 on: June 08, 2016, 02:02:11 AM »
Hi Charles,

Nice to meet you too! :)

Quote
... when all the GLSL functions are available ...

... when both GLSL and OpenGL functions are all available.

The functions Roland enumerated pertain to the OpenGL 3.1+, rather than GLSL, capabilities.

Mike
(3.6GHz Intel Core i5 Quad w/ 16GB RAM, nVidia GTX 1060Ti w/ 6GB VRAM, Windows 7 Ultimate Sp1)

Arnold

  • Hero Member
  • *****
  • Posts: 973
Re: Supported graphic cards?
« Reply #9 on: June 08, 2016, 02:55:00 PM »
Mike,

your hints and the links are invaluable. I had no problem to update the driver for my 32 bit notebook to GL_VERSION 3.3.0 and GL_SHADING_LANGUAGE_VERSION 3.30 NVIDIA via Cg compiler. Everything works perfectly now. I did not expect that this is possible with an almost 10 years old computer.

Updating the 64bit notebook seems not to be so easy. It is my wife's computer and I must be a little bit careful. I noticed that I had to do some updates of the OS and that I have to do some more researches about a driver for the ATI AMD Radeon HD 6370M graphics card. But this must wait until tomorrow.

Roland

Mike Lobanovsky

  • Hero Member
  • *****
  • Posts: 1993
Re: Supported graphic cards?
« Reply #10 on: June 09, 2016, 12:29:31 AM »
Roland,

I'm glad my hints did help you somewhat, if only with the nVidia driver. Unlike SDL or IUP and the like, modern OpenGL is not just another graphics library but rather an intricate SW/HW complex, a platform of sorts. That's why nVidia has an advantage over their competitors here; their SW/HW is almost exclusively GPUs and related stuff whereas Intel and AMD have too many other things to worry about -- CPUs, motherboards, peripherals and what not. That's why they may seem to be not so friendly to your immediate needs.

Nonetheless, referring to your 64-bit notebook that's evidently equipped with Intel's HD GPU you reported. This is a built-in GPU that's housed in the same chipset with your main CPU on the notebook's MB. I gather the ATi Radeon card is a discrete peripheral installed there alongside the built in HD GPU and intended to work in parallel with the latter. That's also a trivial setup that's easily handled with both Intel's and ATi's equivalents of nVidia's OpenGL driver Control Center, so that once the most up-to-date drivers are installed for the both GPUs and if the OS you're using is also modern enough (Win 7 and up), the both GPUs will work in parallel co-operating with each other to allow for any single- or multi-monitor configuration you can imagine.

I can't advise you on the ATi products or drivers or installation utilities as I've never used them (I'm not rich enough to buy cheaper things ;) ) but from what I hear, ATi Radeons are just a trifle poorer than nVidia GeForces (and as a matter of fact, much better than Intel's built-in HD GPUs) so that with a little trial and error, you'll be able to re-configure your wife's notebook as well. Do not hesitate to upgrade the software as they require because they are intelligent enough to install only what's immediately needed for proper/smoother operation. And you can always rollback your system to what it used to be if you don't forget to save the system restore points via your operating system's standard Control Panel utilities/services.

Good luck! :)
Mike
(3.6GHz Intel Core i5 Quad w/ 16GB RAM, nVidia GTX 1060Ti w/ 6GB VRAM, Windows 7 Ultimate Sp1)

Arnold

  • Hero Member
  • *****
  • Posts: 973
Re: Supported graphic cards?
« Reply #11 on: June 12, 2016, 09:15:34 AM »
Hello,

updating the 64 bit notebook almost was driving me nuts. There was a substantial mistake with the first setup five years ago and I was nearly about to restore everything from scratch. The next problem was to upgrade from Win7 to Win10. All the time I got the message: Modern Setup Host has stopped working. Fortunately MS offered a way to load an ISO image which could then be burned on DVD. The first time I started the Setup program from DVD this Modern Setup message appeared also but after rebooting from DVD the setup continued and now everything worked ok. Somehow I lucked out.

At the moment glGetString gives me this information:

GL_VERSION 3.1.0 - Build 9.17.10.4229
GL_VENDOR Intel
GL_RENDERER Intel(R) HD Graphics 3000
GL_SHADING_LANGUAGE_VERSION 1.40 - Intel Build 9.17.10.4229

This is still not sufficient to run Examples/OpenGL/GLSLWIP.o2bas correctly. But before I try to update the drivers to 3.2. with this notebook I will better test the new features of Win 10 and if everything really worked ok with the upgrade.

Roland

Mike Lobanovsky

  • Hero Member
  • *****
  • Posts: 1993
Re: Supported graphic cards?
« Reply #12 on: June 12, 2016, 05:30:04 PM »
My condolences. :)

Just in case you might need it: Never10.
Mike
(3.6GHz Intel Core i5 Quad w/ 16GB RAM, nVidia GTX 1060Ti w/ 6GB VRAM, Windows 7 Ultimate Sp1)

Arnold

  • Hero Member
  • *****
  • Posts: 973
Re: Supported graphic cards?
« Reply #13 on: June 14, 2016, 12:30:50 AM »
Hi Mike,

after some tests I confess that I am quite happy with the upgrade, although it was a game of luck in some way. Due to some errors in the past I could not update IE Explorer to version 10 or 11 (-> Blue Screen) and I could not backup the system correctly. These problems are solved now with the upgrade. The screen view and task bar could be preserved, the view of the start menu has changed but I like this modification. There are some new features which must be explored. Advertisement at the moment is not worse than using an Android tablet or smartphone. So I think for an average user it will be ok to upgrade to Win10 (if it works at all).

Roland

.

Mike Lobanovsky

  • Hero Member
  • *****
  • Posts: 1993
Re: Supported graphic cards?
« Reply #14 on: June 14, 2016, 02:48:56 AM »
... not worse than using an Android tablet or smartphone ...

Sounds like downgrading Windows' beautiful Aero to half-assed Android & Co. to me (which is of course a matter of tastes though...) :)
Mike
(3.6GHz Intel Core i5 Quad w/ 16GB RAM, nVidia GTX 1060Ti w/ 6GB VRAM, Windows 7 Ultimate Sp1)