[Bug 27906] Google Sketchup 7/8 can't initialize hardware accelerated OpenGL for specific graphics vendors, e.g. Intel (missing vendor/renderer in app glcard database)

wine-bugs at winehq.org wine-bugs at winehq.org
Wed Jul 2 08:38:12 CDT 2014


https://bugs.winehq.org/show_bug.cgi?id=27906

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |download
             Status|NEW                         |RESOLVED
                URL|                            |http://dl.trimble.com/sketc
                   |                            |hup/gsu8/FW-3-0-16846-EN.ex
                   |                            |e
                 CC|                            |focht at gmx.net
          Component|opengl                      |-unknown
         Resolution|---                         |WONTFIX
            Summary|Google Sketchup 8 can't     |Google Sketchup 7/8 can't
                   |initialize OpenGL           |initialize hardware
                   |                            |accelerated OpenGL for
                   |                            |specific graphics vendors,
                   |                            |e.g. Intel (missing
                   |                            |vendor/renderer in app
                   |                            |glcard database)

--- Comment #55 from Anastasius Focht <focht at gmx.net> ---
Hello folks,

confirming, on laptop with Intel HD4600 graphics it still fails.

Works fine with NVIDIA blob.

Bug 14045 was closed some time ago (technically it's still the same issue, but
well).

There is an application log file here: 'c:/windows/temp/SketchUpUndo0.log'

--- snip ---
======== Starting GL ========
>CBaseGLView::OnInitialUpdate
>InitializeOpenGL
>GetActivePixelFormat
requestedpf.accel=1
ARB functions NOT available.
nPfds=23
Pixel format 0 does not do a swap copy.
Pixel format 3 does not do a swap copy.
Pixel format 6 does not do a swap copy.
Pixel format 7 does not do a swap copy.
Pixel format 8 does not do a swap copy.
Pixel format 9 does not do a swap copy.
Pixel format 10 does not do a swap copy.
Pixel format 11 does not do a swap copy.
Pixel format 14 does not do a swap copy.
Pixel format 17 does not do a swap copy.
Pixel format 18 does not do a swap copy.
Pixel format 19 does not do a swap copy.
Pixel format 20 does not do a swap copy.
Pixel format 21 does not do a swap copy.
Pixel format 22 does not do a swap copy.
ChoosePixelFormat returning 0
requestedpf.accel=1
ARB functions NOT available.
nPfds=23
ChoosePixelFormat returning 4
GLConfigUtils::GetActivePixelFormat ... returning 4
Make a context ... pf=4
Got context @2acd5f8 error=0
GL initialization succeeded
***** First UI thread = 54
Tool(SketchTool)
Tool(SketchTool)
UseHWAccelerationFirstTime
Got vendor (Intel Open Source Technology Center) renderer(Mesa DRI Intel(R)
Haswell Mobile )
Returning 0
UpdateView
Create rv=1
>CBaseGLView::OnInitialUpdate
>InitializeOpenGL
>GetActivePixelFormat
Got PF= 0 from registry
requestedpf.accel=0
ARB functions NOT available.
nPfds=23
ChoosePixelFormat returning 0
requestedpf.accel=0
ARB functions NOT available.
nPfds=23
ChoosePixelFormat returning 0
requestedpf.accel=0
ARB functions NOT available.
nPfds=23
Pixel format 0 does not do a swap copy.
Pixel format 3 does not do a swap copy.
Pixel format 6 does not do a swap copy.
Pixel format 7 does not do a swap copy.
Pixel format 8 does not do a swap copy.
Pixel format 9 does not do a swap copy.
Pixel format 10 does not do a swap copy.
Pixel format 11 does not do a swap copy.
Pixel format 14 does not do a swap copy.
Pixel format 17 does not do a swap copy.
Pixel format 18 does not do a swap copy.
Pixel format 19 does not do a swap copy.
Pixel format 20 does not do a swap copy.
Pixel format 21 does not do a swap copy.
Pixel format 22 does not do a swap copy.
ChoosePixelFormat returning 0
GLConfigUtils::GetActivePixelFormat ... returning 0
-InitializeOpenGL failed ... m_error=2
--- snip ---

With NVIDIA blob the log file has this content upon first run:

