OpenGL random externalAccessFailed in 64bit ?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

OpenGL random externalAccessFailed in 64bit ?

Vincent Lesbros-2
Hi,

My program using openGL is working fine in a 32 bit image
(VisualWorks® Personal Use Edition Release 7.9.1 of October 18, 2012)
under windows 7 64 bit.
But if I install it in a 64 bit image,
sometime, this is not regular, and I can't determine when,
I get an exception 'External access failed' in the activateContext
method called by the initialisation of the OpenGL.RenderContext

Thanks for help.

Vincent

---

WGL.RenderContextWin32
activateContext
        | success |
        old_hdc := xif wglGetCurrentDC asInteger.
        old_hglrc := xif wglGetCurrentContext.
        success := xif wglMakeCurrent: hdc with: hglrc.
        success isZero ifTrue: [xif externalAccessFailedWith: xif GetLastError]


---
Unhandled exception: External access failed
WGL.WGLInterface(ExternalInterface)>>externalAccessFailedWith:
WGL.RenderContextWin32Window(WGL.RenderContextWin32)>>activateContext
optimized [] in OpenGL.RenderContext>>initialize:
BlockClosure>>ensure:
Semaphore>>critical:
WGL.RenderContextWin32Window(OpenGL.RenderContext)>>initialize:
WGL.RenderContextWin32Window(WGL.RenderContextWin32)>>initialize:
OpenGL.RenderContext class>>on:
Bouzin.GVLImageView(Bouzin.GVLView)>>initializeOpenGL
Bouzin.GVLImageView(Bouzin.GVLView)>>starting
optimized [] in Bouzin.GVLView>>start
BlockClosure>>on:do:
optimized [] in Process class>>forBlock:priority:

----------------------------------------------------------------------
WGL.WGLInterface(ExternalInterface)>>externalAccessFailedWith:
Receiver:
        a WGL.WGLInterface
Arguments:
        errorCode = 0
Temporaries:
        errorString = nil
Context PC = 44

----------------------------------------------------------------------
WGL.RenderContextWin32Window(WGL.RenderContextWin32)>>activateContext
Receiver:
        a WGL.RenderContextWin32Window
Instance Variables:
        interface = nil
        view = a ScheduledWindow 1278
        vendor = nil
        renderer = nil
        version = nil
        program = nil
        textures = nil
        texturesHistory = nil
        extensions = nil
        xif = a WGL.WGLInterface
        hdc = 2231439820
        hglrc = a CPointer {00080001} (HGLRC)
        old_hdc = 0
        old_hglrc = a CPointer {invalid} (HGLRC)
        hwnd = 527102
Temporaries:
        success = 0
Context PC = 24

----------------------------------------------------------------------
optimized [] in OpenGL.RenderContext>>initialize:
Receiver:
        an UndefinedObject
Temporaries:
        .self = a WGL.RenderContextWin32Window
Context PC = 6

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: OpenGL random externalAccessFailed in 64bit ?

Michael Lucas-Smith-2
Either there aren't 64bit opengl drivers available or I have some struct size incorrect somewhere in the external interface (I hope not). I'm not sure where you should start debugging. If I were to do it, I'd be comparing a basic C program to the Smalltalk structures to see that they're all the same and that it should work.

Cheers,
Michael

On 08/04/2013, at 1:27 AM, Vincent Lesbros <[hidden email]> wrote:

