Operating System - OpenVMS
cancel
Showing results for 
Search instead for 
Did you mean: 

questions over Open3D Radeon 7500 on OpenVMS

 
SOLVED
Go to solution
Alex Chupahin
Super Advisor

questions over Open3D Radeon 7500 on OpenVMS

Hello dear all,
I'm in futher porting Simple Media Layer for OpenGL support, and wish to ask (and speaking) about strange behavour of OpenVMS OpenGL driver.
Yes, I know about rare usage, poor testing, etc, etc. But...
I have:
DS10L, Radeon 7500
OpenVMS 8.3
X11 with 1024x768 24depth, 1280x1024 24depth.

famous glxgears shows me perfomance, looks like in Linux - good. But it seems it is one and only one demo without artefacts.
Please look next simple code:
#include
void renderScene(void) {
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glBegin(GL_TRIANGLES);
glVertex3f(-0.5,-0.5,0.0);
glVertex3f(0.5,0.0,0.0);
glVertex3f(0.0,0.5,0.0);
glEnd();
glFlush();
}

void main(int argc, char **argv) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA);
glutInitWindowPosition(100,100);
glutInitWindowSize(320,320);
glutCreateWindow("3D Tech- GLUT Tutorial");
glutDisplayFunc(renderScene);
glutMainLoop();
}

And please look and compare a huge triangulum in OpenVMS.
23 REPLIES 23
Alex Chupahin
Super Advisor

Re: questions over Open3D Radeon 7500 on OpenVMS

And please see how it should be look in attachment.

information about compilation things:

$DEF GL SYS$COMMON:[DECW$INCLUDE.GL_1_2]
$TYPE OPENGL.OPT
sys$share:decw$openglushr.exe/share
sys$share:DECW$OPENGLUTSHR.EXE/share
sys$share:DECW$MESA3DSHR_RADEON/share
sys$share:decw$xlibshr/share

(case non sensitive)
Alex Chupahin
Super Advisor

Re: questions over Open3D Radeon 7500 on OpenVMS

Next,
please look to the screenshot of the corrupted moving bounce
provided by the code:

#include
#include
#include

#define COS(X) cos( (X) * 3.14159/180.0 )
#define SIN(X) sin( (X) * 3.14159/180.0 )

#define RED 1
#define WHITE 2
#define CYAN 3

GLuint Ball;
GLenum Mode;
GLfloat Zrot = 0.0, Zstep = 6.0;
GLfloat Xpos = 0.0, Ypos = 1.0;
GLfloat Xvel = 0.2, Yvel = 0.0;
GLfloat Xmin = -4.0, Xmax = 4.0;
GLfloat Ymin = -3.8, Ymax = 4.0;
GLfloat G = -0.1;

static GLuint
make_ball(void)
{
GLuint list;
GLfloat a, b;
GLfloat da = 18.0, db = 18.0;
GLfloat radius = 1.0;
GLuint color;
GLfloat x, y, z;

list = glGenLists(1);

glNewList(list, GL_COMPILE);

color = 0;
for (a = -90.0; a + da <= 90.0; a += da) {

glBegin(GL_QUAD_STRIP);
for (b = 0.0; b <= 360.0; b += db) {

if (color) {
glIndexi(RED);
} else {
glIndexi(WHITE);
}

x = COS(b) * COS(a);
y = SIN(b) * COS(a);
z = SIN(a);
glVertex3f(x, y, z);

x = radius * COS(b) * COS(a + da);
y = radius * SIN(b) * COS(a + da);
z = radius * SIN(a + da);
glVertex3f(x, y, z);

color = 1 - color;
}
glEnd();

}

glEndList();

return list;
}

static void
reshape(int width, int height)
{
glViewport(0, 0, (GLint) width, (GLint) height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-6.0, 6.0, -6.0, 6.0, -6.0, 6.0);
glMatrixMode(GL_MODELVIEW);
}

/* ARGSUSED1 */
static void
key(unsigned char k, int x, int y)
{
switch (k) {
case 27: /* Escape */
exit(0);
}
}

static void
draw(void)
{
GLint i;

glClear(GL_COLOR_BUFFER_BIT);

glIndexi(CYAN);
glBegin(GL_LINES);
for (i = -5; i <= 5; i++) {
glVertex2i(i, -5);
glVertex2i(i, 5);
}
for (i = -5; i <= 5; i++) {
glVertex2i(-5, i);
glVertex2i(5, i);
}
for (i = -5; i <= 5; i++) {
glVertex2i(i, -5);
glVertex2f(i * 1.15, -5.9);
}
glVertex2f(-5.3, -5.35);
glVertex2f(5.3, -5.35);
glVertex2f(-5.75, -5.9);
glVertex2f(5.75, -5.9);
glEnd();

glPushMatrix();
glTranslatef(Xpos, Ypos, 0.0);
glScalef(2.0, 2.0, 2.0);
glRotatef(8.0, 0.0, 0.0, 1.0);
glRotatef(90.0, 1.0, 0.0, 0.0);
glRotatef(Zrot, 0.0, 0.0, 1.0);

glCallList(Ball);

glPopMatrix();

glFlush();
glutSwapBuffers();
}

