I am running the World of Warcraft 1.11.0 client using Wine 0.9.20, XOrg 7.1, Mesa 6.5.1 and with a Radeon 9200 (rv280) video card. WoW can use either Direct3D or OpenGL. However, while the Direct3D login screen is drawn correctly, the OpenGL version is not. I have attached screenshots of each. This is what glxinfo says about my configuration: $ glxinfo -l name of display: :0.0 libGL warning: 3D driver claims to not support visual 0x4b Mesa: CPU vendor: GenuineIntel Mesa: CPU name: Intel(R) Xeon(TM) CPU 2.66GHz Mesa: MMX cpu detected. Mesa: SSE cpu detected. Mesa: Not testing OS support for SSE, leaving enabled. 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_visual_info, GLX_EXT_visual_rating, GLX_EXT_import_context, GLX_EXT_texture_from_pixmap, GLX_OML_swap_method, GLX_SGI_make_current_read, GLX_SGIS_multisample, GLX_SGIX_hyperpipe, GLX_SGIX_swap_barrier, GLX_SGIX_fbconfig, GLX_MESA_copy_sub_buffer 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_allocate_memory, GLX_MESA_copy_sub_buffer, GLX_MESA_swap_control, GLX_MESA_swap_frame_usage, GLX_OML_swap_method, GLX_SGI_video_sync, GLX_SGIS_multisample, GLX_SGIX_fbconfig OpenGL vendor string: Tungsten Graphics, Inc. OpenGL renderer string: Mesa DRI R200 20060602 AGP 4x x86/MMX/SSE2 TCL OpenGL version string: 1.3 Mesa 6.5.1 OpenGL extensions: GL_ARB_imaging, GL_ARB_multisample, GL_ARB_multitexture, GL_ARB_texture_border_clamp, GL_ARB_texture_compression, GL_ARB_texture_cube_map, GL_ARB_texture_env_add, GL_ARB_texture_env_combine, GL_ARB_texture_env_crossbar, GL_ARB_texture_env_dot3, GL_ARB_texture_mirrored_repeat, GL_ARB_texture_rectangle, GL_ARB_transpose_matrix, GL_ARB_vertex_buffer_object, GL_ARB_vertex_program, GL_ARB_window_pos, GL_EXT_abgr, GL_EXT_bgra, GL_EXT_blend_color, GL_EXT_blend_equation_separate, GL_EXT_blend_func_separate, 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_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_compression_s3tc, GL_EXT_texture_edge_clamp, GL_EXT_texture_env_add, GL_EXT_texture_env_combine, GL_EXT_texture_env_dot3, GL_EXT_texture_filter_anisotropic, GL_EXT_texture_lod_bias, GL_EXT_texture_mirror_clamp, GL_EXT_texture_object, GL_EXT_texture_rectangle, GL_EXT_vertex_array, GL_APPLE_packed_pixels, GL_ATI_blend_equation_separate, GL_ATI_texture_env_combine3, GL_ATI_texture_mirror_once, GL_ATI_fragment_shader, GL_IBM_rasterpos_clip, GL_IBM_texture_mirrored_repeat, GL_INGR_blend_func_separate, GL_MESA_pack_invert, GL_MESA_ycbcr_texture, GL_MESA_window_pos, GL_NV_blend_square, GL_NV_light_max_exponent, GL_NV_texture_rectangle, GL_NV_texgen_reflection, GL_NV_vertex_program, GL_OES_read_format, GL_SGI_color_matrix, GL_SGI_color_table, GL_SGIS_generate_mipmap, GL_SGIS_texture_border_clamp, GL_SGIS_texture_edge_clamp, GL_SGIS_texture_lod OpenGL limits: GL_MAX_ATTRIB_STACK_DEPTH = 16 GL_MAX_CLIENT_ATTRIB_STACK_DEPTH = 16 GL_MAX_CLIP_PLANES = 6 GL_MAX_COLOR_MATRIX_STACK_DEPTH = 4 GL_MAX_ELEMENTS_VERTICES = 3000 GL_MAX_ELEMENTS_INDICES = 3000 GL_MAX_EVAL_ORDER = 30 GL_MAX_LIGHTS = 8 GL_MAX_LIST_NESTING = 64 GL_MAX_MODELVIEW_STACK_DEPTH = 32 GL_MAX_NAME_STACK_DEPTH = 64 GL_MAX_PIXEL_MAP_TABLE = 256 GL_MAX_PROJECTION_STACK_DEPTH = 32 GL_MAX_TEXTURE_STACK_DEPTH = 10 GL_MAX_TEXTURE_SIZE = 2048 GL_MAX_3D_TEXTURE_SIZE = 256 GL_MAX_VIEWPORT_DIMS = 4096, 4096 GL_ALIASED_LINE_WIDTH_RANGE = 1, 10 GL_SMOOTH_LINE_WIDTH_RANGE = 1, 10 GL_ALIASED_POINT_SIZE_RANGE = 1, 2047 GL_SMOOTH_POINT_SIZE_RANGE = 1, 1 GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB = 1024 GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB = 3 GL_MAX_TEXTURE_UNITS_ARB = 6 GL_MAX_TEXTURE_LOD_BIAS_EXT = 11 GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = 16 GL_MAX_CONVOLUTION_WIDTH/HEIGHT = 9, 9 GL_VERTEX_PROGRAM_ARB: GL_MAX_PROGRAM_INSTRUCTIONS_ARB = 128 GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB = 128 GL_MAX_PROGRAM_TEMPORARIES_ARB = 12 GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB = 12 GL_MAX_PROGRAM_PARAMETERS_ARB = 128 GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB = 192 GL_MAX_PROGRAM_ATTRIBS_ARB = 16 GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB = 12 GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB = 1 GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = 1 GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB = 128 GL_MAX_PROGRAM_ENV_PARAMETERS_ARB = 128 GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB = 128 GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB = 128 GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB = 128 GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = 128 GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = 128 GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = 128 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 ---------------------------------------------------------------------- 0x23 24 tc 0 32 0 r y . 8 8 8 8 0 24 0 0 0 0 0 0 0 None 0x24 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None 0x25 24 tc 0 32 0 r y . 8 8 8 8 0 24 0 16 16 16 16 0 0 Slow 0x26 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 16 16 16 16 0 0 Slow 0x27 24 tc 0 32 0 r . . 8 8 8 8 0 24 0 0 0 0 0 0 0 None 0x28 24 tc 0 32 0 r . . 8 8 8 8 0 24 8 0 0 0 0 0 0 None 0x29 24 tc 0 32 0 r . . 8 8 8 8 0 24 0 16 16 16 16 0 0 Slow 0x2a 24 tc 0 32 0 r . . 8 8 8 8 0 24 8 16 16 16 16 0 0 Slow 0x2b 24 dc 0 32 0 r y . 8 8 8 8 0 24 0 0 0 0 0 0 0 None 0x2c 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None 0x2d 24 dc 0 32 0 r y . 8 8 8 8 0 24 0 16 16 16 16 0 0 Slow 0x2e 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 16 16 16 16 0 0 Slow 0x2f 24 dc 0 32 0 r . . 8 8 8 8 0 24 0 0 0 0 0 0 0 None 0x30 24 dc 0 32 0 r . . 8 8 8 8 0 24 8 0 0 0 0 0 0 None 0x31 24 dc 0 32 0 r . . 8 8 8 8 0 24 0 16 16 16 16 0 0 Slow 0x32 24 dc 0 32 0 r . . 8 8 8 8 0 24 8 16 16 16 16 0 0 Slow 0x4b 32 tc 0 32 0 r . . 8 8 8 8 0 0 0 0 0 0 0 0 0 Ncon
Created attachment 6721 [details] Warcraft login screen; OpenGL mode Notice the artifacts around the mouse cursor and the lines connecting the mouse cursor to the (flashing) keyboard cursor in the Account Name box, and how both are connected to the "Remember account name" text field. Also, the fire on the right of the screen is drawn incorrectly as well. And most obviously of all, the background picture is missing :-).
Created attachment 6722 [details] Warcraft login screen; Direct3D mode This is what the screen is supposed to look like.
Could this be a Wine bug? Maybe. But people seem to play Wine quite happily in OpenGL mode using proprietary graphics drivers.
The problem is actually a wine bug and has been fixed on wine's git tree for now. Users who want to run WoW with 0.9.20 need to apply this patch http://appdb.winehq.org/commentview.php?iAppId=1922&iVersionId=5606&iThreadId=14505
Actually, I have already tried applying this patch to Wine. It did not make any difference.
Created attachment 6852 [details] Warcraft login screen; OpenGL mode ignoring vertex weight attribute Apparently, Warcraft runs ARB vertex programs that use the vertex weight attribute. However, Mesa does not support GL_ARB_vertex_weight, which means that it cannot (legally) run these vertex programs. Mesa has now been changed to ignore the vertex weight attribute, allowing the vertex programs to compile. (Apparently, Warcraft doesn't actually use the vertex weight, so compiling is enough.) This attachment shows Warcraft's login screen now running correctly under OpenGL. Unfortunately, Mesa does not yet support generic vertex attributes, which means that Warcraft has to run the vertex programs in software at the moment. This is why the animations on the login screen do not run smoothly.
*** This bug has been marked as a duplicate of 8060 ***
(In reply to comment #6) > Unfortunately, Mesa does not yet support generic vertex attributes, which means > that Warcraft has to run the vertex programs in software at the moment. This is > why the animations on the login screen do not run smoothly. No, Mesa itself supports generic vertex attribs just fine, only the r200 driver does not. (In reply to comment #7) > *** This bug has been marked as a duplicate of 8060 *** Not really a duplicate, the other bug really was about bogus r200 initialization (despite being caused by the broken shader).
(In reply to comment #6) > No, Mesa itself supports generic vertex attribs just fine, only the r200 > driver does not. Well that's good news then ;-). So does this mean that (e.g) i965 owners are now able to run Warcraft with full hardware acceleration? (In reply to comment #7) > > *** This bug has been marked as a duplicate of 8060 *** > Not really a duplicate, the other bug really was about bogus r200 > initialization (despite being caused by the broken shader). I would have preferred to mark this bug as "related" to #8060, but I thought that "duplicate" was close enough. Resolving #8060 has certainly had a remarkable effect on the OpenGL Warcraft login screen. Certainly enough to close this issue.
Mass version move, cvs -> git
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.