A computer components & hardware forum. HardwareBanter

If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.

Go Back   Home » HardwareBanter forum » Video Cards » Nvidia Videocards
Site Map Home Register Authors List Search Today's Posts Mark Forums Read Web Partners

OpenGL driver loading abnoxiously slow. (Toshiba laptop L670 2012/Intel/AMD/RadeON)



 
 
Thread Tools Display Modes
  #1  
Old May 19th 21, 10:36 AM posted to alt.comp.periphs.videocards.nvidia
skybuck2000
external usenet poster
 
Posts: 61
Default OpenGL driver loading abnoxiously slow. (Toshiba laptop L670 2012/Intel/AMD/RadeON)

For some reason on the toshiba laptop from 2012 the opengl driver loads very slowly. (Toshiba laptop L670 2012/Intel/AMD/RadeON)

So slow that I believed the application "frooze/hang" but this is not the cause.

Possible causes:

1. I "hacked" the driver version number to try and make Star War Battlefront 2 run.
2. AMD installed a bad driver, or sabotaged the laptop trying to make it run slow.
3. Microsoft ****ed up and installed some bad driver to make the laptop run slow.
4. The slow 5200 RPM harddisk is responsible for the slow load. Though 80 MB/sec should be enough ?!

It's suspicious at the very least.

My question is: Is there a programmatic way to tell how long it will take to load the opengl driver ? Is there a way to tell when it's done, besides from ofcourse the rendering suddenly kicking in.

I did a quick google and find two threads that might be of some interesting:

https://docs.microsoft.com/en-us/win...-client-driver

"
The OpenGL runtime accesses the registry to determine which OpenGL installable client driver (ICD) to load.

To load the OpenGL ICD, the OpenGL runtime:

Determines the name, version, and flags that are associated with the OpenGL ICD by calling the

D3DKMTQueryAdapterInfo function with the KMTQAITYPE_UMOPENGLINFO value set in the Type member of the

D3DKMT_QUERYADAPTERINFO structure that the pData parameter points to.

Checks the version number of the OpenGL ICD that D3DKMTQueryAdapterInfo returns to validate the version

of the OpenGL ICD.

Loads the OpenGL ICD by using the name of the OpenGL ICD.

Initializes access to the OpenGL ICD's functions. Note To obtain a license for the OpenGL ICD

Development Kit, contact the OpenGL Issues team.

To locate the name of the OpenGL ICD, D3DKMTQueryAdapterInfo searches the registry in the following key:
registry

HKLM/System/CurrentControlSet/Control/Class/{Adapter GUID}/0000/

This key also contains the names of the Microsoft Direct3D user-mode display drivers. This key contains four

registry entries for 32-bit Windows Vista display drivers that are used on 32-bit Windows Vista and four

entries for 32-bit Windows Vista display drivers that are used on 64-bit Windows Vista. The following entries

are for 32-bit Windows Vista display drivers that are used on 32-bit Windows Vista:

UserModeDriverName
REG_SZ

The name of the Direct3D user-mode display driver, which is required for the operation of a Direct3D

rendering device regardless of whether the operating system supports an OpenGL ICD.

OpenGLDriverName
REG_SZ

The name of the OpenGL ICD. For example, if the OpenGL ICD is Mydriver.dll, the value of this entry is

Mydriver.dll.

OpenGLVersion
REG_DWORD

The version number of the OpenGL ICD that the OpenGL runtime uses to validate the version of the OpenGL ICD.

OpenGLFlags
REG_DWORD

A flag bitmask. Currently, bit 0 (0x00000001) is set for compatibility. When bit 1 (0x00000002) is set, the

OpenGL runtime does not call the ICD's finish function before the runtime calls the ICD's swap-buffers

function.

The following entries are for 32-bit Windows Vista display drivers that are used on 64-bit Windows Vista:

UserModeDriverNameWow
REG_SZ

The name of the 32-bit Microsoft Direct3D user-mode display driver for 64-bit Windows Vista.

OpenGLDriverNameWow
REG_SZ

The name of the 32-bit OpenGL ICD for 64-bit Windows Vista.

OpenGLVersionWow
REG_DWORD

The version number of the 32-bit OpenGL ICD for 64-bit Windows Vista.

OpenGLFlagsWow
REG_DWORD

A flag bitmask of the 32-bit OpenGL ICD for 64-bit Windows Vista.
"

and this:

https://stackoverflow.com/questions/...mechanism-work

Has anybody ever developed a "loading opengl driver" window/display ?

I could place a label behind the render window and tell the user:

"please wait for the opengl driver to load".

Bye for now,
Skybuck.
  #2  
Old May 19th 21, 10:55 AM posted to alt.comp.periphs.videocards.nvidia
Paul[_28_]
external usenet poster
 
Posts: 1,467
Default OpenGL driver loading abnoxiously slow. (Toshiba laptop L6702012/Intel/AMD/RadeON)

skybuck2000 wrote:
For some reason on the toshiba laptop from 2012 the opengl driver loads very slowly. (Toshiba laptop L670 2012/Intel/AMD/RadeON)