--- snip ---
======== Starting GL ========
>CBaseGLView::OnInitialUpdate
>InitializeOpenGL
>GetActivePixelFormat
requestedpf.accel=1
ARB functions NOT available.
nPfds=164
Pixel format 0 does not do a swap copy.
Pixel format 1 does not do a swap copy.
Pixel format 2 does not do a swap copy.
Pixel format 3 does not do a swap copy.
Pixel format 12 does not do a swap copy.
Pixel format 13 does not do a swap copy.
Pixel format 14 does not do a swap copy.
Pixel format 15 does not do a swap copy.
Pixel format 24 does not do a swap copy.
Pixel format 25 does not do a swap copy.
Pixel format 26 does not do a swap copy.
Pixel format 27 does not do a swap copy.
Pixel format 36 does not do a swap copy.
Pixel format 37 does not do a swap copy.
Pixel format 38 does not do a swap copy.
Pixel format 39 does not do a swap copy.
Pixel format 40 does not do a swap copy.
Pixel format 41 does not do a swap copy.
Pixel format 42 does not do a swap copy.
Pixel format 43 does not do a swap copy.
Pixel format 52 does not do a swap copy.
Pixel format 53 does not do a swap copy.
Pixel format 54 does not do a swap copy.
Pixel format 55 does not do a swap copy.
Pixel format 56 does not do a swap copy.
Pixel format 57 does not do a swap copy.
Pixel format 58 does not do a swap copy.
Pixel format 59 does not do a swap copy.
Pixel format 68 does not do a swap copy.
Pixel format 69 does not do a swap copy.
Pixel format 70 does not do a swap copy.
Pixel format 71 does not do a swap copy.
Pixel format 72 does not do a swap copy.
Pixel format 73 does not do a swap copy.
Pixel format 74 does not do a swap copy.
Pixel format 75 does not do a swap copy.
Pixel format 84 does not do a swap copy.
Pixel format 85 does not do a swap copy.
Pixel format 86 does not do a swap copy.
Pixel format 87 does not do a swap copy.
Pixel format 88 does not do a swap copy.
Pixel format 89 does not do a swap copy.
Pixel format 90 does not do a swap copy.
Pixel format 91 does not do a swap copy.
Pixel format 100 does not do a swap copy.
Pixel format 101 does not do a swap copy.
Pixel format 102 does not do a swap copy.
Pixel format 103 does not do a swap copy.
Pixel format 104 does not do a swap copy.
Pixel format 105 does not do a swap copy.
Pixel format 106 does not do a swap copy.
Pixel format 107 does not do a swap copy.
Pixel format 108 does not do a swap copy.
Pixel format 109 does not do a swap copy.
Pixel format 110 does not do a swap copy.
Pixel format 111 does not do a swap copy.
Pixel format 124 does not do a swap copy.
Pixel format 125 does not do a swap copy.
Pixel format 126 does not do a swap copy.
Pixel format 127 does not do a swap copy.
Pixel format 128 does not do a swap copy.
Pixel format 129 does not do a swap copy.
Pixel format 130 does not do a swap copy.
Pixel format 131 does not do a swap copy.
Pixel format 132 does not do a swap copy.
Pixel format 133 does not do a swap copy.
Pixel format 134 does not do a swap copy.
Pixel format 135 does not do a swap copy.
Pixel format 148 does not do a swap copy.
Pixel format 149 does not do a swap copy.
Pixel format 150 does not do a swap copy.
Pixel format 151 does not do a swap copy.
Pixel format 156 does not do a swap copy.
Pixel format 157 does not do a swap copy.
Pixel format 158 does not do a swap copy.
Pixel format 159 does not do a swap copy.
ChoosePixelFormat returning 0
requestedpf.accel=1
ARB functions NOT available.
nPfds=164
ChoosePixelFormat returning 1
GLConfigUtils::GetActivePixelFormat ... returning 1
Make a context ... pf=1
Got context @2ab1c60 error=0
GL initialization succeeded
***** First UI thread = 35
Tool(SketchTool)
Tool(SketchTool)
UseHWAccelerationFirstTime
Got vendor (NVIDIA Corporation) renderer(GeForce GT 425M/PCIe/SSE2)
Returning 1
Tool(SelectionTool)
>TerminateOpenGL
HW_OK=1

--- snip ---

'HW_OK=1' will be set automatically in registry _only_ on clean exit.

If you just kill off 'Sketchup' after template selection it also ends with
'HW_OK=0' in registry and fails even with NVIDIA next time.

Trace log for Intel/Mesa reveals:

--- snip ---
$ pwd
/home/focht/.wine/drive_c/Program Files/Google/Google SketchUp 8