static void
idle(void)
{
static float vel0 = -100.0;

Zrot += Zstep;

Xpos += Xvel;
if (Xpos >= Xmax) {
Xpos = Xmax;
Xvel = -Xvel;
Zstep = -Zstep;
}
if (Xpos <= Xmin) {
Xpos = Xmin;
Xvel = -Xvel;
Zstep = -Zstep;
}
Ypos += Yvel;
Yvel += G;
if (Ypos < Ymin) {
Ypos = Ymin;
if (vel0 == -100.0)
vel0 = fabs(Yvel);
Yvel = vel0;
}
glutPostRedisplay();
}

void
visible(int vis)
{
if (vis == GLUT_VISIBLE)
glutIdleFunc(idle);
else
glutIdleFunc(NULL);
}

main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA|/*GLUT_INDEX|*/ GLUT_SINGLE);

glutCreateWindow("Bounce");
Ball = make_ball();
glCullFace(GL_BACK);
glEnable(GL_CULL_FACE);
glDisable(GL_DITHER);
glShadeModel(GL_FLAT);

glutDisplayFunc(draw);
glutReshapeFunc(reshape);
glutVisibilityFunc(visible);
glutKeyboardFunc(key);

glutSetColor(RED, 1.0, 0.0, 0.0);
glutSetColor(WHITE, 1.0, 1.0, 1.0);
glutSetColor(CYAN, 0.0, 1.0, 1.0);

glutMainLoop();
return 0; /* ANSI C requires main to return int. */
}
Alex Chupahin
Super Advisor

Re: questions over Open3D Radeon 7500 on OpenVMS

And this is a screenshot of the good bounce:

Alex Chupahin
Super Advisor

Re: questions over Open3D Radeon 7500 on OpenVMS

And for the end I attach GLDoom game screenshot I've ported to OpenVMS.
I do not understand this.


Please, any suggestions, ideas to help
are welcome.
Rick Retterer
Respected Contributor

Re: questions over Open3D Radeon 7500 on OpenVMS

Do you have the latest OpenVMS patches installed on your system, including the latest Graphics Display Driver patches, which includes several fixes to the GL libraries? The current version of the UPDATE patch kit includes the Decwindows Driver updates.

Also understand that Open3D in 3D mode, doesn't support backingstore and saveunders so you must account for that in your applications.

Have you tuned your Decwindows Display Server for optimal performance for usage with a GL graphics Intensive application?

Finally, if after doing some or all of these things, and you still have graphics corruption, I highly recommend that you log a software support case with the Support Center with the OpenVMS team. Provide them with the example programs that demonstrate the drawing corruption and see what they can do for you.

It would also be helpful if you provided them with the build procedure that you are using to compile/link your example programs.

Cheers,
Rick


- Rick Retterer



Steven Schweda
Honored Contributor

Re: questions over Open3D Radeon 7500 on OpenVMS

I know nothing about OpenGL, but I get better
(more like your example) results on my system
when I use CC /FLOAT = IEEE_FLOAT.


> sys$share:decw$openglushr.exe/share

%LINK-F-OPENIN, error opening SYS$COMMON:[SYSLIB]DECW$OPENGLUSHR.EXE; as input
-RMS-E-FNF, file not found

Apparently it's not needed. I removed it
from the linker options file, and everyone
was happy.

(I do seem to have DECW$OPENGLUSHR_V11.EXE,
but I assume that we wouldn't want to be
usiong that one.)

> I do not understand this.

Which "this" is this "this"?


> I have:
> [...]

Around here:

XP1000 (500MHz), ATI Radeon 7500 (PCI)
VMS V8.3

xdpyinfo says:
[...]
version number: 11.0
vendor string: DECWINDOWS Hewlett-Packard Development Company OpenVMS
[...]
screen #0:
dimensions: 1280x1024 pixels (325x260 millimeters)
resolution: 100x100 dots per inch
depths (1): 24
root window id: 0x2e
depth of root window: 24 planes
[...]

One advantage (property?) of IA64 is that
IEEE floating=point tends to be the default
there.
Steven Schweda
Honored Contributor
Solution

Re: questions over Open3D Radeon 7500 on OpenVMS

Xv window grab (1) attachment.
Steven Schweda
Honored Contributor

Re: questions over Open3D Radeon 7500 on OpenVMS

Xv window grab (2) attachment.
Alex Chupahin
Super Advisor

Re: questions over Open3D Radeon 7500 on OpenVMS

Thank you Steven,
/FLOAT=IEEE /IEEE=DENORM

it seems I totally forget this simple wisdom words when I work on alpha...
Demos now works fine, including ones from libSDL. And GLDOOM work nice also!

Ufff, now I should rewrite build procedures
for all libSDL library set and republic it. But this is another story :)
Alex Chupahin
Super Advisor

Re: questions over Open3D Radeon 7500 on OpenVMS

A last little question for Steven

