GL_OUT_OF_MEMORY Error
#1
Posted 19 May 2007 - 07:42 PM
What I mean is where should I look first. And so on...
Nicholas
#2
Posted 20 May 2007 - 06:02 AM
#3
Posted 20 May 2007 - 12:22 PM
At a point in the code I call these three funcs(below). Now I know glBindTexture will work even if I get the OUT_OF_MEMORY error, It just deals with it.
But I think (maybe I'm not sure) wglBindTexImageARB does fail. This is after
some tests I have performed, but I am strill doing more testing to determine
if its wglBindTexImageARB or glCopyTexSubImage2D failing permanently.
glBindTexture
wglBindTexImageARB
glCopyTexSubImage2D
My card GeForce 5700 fx go. 128 Meg on Windows XP Media Center
Is their a way around wglBindTexImageARB
and is their a way around glCopyTexSubImage2D without using read / draw pixels.
Nicholas
#4
Posted 20 May 2007 - 01:26 PM
they both work if run independently . I don't see what is the difference.

Nicholas
#5
Posted 21 May 2007 - 02:07 PM
Nicholas Christopher said:
some tests I have performed, but I am strill doing more testing to determine
if its wglBindTexImageARB or glCopyTexSubImage2D failing permanently.
#6
Posted 21 May 2007 - 10:33 PM
I'm still looking to track down the problem. Its that all the other functions
continue to work disregarding the error, but wglBindTexImageARB or glCopyTexSubImage2D fails .. I'm going back to review my initialization
code.
I'm also looking into the fact that I have multiple GL viewports (TOP,RIGHT,LEFT) etc.. and whether this may be the problem.
#7
Posted 22 May 2007 - 03:41 AM
#8
Posted 22 May 2007 - 06:43 AM
#10
Posted 22 May 2007 - 04:18 PM
Nicholas
#11
Posted 22 May 2007 - 10:49 PM
Kenneth Gorking said:
"Several error generation conditions are implicit in the description of every GL
command:
• If a command that requires an enumerated value is passed a symbolic constant
that is not one of those specified as allowable for that command, the
error INVALID ENUM error is generated. This is the case even if the argument
is a pointer to a symbolic constant, if value pointer to is not allowable
for the given command.
• If a negative number is provided where an argument of type sizei is specified,
the error INVALID VALUE is generated.
• If memory is exhausted as a side effect of the execution of a command, the
error OUT OF MEMORY may be generated.
Otherwise, errors are generated only for conditions that are explicitly described in
this specification."
And besides from that: never ever take the man-pages for a definite source of information about OpenGL, they are loaded with errors. Unfortunately, it takes a while getting used to reading the spec.
#12
Posted 23 May 2007 - 05:38 PM
If you have been following my other thread at all on devmaster
http://www.devmaster...read.php?t=9859
This means that the 3.1 gDebugger version won't run on my PC..
The 3.1 version installation crashes , I have logged a report on their forum.
So I tried to simply extract the msi's files, and run the application and it crashes
also, complaining about my nvidea drivers. I was hoping it was simply opengl32.dll
So it looks like I can't use gDebugger, tried to find an older version unsuccessfully.
I know what you are going to say here.. update my drivers.. but I don't think I can.. toshiba laptop.
So now I'm back to using glError... Uhhhh... man is that going to be a lot of work.
Nicholas
#13
Posted 23 May 2007 - 07:20 PM
#define TRACE_GL_ERROR() do { GLenum err = glGetError(); if (GL_NO_ERROR != err) printf("*** GL error: 0x%X at %s:%d\n", err, __FILE__, __LINE__); } while (0)
#14
Posted 23 May 2007 - 08:39 PM
Well it actually does work, but only on the LAST opengl frame created.
I modified my test application to the images below, composed of 3 window
frames, the application window, and the two opengl windows. (I don't mean viewports) seen side by side.
The first image,shows it working. The thumbnail shows what is rendered in the pbuffer. And the teapot rendered properly in the last window created.
image1:

I swap the opengl window frames and almost nothing happens. It still renders
a black screen to the wrong window, even if you make the other window current. The white window frame being
the window it should be drawing to.
image2:

Now I will go back and modify my main application and pray I was right. ;)
Thanks kusma for the code snip.
I added a snippet of code to show the window creation.
DWORD dwStyle = WS_CAPTION | WS_POPUP | WS_SYSMENU | WS_VISIBLE | WS_MINIMIZEBOX;
DWORD dwExStyle = WS_EX_APPWINDOW | WS_EX_WINDOWEDGE;
WNDCLASS wndClass =
{
CS_OWNDC, WinProc, 0, 0,
g_hInstance, LoadIcon(g_hInstance, "IDI_APP"), LoadCursor(0, IDC_ARROW), 0, 0, "HDR"
};
RegisterClass(&wndClass);
g_hWndParent = CreateWindowEx(dwExStyle, "HDR", "HDR", dwStyle, 0, 0, VIEW_WIDTH+10, VIEW_HEIGHT+10, 0, 0, g_hInstance, 0);
GetClientRect(g_hWndParent, &r);
hWnd =osInit("HDR2" ,0,0, VIEW_WIDTH/2, r.bottom, OS_OVERLAY /*| OS_FSAA*/, 0);
/* hDC =window.hDC;
hRC =window.hRC;
texture = window.texture;
hBuffer = window.hBuffer; */
hTmp =osInit("HDR3", VIEW_WIDTH/2, 0,VIEW_WIDTH, r.bottom, OS_OVERLAY /*| OS_FSAA*/, 0);
/*g_hWnd = hWnd;
window.hDC = hDC;
window.hRC = hRC;
window.texture =texture;
window.hBuffer = hBuffer; */
//osWaitVsync(0);
//ShowWindow(g_hWnd, SW_HIDE);
init();
//ShowWindow(g_hWnd, SW_SHOW);
while (!done)
{
// windows vanilla loop
}
#15
Posted 23 May 2007 - 08:52 PM
Nicholas Christopher said:
If you have been following my other thread at all on devmaster
http://www.devmaster...read.php?t=9859
This means that the 3.1 gDebugger version won't run on my PC..
The 3.1 version installation crashes , I have logged a report on their forum.
So I tried to simply extract the msi's files, and run the application and it crashes
also, complaining about my nvidea drivers. I was hoping it was simply opengl32.dll
So it looks like I can't use gDebugger, tried to find an older version unsuccessfully.
I know what you are going to say here.. update my drivers.. but I don't think I can.. toshiba laptop.
So now I'm back to using glError... Uhhhh... man is that going to be a lot of work.
Nicholas
<flippant>Install newer drivers, use FBO's you would have saved yourself tonnes of hassle</flippant>
#16
Posted 23 May 2007 - 09:11 PM
I updated the drivers on my laptop in the past and it blue screened windows.
I needed to totally recover OS from install CD's
Actually I just tried again to upgrade the drivers, and my product is not even supported by nvidia .
GeForce FX GO 5700, the GeForce FX 5700 is, but not the mobile card.
Nicholas
#17
Posted 24 May 2007 - 08:55 AM
Edit:
But also make sure you have a system restore point so you can always roll back the OS to before you mess with the drivers (if it blue screens)
#18
Posted 24 May 2007 - 12:26 PM
I think you missed this on my previous reply.
Quote
GeForce FX GO 5700, the GeForce FX 5700 is, but not the mobile card.
Nicholas
#19
Posted 24 May 2007 - 01:36 PM
Quote
There is solution. Download official ForceWare driver and unzip to any folder. Replace nv4_disp.inf with this file (added Go5200 lines and fixed according Matt's suggestion). Finally go to Device Manager/Display adaptors/GeForce FX Go5200 graphic card and update driver with the new one.
So give it a go, it might work.
#20
Posted 24 May 2007 - 05:03 PM
I will try..
Quote
And thanks for pushing the point Kenneth.. Its like I say, I usually understand after its been explained more than once.
Nicholas
1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users