So slow that I believed the application "frooze/hang" but this is not the cause.

Possible causes:

1. I "hacked" the driver version number to try and make Star War Battlefront 2 run.
2. AMD installed a bad driver, or sabotaged the laptop trying to make it run slow.
3. Microsoft ****ed up and installed some bad driver to make the laptop run slow.
4. The slow 5200 RPM harddisk is responsible for the slow load. Though 80 MB/sec should be enough ?!

It's suspicious at the very least.

My question is: Is there a programmatic way to tell how long it will take to load the opengl driver ? Is there a way to tell when it's done, besides from ofcourse the rendering suddenly kicking in.

I did a quick google and find two threads that might be of some interesting:

https://docs.microsoft.com/en-us/win...-client-driver

"
The OpenGL runtime accesses the registry to determine which OpenGL installable client driver (ICD) to load.

To load the OpenGL ICD, the OpenGL runtime:

Determines the name, version, and flags that are associated with the OpenGL ICD by calling the

D3DKMTQueryAdapterInfo function with the KMTQAITYPE_UMOPENGLINFO value set in the Type member of the

D3DKMT_QUERYADAPTERINFO structure that the pData parameter points to.

Checks the version number of the OpenGL ICD that D3DKMTQueryAdapterInfo returns to validate the version

of the OpenGL ICD.

Loads the OpenGL ICD by using the name of the OpenGL ICD.

Initializes access to the OpenGL ICD's functions. Note To obtain a license for the OpenGL ICD

Development Kit, contact the OpenGL Issues team.

To locate the name of the OpenGL ICD, D3DKMTQueryAdapterInfo searches the registry in the following key:
registry

HKLM/System/CurrentControlSet/Control/Class/{Adapter GUID}/0000/

This key also contains the names of the Microsoft Direct3D user-mode display drivers. This key contains four

registry entries for 32-bit Windows Vista display drivers that are used on 32-bit Windows Vista and four

entries for 32-bit Windows Vista display drivers that are used on 64-bit Windows Vista. The following entries

are for 32-bit Windows Vista display drivers that are used on 32-bit Windows Vista:

UserModeDriverName
REG_SZ

The name of the Direct3D user-mode display driver, which is required for the operation of a Direct3D

rendering device regardless of whether the operating system supports an OpenGL ICD.

OpenGLDriverName
REG_SZ

The name of the OpenGL ICD. For example, if the OpenGL ICD is Mydriver.dll, the value of this entry is

Mydriver.dll.

OpenGLVersion
REG_DWORD

The version number of the OpenGL ICD that the OpenGL runtime uses to validate the version of the OpenGL ICD.

OpenGLFlags
REG_DWORD

A flag bitmask. Currently, bit 0 (0x00000001) is set for compatibility. When bit 1 (0x00000002) is set, the

OpenGL runtime does not call the ICD's finish function before the runtime calls the ICD's swap-buffers

function.

The following entries are for 32-bit Windows Vista display drivers that are used on 64-bit Windows Vista:

UserModeDriverNameWow
REG_SZ

The name of the 32-bit Microsoft Direct3D user-mode display driver for 64-bit Windows Vista.

OpenGLDriverNameWow
REG_SZ

The name of the 32-bit OpenGL ICD for 64-bit Windows Vista.

OpenGLVersionWow
REG_DWORD

The version number of the 32-bit OpenGL ICD for 64-bit Windows Vista.

OpenGLFlagsWow
REG_DWORD

A flag bitmask of the 32-bit OpenGL ICD for 64-bit Windows Vista.
"

and this:

https://stackoverflow.com/questions/...mechanism-work

Has anybody ever developed a "loading opengl driver" window/display ?

I could place a label behind the render window and tell the user:

"please wait for the opengl driver to load".

Bye for now,
Skybuck.


This isn't really answering your question, but perhaps
you could try this

https://geeks3d.com/furmark/

just to get some idea how long a non-game takes to load.

If only DXDiag had a button to test, that would have
been a way to do it. But all it tests (back when it had tests)
is DirectX stuff.

Paul
  #3  
Old May 23rd 21, 04:37 AM posted to alt.comp.periphs.videocards.nvidia
skybuck2000
external usenet poster
 
Posts: 61
Default OpenGL driver loading abnoxiously slow. (Toshiba laptop L670 2012/Intel/AMD/RadeON)

Posting 1:

Here is some more information after running DBG Spider on it:

Short conclusion:

It might be some application code problem, maybe even a Delphi VCL problem, not yet sure.

What the debugger/profiler is showing is something like this:

TOpenGLControl.WMCreate

TControl.WndProc

TWinControl.WndProc

TWinControl.CreateWindowHandle

TWinControl.CreateHandle

TWinControl.UpdateShowing

TWinControl.UpdateControlState

TWinControl.CMVisibleChanged

TControl.Perform

TControl.SetVisible

Classes.StdWndProc

Windows.CreateWindowEx

Game.initialization