> Hi,
>
> My program using openGL is working fine in a 32 bit image
> (VisualWorks® Personal Use Edition Release 7.9.1 of October 18, 2012)
> under windows 7 64 bit.
> But if I install it in a 64 bit image,
> sometime, this is not regular, and I can't determine when,
> I get an exception 'External access failed' in the activateContext
> method called by the initialisation of the OpenGL.RenderContext
>
> Thanks for help.
>
> Vincent
>
> ---
>
> WGL.RenderContextWin32
> activateContext
> | success |
> old_hdc := xif wglGetCurrentDC asInteger.
> old_hglrc := xif wglGetCurrentContext.
> success := xif wglMakeCurrent: hdc with: hglrc.
> success isZero ifTrue: [xif externalAccessFailedWith: xif GetLastError]
>
>
> ---
> Unhandled exception: External access failed
> WGL.WGLInterface(ExternalInterface)>>externalAccessFailedWith:
> WGL.RenderContextWin32Window(WGL.RenderContextWin32)>>activateContext
> optimized [] in OpenGL.RenderContext>>initialize:
> BlockClosure>>ensure:
> Semaphore>>critical:
> WGL.RenderContextWin32Window(OpenGL.RenderContext)>>initialize:
> WGL.RenderContextWin32Window(WGL.RenderContextWin32)>>initialize:
> OpenGL.RenderContext class>>on:
> Bouzin.GVLImageView(Bouzin.GVLView)>>initializeOpenGL
> Bouzin.GVLImageView(Bouzin.GVLView)>>starting
> optimized [] in Bouzin.GVLView>>start
> BlockClosure>>on:do:
> optimized [] in Process class>>forBlock:priority:
>
> ----------------------------------------------------------------------
> WGL.WGLInterface(ExternalInterface)>>externalAccessFailedWith:
> Receiver:
> a WGL.WGLInterface
> Arguments:
> errorCode = 0
> Temporaries:
> errorString = nil
> Context PC = 44
>
> ----------------------------------------------------------------------
> WGL.RenderContextWin32Window(WGL.RenderContextWin32)>>activateContext
> Receiver:
> a WGL.RenderContextWin32Window
> Instance Variables:
> interface = nil
> view = a ScheduledWindow 1278
> vendor = nil
> renderer = nil
> version = nil
> program = nil
> textures = nil
> texturesHistory = nil
> extensions = nil
> xif = a WGL.WGLInterface
> hdc = 2231439820
> hglrc = a CPointer {00080001} (HGLRC)
> old_hdc = 0
> old_hglrc = a CPointer {invalid} (HGLRC)
> hwnd = 527102
> Temporaries:
> success = 0
> Context PC = 24
>
> ----------------------------------------------------------------------
> optimized [] in OpenGL.RenderContext>>initialize:
> Receiver:
> an UndefinedObject
> Temporaries:
> .self = a WGL.RenderContextWin32Window
> Context PC = 6
>
> _______________________________________________
> vwnc mailing list
> [hidden email]
> http://lists.cs.uiuc.edu/mailman/listinfo/vwnc


_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: OpenGL random externalAccessFailed in 64bit ?

Vincent Lesbros-2
Hi,

I try to simplify the way to reproduce the problem :

I Create a new 64 bit image 7.9.1, load the OpenGL.Lessons parcel,
and run the Lesson 00.


visualnc.im created at October 18, 2012 8:02:11 AM
Autoloading OpenGL-Windows from $(VISUALWORKS)\contributed\OpenGL-Windows.pcl
Autoloading DLLCC from $(VISUALWORKS)\dllcc\DLLCC.pcl
Autoloading OpenGL from $(VISUALWORKS)\contributed\OpenGL.pcl
Autoloading Graphics-Images-FixedPalettes from $(VISUALWORKS)\contributed\Graphics-Images-FixedPalettes.pcl
Autoloading OpenGL-Linux from $(VISUALWORKS)\contributed\OpenGL-Linux.pcl
Autoloading OpenGL-MacOSX from $(VISUALWORKS)\contributed\OpenGL-MacOSX.pcl
Autoloading ObjectiveCConnect from $(VISUALWORKS)\contributed\ObjectiveCConnect.pcl
Autoloading SUnitToo from $(VISUALWORKS)\contributed\SUnitToo.pclSUnitToo suggests SUnitToo(ls)

NSOpenGLContext is Undeclared
NSOpenGLPixelFormat is Undeclared
Autoloading CairoGraphics from $(VISUALWORKS)\preview\cairo\CairoGraphics.pcl
Autoloading Weaklings from $(VISUALWORKS)\contributed\Weaklings.pcl
Autoloading OpenGL-CairoGraphics from $(VISUALWORKS)\contributed\OpenGL-CairoGraphics.pcl
Autoloading OpenGL-Arithmetic from $(VISUALWORKS)\contributed\OpenGL-Arithmetic.pcl

