Discussion:
Vmwgfx: lack of 3D acceleration
Marco
2010-02-18 15:20:03 UTC
Permalink
Hallo,
I'trying to use the vmwgfx driver to anable 3D accellarion on vmware player,
but xorg still use swrast driver.

I'm using kernel 2.6.33-rc7-00213-g0706f50 self comiled with vmwgfx driver
enabled.
I'm using mesa_7_7_branch because is the only one vmwgfx works in xorg
(master still doesn't work in xorg) and xorg 1.7.99.3 dated 20100121.

It seems that drm recognize 3D capabilities, but Xorg doesn't

This is what I get from dmesg:
[ 4.470260] [drm] Initialized drm 1.1.0 20060810
[ 4.470304] initcall drm_core_init+0x0/0x100 [drm] returned 0 after 220
usecs
[ 4.488209] [drm:drm_init],
[ 4.488231] [drm:drm_get_dev],
[ 4.488253] [drm:drm_get_minor],
[ 4.489182] [drm:drm_get_minor], new minor assigned 64
[ 4.489204] [drm:drm_get_minor],
[ 4.489372] [drm:drm_get_minor], new minor assigned 0
[ 4.490037] [drm] Capabilities:
[ 4.491037] [drm] Rect copy.
[ 4.491059] [drm] Cursor.
[ 4.491080] [drm] Cursor bypass.
[ 4.491102] [drm] Cursor bypass 2.
[ 4.491124] [drm] 8bit emulation.
[ 4.491146] [drm] Alpha cursor.
[ 4.491167] [drm] 3D.
[ 4.491189] [drm] Extended Fifo.
[ 4.491211] [drm] Multimon.
[ 4.491233] [drm] Pitchlock.
[ 4.491254] [drm] Display Topology.
[ 4.491276] [drm] VRAM at 0xf0000000 size is 131072 kiB
[ 4.491298] [drm] MMIO at 0xe8000000 size is 2048 kiB
[ 4.491320] [drm] global init.
[ 4.495033] [drm] width 640
[ 4.495055] [drm] height 480
[ 4.495076] [drm] bpp 32
[ 4.496038] [drm] Fifo max 0x00200000 min 0x00001000 cap 0x0000007f
[ 4.498031] [drm:vmw_fb_init], width 2560
[ 4.498053] [drm:vmw_fb_init], height 1600
[ 4.498075] [drm:vmw_fb_init], width 2048
[ 4.498097] [drm:vmw_fb_init], height 1600
[ 4.498118] [drm:vmw_fb_init], bpp 32
[ 4.498140] [drm:vmw_fb_init], depth 24
[ 4.498162] [drm:vmw_fb_init], bpl 8192
[ 4.498184] [drm:vmw_fb_init], r mask 00ff0000
[ 4.498205] [drm:vmw_fb_init], g mask 0000ff00
[ 4.498227] [drm:vmw_fb_init], b mask 000000ff
[ 4.498247] [drm:vmw_fb_init], fb_offset 0x00000000
[ 4.498266] [drm:vmw_fb_init], fb_pitch 8192
[ 4.498288] [drm:vmw_fb_init], fb_size 12800 kiB
[ 4.524038] [drm] Have 3D
[ 4.524059] [drm] Initialized vmwgfx 1.0.0 20100209 for 0000:00:0f.0 on
minor
0
[ 24.434211] [drm:drm_stub_open],
[ 24.434390] [drm:drm_open_helper], pid = 2335, minor = 0
[ 24.435062] [drm] Master create.
[ 24.435242] [drm] Master set.
[ 24.436399] [drm:drm_setup],

What Xorg says is this:
II) vmwgfx(0): Using exact sizes for initial modes
II) vmwgfx(0): Output LVDS1 using initial mode 800x600
II) vmwgfx(0): Using default gamma of (1.0, 1.0, 1.0) unless otherwise
stated.
==) vmwgfx(0): DPI set to (96, 96)
II) vmwgfx(0): 2D Acceleration is disabled
II) vmwgfx(0): Fallback debugging is enabled
II) vmwgfx(0): 3D Acceleration is disabled
==) vmwgfx(0): Backing store disabled
==) vmwgfx(0): Silken mouse enabled
II) vmwgfx(0): RandR 1.2 enabled, ignore the following RandR disabled
message.
==) vmwgfx(0): DPMS enabled
II) vmwgfx(0): Damage tracking initialized
II) vmwgfx(0): Setting screen physical size to 211 x 158

This is what glxinfo says:
name of display: :0.0
display: :0 screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.4
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_SGIX_pbuffer,
GLX_MESA_copy_sub_buffer, GLX_INTEL_swap_event
client glx vendor string: Mesa Project and 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.4
GLX extensions:
GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_OML_swap_method,
GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer
OpenGL vendor string: Mesa Project
OpenGL renderer string: Software Rasterizer
OpenGL version string: 2.1 Mesa 7.7.1-DEVEL
OpenGL shading language version string: 1.20

It seems to use swrast. I would expect it to use vmwgfx_dri.

Bye
Marco
Michel Dänzer
2010-02-18 16:09:50 UTC
Permalink
Post by Marco
II) vmwgfx(0): Using exact sizes for initial modes
II) vmwgfx(0): Output LVDS1 using initial mode 800x600
II) vmwgfx(0): Using default gamma of (1.0, 1.0, 1.0) unless otherwise
stated.
==) vmwgfx(0): DPI set to (96, 96)
I wonder why there isn't any mention here of loading the dri2 or at
least exa and fb modules... Please provide the full Xorg.0.log file.
Post by Marco
II) vmwgfx(0): 2D Acceleration is disabled
II) vmwgfx(0): Fallback debugging is enabled
II) vmwgfx(0): 3D Acceleration is disabled
Did you check that DRI2 was enabled for the xserver and Gallium build?
--
Earthling Michel Dänzer | http://www.vmware.com
Libre software enthusiast | Debian, X and DRI developer
Marco
2010-02-19 07:52:26 UTC
Permalink
Post by Michel Dänzer
Please provide the full Xorg.0.log file.
Here it is (in the meantime I recompiled drm 2.4.18, but non vmwgfx 3D
again)

Marco
Michel Dänzer
2010-02-19 14:21:57 UTC
Permalink
Post by Marco
Post by Michel Dänzer
Please provide the full Xorg.0.log file.
Here it is (in the meantime I recompiled drm 2.4.18, but non vmwgfx 3D
again)
Hmm. I guess most likely vmw_drm_create_screen() fails, but I'm not sure
why. Can you try finding out with a debugger or by adding strategic
printf/ErrorF calls?
--
Earthling Michel Dänzer | http://www.vmware.com
Libre software enthusiast | Debian, X and DRI developer
Loading...