Be advise this is not a call stack, but these functions seems to be calling each other.

TOpenGLControl.WMCreate is code I wrote.

What I believe might be happening is that these functions are calling each other repeatedly in some kind of loop or circle.

Surprisingly no stack overflow occurs.

Apperently this loop continues until somehow it gets out of it. Perhaps by a lucky change of events in windows or perhaps some condition is met.

This is my best bet for now.

Posting 2:

My final conclusion for now:

A debug version was tested on windows 7 home edition with ATI/AMD radeon drivers, that were installed multiple times probably by bug in their driver installation program.

This debug version was compiled with delphi community edition 10.3

The same debug version was then zipped up and transmitted to windows 7 ultimate edition on my dreampc and debugged there as well.

The strange behaviour is only witnessed on the laptop with stange ATI/AMD drivers.
The strange behaviour IS GONE on windows 7 ultimate edition with nvidia drivers.

This leads me to some conclusions and hypothesis:

1. Either the driver was "hooked" multiple times into the system or there are multiple drivers running/installed, however only one ati xxx thing seems to be loaded: atigktxx.dll
So hypothesis 1 seems somewhat unlike, no problems are observed in game or in performance.

Which leads me to hypothesis number 2, which I also debugged on top of the laptop itself:
2. The latest Delphi VCL framework is bugged on Windows 7 home edition.
The company behind Delphi never tested their changes on Windows 7 home edition.
This seems the most likely culprit. It may have something to do with repositioning the window and entering into some kind of weird loop.

3. It could also be some weird kind of bug in windows 7 home edition that get triggered in combination with opengl.

4. However I have something more to report:
Quake 3 Arena demo does not run on the laptop. This game uses opengl, so this is also somewhat suspicious.
It seems to fail at callind CDS bad mode.
It seems Quake 3 is having some kind of create window problem. It cannot find a good resolution.

So something weird is going on with ATI/AMD driver, for now I do not believe it is related to driver version being incremented. This may be something else.

Bye for now,
Skybuck.
  #4  
Old May 23rd 21, 10:15 AM posted to alt.comp.periphs.videocards.nvidia
skybuck2000
external usenet poster
 
Posts: 61
Default OpenGL driver loading abnoxiously slow. (Toshiba laptop L670 2012/Intel/AMD/RadeON)

I found and consulted my older postings about this, fortunately those still on google newsgroups.

GetDC doesn't work well in design state it's value is always different between api calls and such.

So for now I have decided to implement it this way:

function TOpenGLControl.GetDeviceContext : HDC;
begin
if not (csDesigning in ComponentState) then
begin
result := GetDC(Handle);
end else
begin
result := Canvas.Handle;
end;
end;

And then in whatever code a device context is necessary it calls this function:

GetDeviceContext.

The only drawback so far is that it crashes the IDE when the topengl control is put on a form, why exactly I don't know but it might have something to do with the IDE not being able to find the source code or whatever.

I like adding those manually to projects. It could also be some new bug in the IDE, after the project is fixed by adding the graphics units and saved and re-opened all should work fine.

Now I go test it further by re-compilingg some of my applications and corona game to solve this weird slow startup hopefully once and for all because it's quite annoying.

It could also be that VCL has a bug which gets more severe as the CPU speed increases !

So Delphi creator be warned and debug your VCL better ! In some rare cases it can behave strangely, still haven't found the exact cause of it... so far so good though...

It may also have to do something with critical sections being locked and unlocked.

Or maybe it trips up the dbg spider...

I am still not 100% convinced this solves it once and for all but it does make the situation better.

It could also be a weird bug in windows 7 home edition or in AMD/ATI driver which is beta, but also the official driver also showed some behaviour.

And same behaviour also noticed on PC/nvidia... windows 7 ultimate edition...

So the mystery remains somewhat but is now less severe.

Bye for now,
Skybuck.
 




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
HAPPY NEWS: Toshiba laptop L670 1JQ core i5 M480 2.67 GHz DIED ?!PROBABLY FROM OVERHEAT. [email protected] Homebuilt PC's 2 August 8th 20 11:53 AM
Toshiba laptop L670 1JQ core i5 M480 2.67 GHz locked at 1.4 GHz bothcores ?!? [email protected] Homebuilt PC's 4 August 4th 20 01:21 PM
(Repaired) Toshiba Laptop Satellite L670 performing poorly (No HD Speed Information ?!? Weird IBM stuff) Skybuck Flying[_4_] General 7 October 13th 15 06:42 AM
(Repaired) Toshiba Laptop Satellite L670 performing poorly (No HD Speed Information ?!? Weird IBM stuff) Skybuck Flying[_4_] Homebuilt PC's 7 October 13th 15 06:42 AM
OpenGL Problem with latest AIW Radeon 9600 series CCC & Display Driver Graystar Ati Videocards 1 August 6th 07 03:50 AM


All times are GMT +1. The time now is 01:05 AM.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
Copyright 2004-2022 HardwareBanter.
The comments are property of their posters.