OpenGL.Lessons.Lesson00RenderContext new demo
Window Rendering:
Vendor: NVIDIA Corporation
Renderer: GeForce GT 540M/PCI/SSE2
Version: 4.1.0
VSync Enabled: true
Image Rendering:
Vendor: NVIDIA Corporation
Renderer: GeForce GT 540M/PCI/SSE2
Version: 4.1.0
VSync Enabled: true

Then External access fails :
Unhandled exception: External access failed
WGL.WGLInterface(ExternalInterface)>>externalAccessFailedWith:
WGL.RenderContextWin32Pixmap>>initializeHDC

stack dump is in attached file.



2013/4/10 Michael Lucas-Smith <[hidden email]>
Either there aren't 64bit opengl drivers available or I have some struct size incorrect somewhere in the external interface (I hope not). I'm not sure where you should start debugging. If I were to do it, I'd be comparing a basic C program to the Smalltalk structures to see that they're all the same and that it should work.

Cheers,
Michael

On 08/04/2013, at 1:27 AM, Vincent Lesbros <[hidden email]> wrote:

> Hi,
>
> My program using openGL is working fine in a 32 bit image
> (VisualWorks® Personal Use Edition Release 7.9.1 of October 18, 2012)
> under windows 7 64 bit.
> But if I install it in a 64 bit image,
> sometime, this is not regular, and I can't determine when,
> I get an exception 'External access failed' in the activateContext
> method called by the initialisation of the OpenGL.RenderContext
>
> Thanks for help.
>
> Vincent
>
> ---
>
> WGL.RenderContextWin32
> activateContext
>       | success |
>       old_hdc := xif wglGetCurrentDC asInteger.
>       old_hglrc := xif wglGetCurrentContext.
>       success := xif wglMakeCurrent: hdc with: hglrc.
>       success isZero ifTrue: [xif externalAccessFailedWith: xif GetLastError]
>
>
> ---
> Unhandled exception: External access failed
> WGL.WGLInterface(ExternalInterface)>>externalAccessFailedWith:
> WGL.RenderContextWin32Window(WGL.RenderContextWin32)>>activateContext
> optimized [] in OpenGL.RenderContext>>initialize:
> BlockClosure>>ensure:
> Semaphore>>critical:
> WGL.RenderContextWin32Window(OpenGL.RenderContext)>>initialize:
> WGL.RenderContextWin32Window(WGL.RenderContextWin32)>>initialize:
> OpenGL.RenderContext class>>on:
> Bouzin.GVLImageView(Bouzin.GVLView)>>initializeOpenGL
> Bouzin.GVLImageView(Bouzin.GVLView)>>starting
> optimized [] in Bouzin.GVLView>>start
> BlockClosure>>on:do:
> optimized [] in Process class>>forBlock:priority:
>
> ----------------------------------------------------------------------
> WGL.WGLInterface(ExternalInterface)>>externalAccessFailedWith:
> Receiver:
>       a WGL.WGLInterface
> Arguments:
>       errorCode = 0
> Temporaries:
>       errorString = nil
> Context PC = 44
>
> ----------------------------------------------------------------------
> WGL.RenderContextWin32Window(WGL.RenderContextWin32)>>activateContext
> Receiver:
>       a WGL.RenderContextWin32Window
> Instance Variables:
>       interface = nil
>       view = a ScheduledWindow 1278
>       vendor = nil
>       renderer = nil
>       version = nil
>       program = nil
>       textures = nil
>       texturesHistory = nil
>       extensions = nil
>       xif = a WGL.WGLInterface
>       hdc = 2231439820
>       hglrc = a CPointer {00080001} (HGLRC)
>       old_hdc = 0
>       old_hglrc = a CPointer {invalid} (HGLRC)
>       hwnd = 527102
> Temporaries:
>       success = 0
> Context PC = 24
>
> ----------------------------------------------------------------------
> optimized [] in OpenGL.RenderContext>>initialize:
> Receiver:
>       an UndefinedObject
> Temporaries:
>       .self = a WGL.RenderContextWin32Window
> Context PC = 6
>
> _______________________________________________
> vwnc mailing list
> [hidden email]
> http://lists.cs.uiuc.edu/mailman/listinfo/vwnc



