Closed GoogleCodeExporter closed 8 years ago
The UniChrome chipset uses the combiner class for OGL 1.2/1.3
Original comment by richard...@gmail.com
on 29 Mar 2008 at 6:26
While trying to get OSD to work, I inadvertently made some progress on this
issue. I
found that using rice video in my OSD branch, I could see mario's head in the
SM64
intro instead of just the all white screen. I tried with trunk and got the white
screen, so doing some trial and error with tkdiff, I was able to narrow it down
to
this function in OGLRender.cpp:
void OGLRender::ApplyScissorWithClipRatio(bool force)
{
if( !force && status.curScissor == RSP_SCISSOR ) return;
glEnable(GL_SCISSOR_TEST);
glScissor(windowSetting.clipping.left,
int((windowSetting.uViHeight-gRSP.real_clip_scissor_bottom)*windowSetting.fMultY
)+windowSetting.statusBarHeightToUse,
windowSetting.clipping.width, windowSetting.clipping.height);
status.curScissor = RSP_SCISSOR;
}
If I literally comment out all code within this function, I can see mario's
head and
some rendering during gameplay (see attached screenshots). In addition to that,
windowed mode has never worked for me using rice or glN64. Only a rectangle in
the
upper left part of the screen would render. After reading the description of
glScissor, I know why. In both glN64 and rice, I commented out all
glEnable(GL_SCISSOR_TEST) lines and windowed mode works on my system! With rice,
commenting out all instances of enabling GL_SCISSOR_TEST does not make the
output
look any different than just commenting out the one occurrence of it in the
function
I pasted above. With glN64, windowed mode works, but in SM64, when viewing a
sign for
example, the text is not restricted to the message box as it scrolls. You can
see it
below the box. So I'm guessing that the problem here is that the wrong params
are
being passed to glScissor on my system, both in glN64 and rice.
I'm cc'ing Richard42 and Tillin9 since they seem to know the most about graphics
programming. What are your thoughts on this? Thanks.
Original comment by ebenbl...@gmail.com
on 30 Apr 2008 at 5:42
forgot to attach the screenshots:
super_mario_64-009 - I always see this much of the logo with rice, whether the
glScissor calls are applied or not.
super_mario_64-002 - With scissor calls disabled, I can see Mario's head.
super_mario_64-003 - The garbage in front of mario's face are the two stars
that spin
around him in the intro (scissor calls disabled).
super_mario_64-000 - This is what rendering during gameplay looks like with
scissor
calls disabled.
Original comment by ebenbl...@gmail.com
on 30 Apr 2008 at 5:57
Attachments:
Hm... it could be that GL_SCISSOR_TEST, or some related ability is not properly
supported on UniChrome. This should be OpenGL 1.1 stuff, but the driver could
be
incomplete or extra picky about semantics.
Sadly, my previous widescreen work attempted to redefine and/ or remove the use
of
scissors in Rice caused many regressions. Its possible that continuation on
this
work would solve your problem.
Just a note from those screenshots that everything using textures is white.
However, anything using flat or Gouraud Shading displays properly. This to me
just
screams an issue with the texture code, specifically the combiner.
So, what Combiner are you using? and what OpenGL version does glxinfo say is
supported? Forgive me if these seem like silly questions. With earlier drivers,
my
Radeon displayed similar output in some games (Link and Eponia had no textures
but
were white in OOT) when attempting to use a higher level combiner than the
driver
could support.
Original comment by sknau...@wesleyan.edu
on 30 Apr 2008 at 7:26
Here's my glxinfo output:
name of display: :0.0
display: :0 screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.2
server glx extensions:
GLX_ARB_multisample, GLX_EXT_import_context, GLX_EXT_texture_from_pixmap,
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_OML_swap_method,
GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGIS_multisample,
GLX_SGIX_fbconfig, GLX_SGIX_visual_select_group
client glx vendor string: SGI
client glx version string: 1.4
client glx extensions:
GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_allocate_memory,
GLX_MESA_copy_sub_buffer, GLX_MESA_swap_control,
GLX_MESA_swap_frame_usage, GLX_OML_swap_method, GLX_OML_sync_control,
GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGI_video_sync,
GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
GLX_SGIX_visual_select_group, GLX_EXT_texture_from_pixmap
GLX version: 1.2
GLX extensions:
GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_swap_control,
GLX_MESA_swap_frame_usage, GLX_OML_swap_method, GLX_SGI_make_current_read,
GLX_SGI_swap_control, GLX_SGI_video_sync, GLX_SGIS_multisample,
GLX_SGIX_fbconfig, GLX_SGIX_visual_select_group
OpenGL vendor string: VIA Technology
OpenGL renderer string: Mesa DRI UniChrome 20060710 x86/MMX/SSE2
OpenGL version string: 1.2 Mesa 7.0.2
OpenGL extensions:
GL_ARB_imaging, GL_ARB_multisample, GL_ARB_multitexture,
GL_ARB_point_parameters, GL_ARB_texture_env_add,
GL_ARB_texture_env_combine, GL_ARB_texture_mirrored_repeat,
GL_ARB_transpose_matrix, GL_ARB_vertex_buffer_object, GL_ARB_window_pos,
GL_EXT_abgr, GL_EXT_bgra, GL_EXT_blend_color, GL_EXT_blend_minmax,
GL_EXT_blend_subtract, GL_EXT_clip_volume_hint,
GL_EXT_compiled_vertex_array, GL_EXT_convolution, GL_EXT_copy_texture,
GL_EXT_draw_range_elements, GL_EXT_fog_coord, GL_EXT_histogram,
GL_EXT_packed_pixels, GL_EXT_point_parameters, GL_EXT_polygon_offset,
GL_EXT_rescale_normal, GL_EXT_secondary_color,
GL_EXT_separate_specular_color, GL_EXT_stencil_wrap, GL_EXT_subtexture,
GL_EXT_texture, GL_EXT_texture3D, GL_EXT_texture_edge_clamp,
GL_EXT_texture_env_add, GL_EXT_texture_env_combine,
GL_EXT_texture_lod_bias, GL_EXT_texture_object, GL_EXT_vertex_array,
GL_APPLE_packed_pixels, GL_IBM_rasterpos_clip,
GL_IBM_texture_mirrored_repeat, GL_MESA_window_pos, GL_NV_blend_square,
GL_NV_light_max_exponent, GL_NV_texgen_reflection, GL_OES_read_format,
GL_SGI_color_matrix, GL_SGI_color_table, GL_SGIS_texture_edge_clamp,
GL_SGIS_texture_lod
visual x bf lv rg d st colorbuffer ax dp st accumbuffer ms cav
id dep cl sp sz l ci b ro r g b a bf th cl r g b a ns b eat
----------------------------------------------------------------------
0x22 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
0x23 24 tc 0 32 0 r . . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
0x24 24 tc 0 32 0 r y . 8 8 8 8 0 16 0 0 0 0 0 0 0 None
0x25 24 tc 0 32 0 r . . 8 8 8 8 0 16 0 0 0 0 0 0 0 None
0x26 24 tc 0 32 0 r y . 8 8 8 8 0 0 0 0 0 0 0 0 0 None
0x27 24 tc 0 32 0 r . . 8 8 8 8 0 0 0 0 0 0 0 0 0 None
0x28 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 16 16 16 16 0 0 Slow
0x29 24 tc 0 32 0 r . . 8 8 8 8 0 24 8 16 16 16 16 0 0 Slow
0x2a 24 tc 0 32 0 r y . 8 8 8 8 0 16 0 16 16 16 16 0 0 Slow
0x2b 24 tc 0 32 0 r . . 8 8 8 8 0 16 0 16 16 16 16 0 0 Slow
0x2c 24 tc 0 32 0 r y . 8 8 8 8 0 0 0 16 16 16 16 0 0 Slow
0x2d 24 tc 0 32 0 r . . 8 8 8 8 0 0 0 16 16 16 16 0 0 Slow
0x47 32 tc 0 32 0 r . . 8 8 8 8 0 0 0 0 0 0 0 0 0 Ncon
Original comment by ebenbl...@gmail.com
on 30 Apr 2008 at 7:36
Original comment by ebenbl...@gmail.com
on 1 May 2008 at 12:50
Original comment by richard...@gmail.com
on 8 Jan 2010 at 5:06
Original issue reported on code.google.com by
ebenbl...@gmail.com
on 24 Mar 2008 at 4:06