samoey17 / mupen64plus

Automatically exported from code.google.com/p/mupen64plus
0 stars 0 forks source link

White screen with RiceVideo on VIA UniChrome Pro #19

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
Describe your system:
 - Linux distribution: Slackware 12.0
 - Machine type: 32-bit
 - Mupen64Plus version: svn
 - Plugins used: ricevideo, mupen64_audio, blight_input, hacktarux RSP

For visual artifacts, give:
 - Super Mario 64, CRC: 635a2bff 8b022326, md5
code:20B854B239203BAF6C961B850A4A51A2
 - After initial Super Mario 64 logo screen, screen goes completely white.
It appears things are rendering "behind" the white screen, but the game is
unplayable.

Original issue reported on code.google.com by ebenbl...@gmail.com on 24 Mar 2008 at 4:06

GoogleCodeExporter commented 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

GoogleCodeExporter commented 8 years ago
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

GoogleCodeExporter commented 8 years ago
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:

GoogleCodeExporter commented 8 years ago
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

GoogleCodeExporter commented 8 years ago
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

GoogleCodeExporter commented 8 years ago

Original comment by ebenbl...@gmail.com on 1 May 2008 at 12:50

GoogleCodeExporter commented 8 years ago

Original comment by richard...@gmail.com on 8 Jan 2010 at 5:06