$ WINEDEBUG=+tid,+seh,+relay wine ./SketchUp.exe >>log.txt 2>&1
...
0036:Call advapi32.RegOpenKeyExW(80000001,029fe880
L"Software\\Google\\SketchUp8\\GLConfig\\Display",00000000,00020019,0033f774)
ret=00710cbf
0036:Ret  advapi32.RegOpenKeyExW() retval=00000002 ret=00710cbf
0036:Call advapi32.RegOpenKeyExW(80000001,029fe880
L"Software\\Google\\SketchUp8\\GLConfig\\Display",00000000,00020019,0033f7b0)
ret=00712b6e
0036:Ret  advapi32.RegOpenKeyExW() retval=00000002 ret=00712b6e
0036:Call advapi32.RegCreateKeyW(80000001,029fe880
L"Software\\Google\\SketchUp8\\GLConfig\\Display",0033f7b0) ret=00712bb0
0036:Ret  advapi32.RegCreateKeyW() retval=00000000 ret=00712bb0
0036:Call advapi32.RegSetValueExW(00000304,00afc5b4
L"HW_OK",00000000,00000004,0033f7d0,00000004) ret=00712bcf
0036:Ret  advapi32.RegSetValueExW() retval=00000000 ret=00712bcf
...
0036:Call msvcr80.fputws(02a886c0 L"requestedpf.accel=1\n",7dde11a0)
ret=7830a9b8
0036:Ret  msvcr80.fputws() retval=00000000 ret=7830a9b8 
...
0036:Call msvcr80.fputws(02a886c0 L"ARB functions NOT available.\n",7dde11a0)
ret=7830a9b8 
...
0036:Call gdi32.DescribePixelFormat(00050061,00000001,00000000,00000000)
ret=0071271a
0036:Call opengl32.wglDescribePixelFormat(00050061,00000001,00000000,00000000)
ret=7eb39951
0036:Call gdi32.__wine_get_wgl_driver(00050061,0000000b) ret=7e34c689
0036:trace:wgl:X11DRV_WineGL_InitOpenglInfo GL version             : 3.0 Mesa
10.1.5.
0036:trace:wgl:X11DRV_WineGL_InitOpenglInfo GL renderer            : Mesa DRI
Intel(R) Haswell Mobile .
0036:trace:wgl:X11DRV_WineGL_InitOpenglInfo GLX version            : 1.4.
0036:trace:wgl:X11DRV_WineGL_InitOpenglInfo Server GLX version     : 1.4.
0036:trace:wgl:X11DRV_WineGL_InitOpenglInfo Server GLX vendor:     : SGI.
0036:trace:wgl:X11DRV_WineGL_InitOpenglInfo Client GLX version     : 1.4.
0036:trace:wgl:X11DRV_WineGL_InitOpenglInfo Client GLX vendor:     : Mesa
Project and SGI.
0036:trace:wgl:X11DRV_WineGL_InitOpenglInfo Direct rendering enabled: True
0036:trace:wgl:has_opengl GLX is up and running error_base = 170
...
0036:Call msvcr80.vsprintf(0033f69c,00afc338
"UseHWAccelerationFirstTime\n",0033fa9c) ret=00710789 
...
0036:Call msvcr80.fputws(02a408e0 L"Got vendor (Intel Open Source Technology
Center) renderer(Mesa DRI Intel(R) Haswell Mobile )\n",7dde11a0) ret=7830a9b8 
...
0036:Call KERNEL32.GetFullPathNameW(02a40ab0 L"C:/Program Files/Google/Google
SketchUp 8/glcards.dat",00000104,0033f854,0033f5b4) ret=7830a147
0036:Ret  KERNEL32.GetFullPathNameW() retval=00000035 ret=7830a147 
...
<reads database from file, tries partial match against OpenGL vendor>
...
0036:Call KERNEL32.MultiByteToWideChar(00000003,00000000,0033f698 "Returning
0\n",ffffffff,00000000,00000000) ret=783060de 
...
0036:Call user32.MessageBoxW(00030068,0674e528 L"SketchUp was unable to
initialize OpenGL!\nPlease make sure you have installed the correct\ndrivers
for your graphics card.\r\n\r\nError: ChoosePixelFormat failed",029fac48
L"SketchUp",00000030) ret=7831695a 
--- snip ---

The content of the file 'glcards.dat' in app folder:

--- snip ---
// Case doesn't matter.
// Partial strings are enough to make a match.
// HW == Use Hardware OpenGL
// SW == Use Software OpenGL
// any|ANY matches any Renderer.
// Format-
// Acceleration|Vendor|Renderer|Support File

// Defaults first.
HW|ATI Tech|any
HW|NVIDIA Corp|ANY

// Then Specific cards.
//SW|NVIDIA Corp|5200 
--- snip ---

Vendor 'Intel' isn't present here hence it will always have hw accel =
disabled!

-> Got PF= 0 from registry
-> requestedpf.accel=0

You can add an 'HW|Intel|ANY' entry to 'glcards.dat' and remove 'HW_OK=0' from
registry and it will work.

There is nothing to fix here, it's by design.

Another thing is non-working Software OpenGL rendering ('HW_OK=0').
This could be a legitimate (different) bug but someone needs to test if this
works on Windows.

$ sha1sum FW-3-0-16846-EN.exe 
6c9a61fe12b21fe9a1d6b5ee1bb79f331a5fc36c  FW-3-0-16846-EN.exe

$ du -sh FW-3-0-16846-EN.exe 
35M    FW-3-0-16846-EN.exe

$ wine --version
wine-1.7.21-19-g8812193

Regards

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list