Performer and VGXT
Last updated: October 30, 1999
of Performer that support VGXT
system and feature query for IrisGL and OpenGL
well does VGXT run under Performer?
What versions of Performer support VGXT?
The last version of performer that recognises (and thus optimizes) VGXT is version 2.0.4 (performer 2.0 plus patch 1347 and 1392) under Irix 6.2 and version 2.0.2 (performer 2.0 plus patch1414) under Irix 5.3. Later versions of performer (2.2 anyway) fail to identify VGXT (and assume InfiniteReality!) under both IrisGL and OpenGL.
Performer System and Feature Query for IrisGL and OpenGL
The following tables give some information on the capabilities of the VGXT graphics boardset under Performer 2.0 and are derived from the querysys and queryftr programs provided with the performer demo source in /usr/share/Performer/src/pguide/libpr.
GL TYPE: IRISGL GL TYPE: OPENGL NUM_CPUS: 1 NUM_CPUS: 1 NUM_SCREENS: 1 NUM_SCREENS: 1 SIZE_PIX_X: 1280 SIZE_PIX_X: 1280 SIZE_PIX_Y: 1024 SIZE_PIX_Y: 1024 MAX_SNG_RGB_BITS: 8 MAX_SNG_RGB_BITS: 8 MAX_SNG_ALPHA_BITS: 8 MAX_SNG_ALPHA_BITS: 0 MAX_DBL_RGB_BITS: 8 MAX_DBL_RGB_BITS: 8 MAX_DBL_ALPHA_BITS: 8 MAX_DBL_ALPHA_BITS: 0 MAX_DEPTH_BITS: 24 MAX_DEPTH_BITS: 24 MAX_STENCIL_BITS: 8 MAX_STENCIL_BITS: 8 MAX_MS_SAMPLES: 0 MAX_MS_SAMPLES: 0 MAX_MS_DEPTH_BITS: 24 MAX_MS_DEPTH_BITS: 0 MAX_MS_STENCIL_BITS: 8 MAX_MS_STENCIL_BITS: 0 TEXTURE_MEMORY_BYTES: -1 TEXTURE_MEMORY_BYTES: -1 MAX_TEXTURE_SIZE: -1 MAX_TEXTURE_SIZE: -1I'm not sure why the texture memory and size fields are set at -1, however the VGXT definitely supports 256k of texture memory with a largest tile of 256x256 RGBA with 8 bit components. (In actual fact each IE on the RM3 has 640kb of memory for textures. I assume that the remainder is used during texture operations and/or to store additional texture related information).
Here is the output from queryftr for both IrisGL and OpenGL. Clicking on the feature string in the IrisGL column will get you the relevant info about the feature string from the performer 2.0 pfQueryFeature man page. Note that N means the feature is not supported, Y means the feature is supported and FAST means that it is probably reasonable to use this feature in a real time simulation.
GL TYPE: IRISGL GL TYPE: OPENGL VSYNC = FAST VSYNC = N VSYNC_SET = FAST VSYNC_SET = N GANGDRAW = N GANGDRAW = N HYPERPIPE = N HYPERPIPE = N STEREO_IN_WINDOW = N STEREO_IN_WINDOW = N MULTISAMPLE = N MULTISAMPLE = N MULTISAMPLE_TRANSP = N MULTISAMPLE_TRANSP = N MULTISAMPLE_ROUND_POINTS = N MULTISAMPLE_ROUND_POINTS = N MULTISAMPLE_STENCIL = N MULTISAMPLE_STENCIL = N COLOR_ABGR = FAST COLOR_ABGR = FAST DISPLACE_POLYGON = N DISPLACE_POLYGON = FAST POLYMODE = FAST POLYMODE = FAST TRANSPARENCY = Y TRANSPARENCY = Y MTL_CMODE = FAST MTL_CMODE = FAST FOG_SPLINE = N FOG_SPLINE = N ALPHA_FUNC = FAST ALPHA_FUNC = FAST ALPHA_FUNC_COMPARE_REF = FAST ALPHA_FUNC_COMPARE_REF = FAST BLENDCOLOR = N BLENDCOLOR = FAST BLEND_FUNC_SUBTRACT = N BLEND_FUNC_SUBTRACT = FAST BLEND_FUNC_MINMAX = N BLEND_FUNC_MINMAX = FAST FRAMEZOOM = N FRAMEZOOM = N LMODEL_ATTENUATION = FAST LMODEL_ATTENUATION = N LIGHT_ATTENUATION = N LIGHT_ATTENUATION = FAST LIGHT_CLR_SPECULAR = N LIGHT_CLR_SPECULAR = FAST TEXTURE = FAST TEXTURE = FAST TEXTURE_16BIT_IFMTS = N TEXTURE_16BIT_IFMTS = FAST TEXTURE_SUBTEXTURE = N TEXTURE_SUBTEXTURE = FAST TEXTURE_TRILINEAR = N TEXTURE_TRILINEAR = N TEXTURE_DETAIL = N TEXTURE_DETAIL = N TEXTURE_SHARPEN = N TEXTURE_SHARPEN = N TEXTURE_3D = N TEXTURE_3D = FAST TEXTURE_PROJECTIVE = N TEXTURE_PROJECTIVE = FAST TEXTURE_EDGE_CLAMP = N TEXTURE_EDGE_CLAMP = N TEXTURE_CLIPMAP = N TEXTURE_CLIPMAP = N READ_MSDEPTH_BUFFER = N READ_MSDEPTH_BUFFER = N COPY_MSDEPTH_BUFFER = N COPY_MSDEPTH_BUFFER = N READ_TEXTURE_MEMORY = N READ_TEXTURE_MEMORY = N COPY_TEXTURE_MEMORY = N COPY_TEXTURE_MEMORY = NWhat amazes me (if this info is really correct) is that VGXT appears to support a lot more features under OpenGL than it did under IrisGL! Unfortunately a search through previous messages in the comp.sys.sgi.* hierarchy shows that the OpenGL port to VGXT implements textures in software and is very, very slow. (I suspect the queryftr program is lying through its teeth when it states that texture support is FAST!). Anyway here is the glxinfo information for VGXT as well:
display: :0.0 server glx vendor string: SGI server glx version string: 1.1 Irix 6.2 server glx extensions (GLX_): EXT_import_context, EXT_visual_info, EXT_visual_rating, SGI_make_current_read, SGI_swap_control, SGI_video_sync, SGIS_multisample, SGIX_fbconfig, SGIX_pbuffer, SGIX_video_resize, SGIX_video_source. client glx version 1.1 client glx extensions (GLX_): EXT_import_context, EXT_visual_info, EXT_visual_rating, SGI_make_current_read, SGI_swap_control, SGI_video_sync, SGIS_multisample, SGIX_fbconfig, SGIX_pbuffer, SGIX_video_resize, SGIX_video_source. OpenGL vendor string: SGI OpenGL renderer string: VGXT/10 OpenGL version string: 1.0 Irix 6.2 OpenGL extensions (GL_): EXT_abgr, EXT_blend_color, EXT_blend_logic_op, EXT_blend_minmax, EXT_blend_subtract, EXT_convolution, EXT_copy_texture, EXT_histogram, EXT_packed_pixels, EXT_polygon_offset, EXT_subtexture, EXT_texture, EXT_texture3D, EXT_texture_object, EXT_vertex_array, SGI_color_matrix, SGI_color_table, SGI_texture_color_table, SGIX_texture_scale_bias. visual x bf lv rg d st r g b a ax dp st accum buffs ms id dep cl sp sz l ci b ro sz sz sz sz bf th cl r g b a ns b ----------------------------------------------------------------- 0x20 8 pc . 8 . c . . . . . . . 24 8 . . . . . . 0x2a 12 pc . 12 . c . . . . . . . 24 8 . . . . . . 0x2b 12 pc . 12 . c y . . . . . . 24 8 . . . . . . 0x31 24 tc . 24 . r . . 8 8 8 . . 24 8 16 16 16 16 . . 0x32 24 tc . 24 . r y . 8 8 8 . . 24 8 16 16 16 16 . .
How well does Performer run on VGXT?
Unfortunately the usual performer town and village demos do not run at all well on VGXT - however this is not a function of the geometry/imaging speed of the VGXT boardset. The real reason is that performer is bogged down in the draw process with texture paging. The town demo has approx. 6Mb of textures and these have to be swapped in and out of the VGXT 256k TRAM in order to render the scene. This is why varying the LOD range, window size and other settings doesnt improve the frame rate from its misery level of < 1 frame/sec. It is also why gr_osview shows a huge kernel and syscall load on the CPU - indeed the high priority performer processes get so busy that the system bogs down! It's also unfortunate that performer 2.0.4 perfly gfx stats do not show this texture download activity! Perhaps this is related to the mysterious -1 values returned for texture memory and largest texture tile size by querysys above.
Switching perfly from IrisGL to OpenGL and restarting the town demo seems to bear out the software texture implementation rumour for OpenGL on VGXT. Basically textures disappear completely and the frame rate is even worse than before (indeed you cannot even get a number because it seems that the stats arent even collectable from VGXT under OpenGL)
A real performer demo for VGXT will probably have to follow skyfly
(ie. just 2-3 small textures) because VGXT has such a small TRAM and (to
a lesser extent) lacks the fast_define/subtexture capability in IrisGL.
If time permits I may try to reduce the resolution of the performer town
demo textures in order to give VGXT a half decent demo (other than