From: Stefan P. <sp...@sy...> - 2010-01-26 14:34:23
|
Hi all, Im currently developing a prototype as described here: http://www.systemdatarecorder.org/cpuplayer/ using OpenGL. Im basically working on Solaris x64 + Nvidia and Ubuntu x64 + Mesa as main platforms. Im trying to understand why my code does not execute similar regarding Anti-aliasing, as described under: http://systemdatarecorder.org:9009/bugzilla/show_bug.cgi?id=42 Check the Solaris 11 and Ubuntu screenshots attached. On my Ubuntu laptop Im using: direct rendering: Yes OpenGL renderer string: Mesa DRI Mobile Intel GM45 Express Chipset GEM 20090712 2009Q2 RC3 This is a Ubuntu 9.10 x64 using Intel GMA 4500 MHD, running Mesa 7.6.0-1. Any ideas, is this a problem with Mesa OpenGL implementation, is this a Intel driver bug or ... !? Many thanks, Stefan |
From: Brian P. <br...@vm...> - 2010-01-26 16:15:04
|
Stefan Parvu wrote: > Hi all, > > Im currently developing a prototype as described here: > http://www.systemdatarecorder.org/cpuplayer/ using OpenGL. > Im basically working on Solaris x64 + Nvidia and Ubuntu > x64 + Mesa as main platforms. > > Im trying to understand why my code does not execute similar > regarding Anti-aliasing, as described under: > http://systemdatarecorder.org:9009/bugzilla/show_bug.cgi?id=42 > > Check the Solaris 11 and Ubuntu screenshots attached. I don't see any attachments. > On my Ubuntu laptop Im using: > direct rendering: Yes > OpenGL renderer string: Mesa DRI Mobile Intel GM45 Express Chipset GEM > 20090712 2009Q2 RC3 > > This is a Ubuntu 9.10 x64 using Intel GMA 4500 MHD, running Mesa 7.6.0-1. > > Any ideas, is this a problem with Mesa OpenGL implementation, is this > a Intel driver bug or ... !? Are you talking about line antialiasing? I think the 4500 has some limitations w.r.t. antialiased lines. You might try settting the INTEL_STRICT_CONFORMANCE env var to 1 and see what happens. This will turn on software-drawn AA lines. Performance will be poor, however. -Brian |
From: Stefan P. <sp...@sy...> - 2010-01-26 17:21:50
|
Hi, > I don't see any attachments. Probable hidden a bit inside bugzilla. Here you go: Ubuntu intel gma4500: http://systemdatarecorder.org:9009/bugzilla/attachment.cgi?id=1 Solaris nvidia: http://systemdatarecorder.org:9009/bugzilla/attachment.cgi?id=2 > Are you talking about line antialiasing? yep. Im just plotting the Barry coordinates using a simple sequence like: /* Enable Anti-aliasing and width of axis */ glEnable(GL_LINE_SMOOTH); glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); /* glHint(GL_LINE_SMOOTH_HINT, GL_DONT_CARE); */ glHint(GL_LINE_SMOOTH_HINT, GL_NICEST); glLineWidth(0.5); glBegin(GL_LINES); /* draw axis */ /* Usr Red */ glColor3f (1.0f, 0.0f, 0.0f); glVertex2f(b3Vertex[1][0], b3Vertex[1][1]); glVertex2f(op_usr.x, op_usr.y); ... glEnd(); > I think the 4500 has some limitations w.r.t. antialiased lines. You might > try settting the INTEL_STRICT_CONFORMANCE env var to 1 and see what happens. > This will turn on software-drawn AA lines. Performance will be poor, > however. thanks. I will try this. I will report back the results. stefan [1] http://www.systemdatarecorder.org/cpuplayer/src/cpuplayer.c |
From: Brian P. <br...@vm...> - 2010-01-26 17:30:59
|
Stefan Parvu wrote: > Hi, > >> I don't see any attachments. > > Probable hidden a bit inside bugzilla. > > Here you go: > > Ubuntu intel gma4500: > http://systemdatarecorder.org:9009/bugzilla/attachment.cgi?id=1 > > Solaris nvidia: > http://systemdatarecorder.org:9009/bugzilla/attachment.cgi?id=2 > >> Are you talking about line antialiasing? > > yep. Im just plotting the Barry coordinates using a simple sequence > like: > > /* Enable Anti-aliasing and width of axis */ > glEnable(GL_LINE_SMOOTH); > glEnable(GL_BLEND); > glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); > /* glHint(GL_LINE_SMOOTH_HINT, GL_DONT_CARE); */ > glHint(GL_LINE_SMOOTH_HINT, GL_NICEST); > glLineWidth(0.5); > > > glBegin(GL_LINES); > > /* draw axis */ > /* Usr Red */ > glColor3f (1.0f, 0.0f, 0.0f); > glVertex2f(b3Vertex[1][0], b3Vertex[1][1]); > glVertex2f(op_usr.x, op_usr.y); > > ... > > glEnd(); > >> I think the 4500 has some limitations w.r.t. antialiased lines. You might >> try settting the INTEL_STRICT_CONFORMANCE env var to 1 and see what happens. >> This will turn on software-drawn AA lines. Performance will be poor, >> however. > > thanks. I will try this. I will report back the results. Just be aware that the quality of AA lines from one GPU/driver to another can vary a lot. I think NVIDIA may have higher quality AA lines than other GPUs. -Brian |
From: Stefan P. <sp...@sy...> - 2010-01-26 18:07:08
|
> > Just be aware that the quality of AA lines from one GPU/driver to another can > vary a lot. I think NVIDIA may have higher quality AA lines than other GPUs. setting INTEL_STRICT_CONFORMANCE did not bring any difference. Probable this is a driver issue. The difference is big: on Intel Im not even capable of seeing all coordinates properly set: http://systemdatarecorder.org:9009/bugzilla/attachment.cgi?id=1 (missing the red axis) If I resize the window then I get properly the coordinates set and all lines displayed :) On Nvidia the quality of AA lines is higher and the lines are properly set from start. Probable not much I can do. I will try to test on a different machine, using ATI and Solairs or Linux to see the difference. Thanks, Stefan |
From: Stefan P. <sp...@sy...> - 2010-01-26 19:40:33
|
Hi Brian, Probable this would make things clear: Nvidia: OpenGL vendor string: NVIDIA Corporation OpenGL renderer string: Quadro FX 1500/PCI/SSE2 OpenGL version string: 2.1.2 NVIDIA 190.53 GL_LINE_WIDTH_GRANULARITY = 0.1 GL_LINE_WIDTH_RANGE = 0.5 10.0 Intel: OpenGL vendor string: Tungsten Graphics, Inc OpenGL renderer string: Mesa DRI Mobile Intel GM45 Express Chipset GEM 20090712 2009Q2 RC3 OpenGL version string: 2.1 Mesa 7.6 GL_LINE_WIDTH_GRANULARITY = 0.5 GL_LINE_WIDTH_RANGE = 1.0 5.0 As you said with NVIDIA I have much higher degree and better quality. So this looks specific to each OpenGL implementation. Question is why in Mesa we have GL_LINE_WIDTH_GRANULARITY = 0.5 instead of 0.1 like in NVIDIA case ? Is it direct dependant of the GPU, or the driver ... !? Many thanks, Stefan |
From: Brian P. <br...@vm...> - 2010-01-26 20:03:39
|
Stefan Parvu wrote: > Hi Brian, > > Probable this would make things clear: > > Nvidia: > OpenGL vendor string: NVIDIA Corporation > OpenGL renderer string: Quadro FX 1500/PCI/SSE2 > OpenGL version string: 2.1.2 NVIDIA 190.53 > > GL_LINE_WIDTH_GRANULARITY = 0.1 > GL_LINE_WIDTH_RANGE = 0.5 10.0 > > > Intel: > OpenGL vendor string: Tungsten Graphics, Inc > OpenGL renderer string: Mesa DRI Mobile Intel GM45 Express Chipset > GEM 20090712 2009Q2 RC3 > OpenGL version string: 2.1 Mesa 7.6 > GL_LINE_WIDTH_GRANULARITY = 0.5 > GL_LINE_WIDTH_RANGE = 1.0 5.0 > > As you said with NVIDIA I have much higher degree and better quality. > So this looks specific to each OpenGL implementation. Question is why in > Mesa we have GL_LINE_WIDTH_GRANULARITY = 0.5 instead of 0.1 like in NVIDIA > case ? Is it direct dependant of the GPU, or the driver ... !? The Intel i965 line width register only has one fractional bit. -Brian |
From: Stefan P. <sp...@sy...> - 2010-01-26 20:01:44
|
> The Intel i965 line width register only has one fractional bit. aha. Clear enough. Makes sense. stefan |