- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I have problem with glFramebufferTexture2DEXT function with intel GMA4500MHD 7.15.10.1688 drivers (using vista 32 bit). I'm attaching sample project which demonstrate failure (exception):
If line 102 in the enum.cpp file
Here is the full listing:
Trigve
I have problem with glFramebufferTexture2DEXT function with intel GMA4500MHD 7.15.10.1688 drivers (using vista 32 bit). I'm attaching sample project which demonstrate failure (exception):
[cpp]First-chance exception at 0x10053930 in enum.exe: 0xC0000005: Access violation reading location 0xfeeeff86.The code throw exception in enum.cpp on line 109:
Unhandled exception at 0x10053930 in enum.exe: 0xC0000005: Access violation reading location 0xfeeeff86.[/cpp]
[cpp]glDeleteTextures(1, &tid); // <--Crash--[/cpp]
If line 102 in the enum.cpp file
[cpp]glTexImage2D(target, 0, fmt, prob_size, prob_size, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0);with comment "// <--Here--" is commented, no exception is thrown.
glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, target, tid, 0); // <--Here--[/cpp]
Here is the full listing:
[cpp]// enum.cpp : Defines the entry point for the console application.Thanks
//
#include "stdafx.h"
#include
#include
#include
#include "GL/glew.h"
#ifndef _WIN32_WINNT
# define _WIN32_WINNT 0x0501
#endif
LRESULT __stdcall dummyWndProc(HWND hwnd, UINT umsg, WPARAM wp, LPARAM lp)
{
return DefWindowProc(hwnd, umsg, wp, lp);
}
int main(int argc, char* argv[])
{
LPCSTR dummyText = "WglDummy";
HINSTANCE hinst = GetModuleHandle( NULL );
WNDCLASS dummyClass;
memset(&dummyClass, 0, sizeof(WNDCLASS));
dummyClass.style = CS_OWNDC;
dummyClass.hInstance = hinst;
dummyClass.lpfnWndProc = &dummyWndProc;
dummyClass.lpszClassName = dummyText;
ATOM a = RegisterClass(&dummyClass);
assert(a != NULL);
HWND hwnd = CreateWindow(dummyText, dummyText, WS_CLIPCHILDREN | WS_CLIPSIBLINGS, 0, 0, 32, 32, 0, 0, hinst, 0);
// if a simple CreateWindow fails, then boy are we in trouble...
if (hwnd == NULL)
return 1;
// no chance of failure and no need to release thanks to CS_OWNDC
HDC hdc = GetDC(hwnd);
if(hdc == NULL)
return 2;
// assign a simple OpenGL pixel format that everyone supports
PIXELFORMATDESCRIPTOR pfd = {
sizeof(PIXELFORMATDESCRIPTOR), // size of this pfd
1, // version number
PFD_DRAW_TO_WINDOW | // support window
PFD_SUPPORT_OPENGL | // support OpenGL
PFD_DOUBLEBUFFER, // double buffered
PFD_TYPE_RGBA, // RGBA type
24, // 24-bit color depth
0, 0, 0, 0, 0, 0, // color bits ignored
8, // no alpha buffer
0, // shift bit ignored
0, // no accumulation buffer
0, 0, 0, 0, // accum bits ignored
24, // 32-bit z-buffer
8, // no stencil buffer
0, // no auxiliary buffer
PFD_MAIN_PLANE, // main layer
0, // reserved
0, 0, 0 // layer masks ignored
};
// if these fail, wglCreateContext will also quietly fail
int format;
if ((format = ChoosePixelFormat(hdc, &pfd)) != 0)
{
if(SetPixelFormat(hdc, format, &pfd) == FALSE)
return 3;
}
// Create and set GL context
HGLRC hRC = wglCreateContext(hdc);
if(hRC == NULL)
return 4;
if(!wglMakeCurrent(hdc, hRC))
return 5;
// Show The Window
ShowWindow(hwnd,SW_SHOW);
SetFocus(hwnd);
// Initialize glew
GLenum err = glewInit();
if (GLEW_OK != err)
{
std::cout << "Error(" << err << "): " << glewGetErrorString(err) << std::endl;
return 6;
}
// Create and attach framebuffer
GLenum const fmt = GL_LUMINANCE8;
short const prob_size = 16;
GLuint fb, tid;
glGenFramebuffersEXT(1, &fb);
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fb);
// Create and attach texture
GLenum const target = GL_TEXTURE_2D;
glGenTextures(1, &tid);
glBindTexture(target, tid);
// Set some default parameters so it won't fail on NVidia cards
glTexParameteri(target, GL_TEXTURE_MAX_LEVEL, 0);
glTexParameteri(target, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(target, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(target, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(target, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
glTexImage2D(target, 0, fmt, prob_size, prob_size, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0);
glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, target, tid, 0); // <--Here--
// Check status
GLuint status = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT);
// Delete texture and framebuffer
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
glDeleteFramebuffersEXT(1, &fb);
glDeleteTextures(1, &tid); // <--Crash--
// clean up our dummy window and class
assert(DestroyWindow(hwnd) != 0);
UnregisterClass(dummyText, hinst);
return 0;
}
[/cpp]
Trigve
Link Copied
3 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
this problem is showstopper for me, if someone can look at it it would be great.
Thank you
Trigve
this problem is showstopper for me, if someone can look at it it would be great.
Thank you
Trigve
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - trigve
Hi,
I have problem with glFramebufferTexture2DEXT function with intel GMA4500MHD 7.15.10.1688 drivers (using vista 32 bit). I'm attaching sample project which demonstrate failure (exception):
If line 102 in the enum.cpp file
Here is the full listing:
Trigve
I have problem with glFramebufferTexture2DEXT function with intel GMA4500MHD 7.15.10.1688 drivers (using vista 32 bit). I'm attaching sample project which demonstrate failure (exception):
[cpp]First-chance exception at 0x10053930 in enum.exe: 0xC0000005: Access violation reading location 0xfeeeff86.The code throw exception in enum.cpp on line 109:
Unhandled exception at 0x10053930 in enum.exe: 0xC0000005: Access violation reading location 0xfeeeff86.[/cpp]
[cpp]glDeleteTextures(1, &tid); // <--Crash--[/cpp]
If line 102 in the enum.cpp file
[cpp]glTexImage2D(target, 0, fmt, prob_size, prob_size, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0);with comment "// <--Here--" is commented, no exception is thrown.
glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, target, tid, 0); // <--Here--[/cpp]
Here is the full listing:
[cpp]// enum.cpp : Defines the entry point for the console application.Thanks
//
#include "stdafx.h"
#include
#include
#include
#include "GL/glew.h"
#ifndef _WIN32_WINNT
# define _WIN32_WINNT 0x0501
#endif
LRESULT __stdcall dummyWndProc(HWND hwnd, UINT umsg, WPARAM wp, LPARAM lp)
{
return DefWindowProc(hwnd, umsg, wp, lp);
}
int main(int argc, char* argv[])
{
LPCSTR dummyText = "WglDummy";
HINSTANCE hinst = GetModuleHandle( NULL );
WNDCLASS dummyClass;
memset(&dummyClass, 0, sizeof(WNDCLASS));
dummyClass.style = CS_OWNDC;
dummyClass.hInstance = hinst;
dummyClass.lpfnWndProc = &dummyWndProc;
dummyClass.lpszClassName = dummyText;
ATOM a = RegisterClass(&dummyClass);
assert(a != NULL);
HWND hwnd = CreateWindow(dummyText, dummyText, WS_CLIPCHILDREN | WS_CLIPSIBLINGS, 0, 0, 32, 32, 0, 0, hinst, 0);
// if a simple CreateWindow fails, then boy are we in trouble...
if (hwnd == NULL)
return 1;
// no chance of failure and no need to release thanks to CS_OWNDC
HDC hdc = GetDC(hwnd);
if(hdc == NULL)
return 2;
// assign a simple OpenGL pixel format that everyone supports
PIXELFORMATDESCRIPTOR pfd = {
sizeof(PIXELFORMATDESCRIPTOR), // size of this pfd
1, // version number
PFD_DRAW_TO_WINDOW | // support window
PFD_SUPPORT_OPENGL | // support OpenGL
PFD_DOUBLEBUFFER, // double buffered
PFD_TYPE_RGBA, // RGBA type
24, // 24-bit color depth
0, 0, 0, 0, 0, 0, // color bits ignored
8, // no alpha buffer
0, // shift bit ignored
0, // no accumulation buffer
0, 0, 0, 0, // accum bits ignored
24, // 32-bit z-buffer
8, // no stencil buffer
0, // no auxiliary buffer
PFD_MAIN_PLANE, // main layer
0, // reserved
0, 0, 0 // layer masks ignored
};
// if these fail, wglCreateContext will also quietly fail
int format;
if ((format = ChoosePixelFormat(hdc, &pfd)) != 0)
{
if(SetPixelFormat(hdc, format, &pfd) == FALSE)
return 3;
}
// Create and set GL context
HGLRC hRC = wglCreateContext(hdc);
if(hRC == NULL)
return 4;
if(!wglMakeCurrent(hdc, hRC))
return 5;
// Show The Window
ShowWindow(hwnd,SW_SHOW);
SetFocus(hwnd);
// Initialize glew
GLenum err = glewInit();
if (GLEW_OK != err)
{
std::cout << "Error(" << err << "): " << glewGetErrorString(err) << std::endl;
return 6;
}
// Create and attach framebuffer
GLenum const fmt = GL_LUMINANCE8;
short const prob_size = 16;
GLuint fb, tid;
glGenFramebuffersEXT(1, &fb);
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, fb);
// Create and attach texture
GLenum const target = GL_TEXTURE_2D;
glGenTextures(1, &tid);
glBindTexture(target, tid);
// Set some default parameters so it won't fail on NVidia cards
glTexParameteri(target, GL_TEXTURE_MAX_LEVEL, 0);
glTexParameteri(target, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(target, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(target, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(target, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
glTexImage2D(target, 0, fmt, prob_size, prob_size, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0);
glFramebufferTexture2DEXT(GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, target, tid, 0); // <--Here--
// Check status
GLuint status = glCheckFramebufferStatusEXT(GL_FRAMEBUFFER_EXT);
// Delete texture and framebuffer
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
glDeleteFramebuffersEXT(1, &fb);
glDeleteTextures(1, &tid); // <--Crash--
// clean up our dummy window and class
assert(DestroyWindow(hwnd) != 0);
UnregisterClass(dummyText, hinst);
return 0;
}
[/cpp]
Trigve
I took your test case and entered a bug in our tracking system today, fyi.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
tried with the new drivers (7.15.10.1908) , with Vista SP2 installed and still without success. Can I somehow help to resolve this issue???
Thanks,
Trigve
tried with the new drivers (7.15.10.1908) , with Vista SP2 installed and still without success. Can I somehow help to resolve this issue???
Thanks,
Trigve

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page