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 |
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 |
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. _______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc ErreurOpenGLLesson.txt (49K) Download Attachment |
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:
_______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
Both OpenGL-Windows and CairoCraphics access handles with "unsignedLongAt: 5" on Windows, which won't work with 64 bit VMs/images.
|
Administrator
|
In reply to this post by Vincent Lesbros-2
|
Thanks for the link.
2013/4/12 askoh <[hidden email]> Follow the thread _______________________________________________ vwnc mailing list [hidden email] http://lists.cs.uiuc.edu/mailman/listinfo/vwnc |
Free forum by Nabble | Edit this page |