Have you see total black screen from time to time when running OpenGL tests (bounce for example)?
I see black screen during over 3-4 sec every time ~ 1 min
Steven Schweda
Honored Contributor

Re: questions over Open3D Radeon 7500 on OpenVMS

> Have you see total black screen from time
> to time when running OpenGL tests (bounce
> for example)?

I didn't notice anything like that, I get
these warnings:

GLUT: Warning in alp$dka0:[sms.itrc]gl2.exe;2: glutSetColor: current window is RGBA
GLUT: Warning in alp$dka0:[sms.itrc]gl2.exe;2: glutSetColor: current window is RGBA
GLUT: Warning in alp$dka0:[sms.itrc]gl2.exe;2: glutSetColor: current window is RGBA

and the disc moves too fast to look good
until I kill the program, but I haven't seen
any all-black time. Knowing nothing, I'd
guess that your system is busy doing
something else what that happens. Have you
tried a higher process priority? (Or more
memory (for your process or the system)?)
Richard Jordan
Regular Advisor

Re: questions over Open3D Radeon 7500 on OpenVMS

> DS10L, Radeon 7500

This implies IDE mass storage on the box. That can get pretty CPU bound during disk I/O and cause visible slowdowns. That's a big reason I keep looking for a free/cheap DS10/DS15 to update one of my DS10L units; the tradeoff between graphics and a fast SCSI adapter given the single PCI slot.
Steven Schweda
Honored Contributor

Re: questions over Open3D Radeon 7500 on OpenVMS

> > DS10L, Radeon 7500
>
> This implies IDE mass storage on the box.
> [...]

Ooh. Good point. I use an IDE DVD-writer in
an XP1000, and that eats most of the CPU when
it's working. I can easily imagine a page
fault (or almost anything else) on an IDE
disk stopping things for a while.

I almost bought a DS10L at a local junk store
some years ago. The price was tempting, but
that one PCI slot was just too big a
limitation.

> [...] I keep looking for a free/cheap
> DS10/DS15 [...]

Or a DS20E/25. I figure that I'll be stuck
with XP1000 systems until approximately the
end of the world (21 May 2011?) or until the
last power supply dies, whichever comes
first.

Still no audio support on IA64? I might
switch to my zx2000 if it could do everything
an XP1000 can do.
Alex Chupahin
Super Advisor

Re: questions over Open3D Radeon 7500 on OpenVMS

Another interesing question -
it would be good to have XV extension (Xvideo, not the famous Bradley's product).
Would be nice to add support to the X11 server, but I cant see any sources of the OpenVMS X11 server (totally proprietary or XFree86 based? Some words provided by xdpyinfo like DRI-XF86 touch me to think)
Alex Chupahin
Super Advisor

Re: questions over Open3D Radeon 7500 on OpenVMS

And friends, did you hear anybody about plans to support PCI sound for I64?
Ian Miller.
Honored Contributor

Re: questions over Open3D Radeon 7500 on OpenVMS

there is some support for sound in OpenVMS I64 V8.4
____________________
Purely Personal Opinion
Bhadresh
Trusted Contributor

Re: questions over Open3D Radeon 7500 on OpenVMS

>>> did you hear anybody about plans to support PCI sound for I64?

OpenVMS V8.4 has limited support for HP AD317A PCI sound card on Integrity servers. Have a look at following link:
http://h71000.www7.hp.com/doc/84final/6679/6679pro_002.html#io_support

Regards,
Bhadresh
Steven Schweda
Honored Contributor

Re: questions over Open3D Radeon 7500 on OpenVMS

> [...] limited support for HP AD317A PCI
> sound card [...]

I assume that a genuine HP AD317A costs more
than $5. Does anyone know what this card (or
the chip on tis card) is? (What's in
SYS$CONFIG.DAT?)

What does "limited support" mean here? MMOV
or not?
Ian Miller.
Honored Contributor

Re: questions over Open3D Radeon 7500 on OpenVMS

The sound support does not include multimedia support just beeps.
____________________
Purely Personal Opinion
Steven Schweda
Honored Contributor

Re: questions over Open3D Radeon 7500 on OpenVMS

> [...] just beeps.

That's certainly "limited".
Ian Miller.
Honored Contributor

Re: questions over Open3D Radeon 7500 on OpenVMS

I note the driver is not documented either
____________________
Purely Personal Opinion
Alex Chupahin
Super Advisor

Re: questions over Open3D Radeon 7500 on OpenVMS

> The sound support does not include multimedia support just beeps.

May be some day MMOV will be ported to I64...
Marco Gariboldi
Frequent Advisor

Re: questions over Open3D Radeon 7500 on OpenVMS

Excellent thread, very useful information. I have recently gotten my hands on a functioning Radeon 7500 and would like to try out OpenGL a bit. I consider this a good starting point.

As for audio, that would be great and I'd very much welcome it! It's obviously not essential, but it would make the OpenVMS user experience even more wholesome and complete. Until that time, I'm going to investigate whether writing a driver for one of those USB audio 'widgets' would be feasible.