_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc

ErreurOpenGLLesson.txt (49K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: OpenGL random externalAccessFailed in 64bit ?

Michael Lucas-Smith-2
Is it crashing during the Pixmap Rendering section of lesson 0? If so, that's okay - none of the other lessons or normal usage use that mode. If it is crashing there, it's possible the 64-bit driver has dropped support for that mode of rendering.

Cheers,
Michael

On 12/04/2013, at 1:09 AM, Vincent Lesbros <[hidden email]> wrote:

Hi,

I try to simplify the way to reproduce the problem :

I Create a new 64 bit image 7.9.1, load the OpenGL.Lessons parcel,
and run the Lesson 00.


visualnc.im created at October 18, 2012 8:02:11 AM
Autoloading OpenGL-Windows from $(VISUALWORKS)\contributed\OpenGL-Windows.pcl
Autoloading DLLCC from $(VISUALWORKS)\dllcc\DLLCC.pcl
Autoloading OpenGL from $(VISUALWORKS)\contributed\OpenGL.pcl
Autoloading Graphics-Images-FixedPalettes from $(VISUALWORKS)\contributed\Graphics-Images-FixedPalettes.pcl
Autoloading OpenGL-Linux from $(VISUALWORKS)\contributed\OpenGL-Linux.pcl
Autoloading OpenGL-MacOSX from $(VISUALWORKS)\contributed\OpenGL-MacOSX.pcl
Autoloading ObjectiveCConnect from $(VISUALWORKS)\contributed\ObjectiveCConnect.pcl
Autoloading SUnitToo from $(VISUALWORKS)\contributed\SUnitToo.pclSUnitToo suggests SUnitToo(ls)

NSOpenGLContext is Undeclared
NSOpenGLPixelFormat is Undeclared
Autoloading CairoGraphics from $(VISUALWORKS)\preview\cairo\CairoGraphics.pcl
Autoloading Weaklings from $(VISUALWORKS)\contributed\Weaklings.pcl
Autoloading OpenGL-CairoGraphics from $(VISUALWORKS)\contributed\OpenGL-CairoGraphics.pcl
Autoloading OpenGL-Arithmetic from $(VISUALWORKS)\contributed\OpenGL-Arithmetic.pcl

OpenGL.Lessons.Lesson00RenderContext new demo
Window Rendering:
Vendor: NVIDIA Corporation
Renderer: GeForce GT 540M/PCI/SSE2
Version: 4.1.0
VSync Enabled: true
Image Rendering:
Vendor: NVIDIA Corporation
Renderer: GeForce GT 540M/PCI/SSE2
Version: 4.1.0
VSync Enabled: true

Then External access fails :
Unhandled exception: External access failed
WGL.WGLInterface(ExternalInterface)>>externalAccessFailedWith:
WGL.RenderContextWin32Pixmap>>initializeHDC

stack dump is in attached file.



2013/4/10 Michael Lucas-Smith <[hidden email]>
Either there aren't 64bit opengl drivers available or I have some struct size incorrect somewhere in the external interface (I hope not). I'm not sure where you should start debugging. If I were to do it, I'd be comparing a basic C program to the Smalltalk structures to see that they're all the same and that it should work.

Cheers,
Michael

On 08/04/2013, at 1:27 AM, Vincent Lesbros <[hidden email]> wrote:

> Hi,
>
> My program using openGL is working fine in a 32 bit image
> (VisualWorks® Personal Use Edition Release 7.9.1 of October 18, 2012)
> under windows 7 64 bit.
> But if I install it in a 64 bit image,
> sometime, this is not regular, and I can't determine when,
> I get an exception 'External access failed' in the activateContext
> method called by the initialisation of the OpenGL.RenderContext
>
> Thanks for help.
>
> Vincent
>
> ---
>
> WGL.RenderContextWin32
> activateContext
>       | success |
>       old_hdc := xif wglGetCurrentDC asInteger.
>       old_hglrc := xif wglGetCurrentContext.
>       success := xif wglMakeCurrent: hdc with: hglrc.
>       success isZero ifTrue: [xif externalAccessFailedWith: xif GetLastError]
>
>
> ---
> Unhandled exception: External access failed
> WGL.WGLInterface(ExternalInterface)>>externalAccessFailedWith:
> WGL.RenderContextWin32Window(WGL.RenderContextWin32)>>activateContext
> optimized [] in OpenGL.RenderContext>>initialize:
> BlockClosure>>ensure:
> Semaphore>>critical:
> WGL.RenderContextWin32Window(OpenGL.RenderContext)>>initialize:
> WGL.RenderContextWin32Window(WGL.RenderContextWin32)>>initialize:
> OpenGL.RenderContext class>>on:
> Bouzin.GVLImageView(Bouzin.GVLView)>>initializeOpenGL
> Bouzin.GVLImageView(Bouzin.GVLView)>>starting
> optimized [] in Bouzin.GVLView>>start
> BlockClosure>>on:do:
> optimized [] in Process class>>forBlock:priority:
>
> ----------------------------------------------------------------------
> WGL.WGLInterface(ExternalInterface)>>externalAccessFailedWith:
> Receiver:
>       a WGL.WGLInterface
> Arguments:
>       errorCode = 0
> Temporaries:
>       errorString = nil
> Context PC = 44
>
> ----------------------------------------------------------------------
> WGL.RenderContextWin32Window(WGL.RenderContextWin32)>>activateContext
> Receiver:
>       a WGL.RenderContextWin32Window
> Instance Variables:
>       interface = nil
>       view = a ScheduledWindow 1278
>       vendor = nil
>       renderer = nil
>       version = nil
>       program = nil
>       textures = nil
>       texturesHistory = nil
>       extensions = nil
>       xif = a WGL.WGLInterface
>       hdc = 2231439820
>       hglrc = a CPointer {00080001} (HGLRC)
>       old_hdc = 0
>       old_hglrc = a CPointer {invalid} (HGLRC)
>       hwnd = 527102
> Temporaries:
>       success = 0
> Context PC = 24
>
> ----------------------------------------------------------------------
> optimized [] in OpenGL.RenderContext>>initialize:
> Receiver:
>       an UndefinedObject
> Temporaries:
>       .self = a WGL.RenderContextWin32Window
> Context PC = 6
>
> _______________________________________________
> vwnc mailing list
> [hidden email]
> http://lists.cs.uiuc.edu/mailman/listinfo/vwnc


<ErreurOpenGLLesson.txt>


_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: OpenGL random externalAccessFailed in 64bit ?

Holger Kleinsorgen
Both OpenGL-Windows and CairoCraphics access handles with "unsignedLongAt: 5" on Windows, which won't work with 64 bit VMs/images.

Michael Lucas-Smith-2 wrote
Is it crashing during the Pixmap Rendering section of lesson 0? If so, that's okay - none of the other lessons or normal usage use that mode. If it is crashing there, it's possible the 64-bit driver has dropped support for that mode of rendering.
Reply | Threaded
Open this post in threaded view
|

Re: OpenGL random externalAccessFailed in 64bit ?

askoh
Administrator
In reply to this post by Vincent Lesbros-2
Reply | Threaded
Open this post in threaded view
|

Re: OpenGL random externalAccessFailed in 64bit ?

Vincent Lesbros-2
Thanks for the link.

2013/4/12 askoh <[hidden email]>
Follow the thread
http://forum.world.st/VW7-9-OpenGL-problem-tc4640035.html#a4640041

Aik-Siong Koh



--
View this message in context: http://forum.world.st/OpenGL-random-externalAccessFailed-in-64bit-tp4680108p4681097.html
Sent from the VisualWorks mailing list archive at Nabble.com.
_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc


_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc