VMware Workstation 7 の OpenGL 対応度...
今までゲスト Windows 環境での OpenGL には対応していなかった VMware Workstation ですが, VMware Workstation 7 で ようやく対応が行われましたので, 久々に OpenGL Extensions Viewer 3.14 で調べてみました。 まずは前回 3.04 を使用して測定した VMware Workstation 6.5 RC との比較です。 中途半端なものではなく OpenGL 2.1 まで しっかり対応していることから, もはや比較にもなりませんけれど…:
環境
|
VMware 6.5 RC
|
VMware 7.0
|
Renderer:
|
GDI Generic
|
Gallium 0.3 on SVGA3D
|
Vendor:
|
Microsoft Corporation
|
VMware, Inc.
|
Memory:
|
128 MB
|
128 MB
|
Version:
|
1.1.0
|
2.1 Mesa 7.5.1
|
Shading language version:
|
N/A
|
1.20
|
Max texture size:
|
1024 x 1024
|
2048 x 2048
|
Max texture coordinates:
|
0
|
8
|
Max vertex texture image units:
|
0
|
0
|
Max texture image units:
|
0
|
16
|
Max geometry texture units:
|
0
|
0
|
Max anisotropic filtering value:
|
0
|
4
|
Max number of light sources:
|
8
|
8
|
Max viewport size:
|
16384 x 16384
|
4096 x 4096
|
Max uniform vertex components:
|
―
|
4096
|
Max uniform fragment components:
|
―
|
4096
|
Max geometry uniform components:
|
―
|
0
|
Max varying floats:
|
―
|
64
|
Max samples:
|
0
|
0
|
Max draw buffers:
|
0
|
4
|
Extensions:
|
3
|
92
|
|
Core features
|
v1.1
|
(100 % - 7/7)
|
(100 % - 7/7)
|
v1.2
|
(12 % - 1/8)
|
(100 % - 8/8)
|
v1.3
|
(0 % - 0/9)
|
(100 % - 9/9)
|
v1.4
|
(0 % - 0/15)
|
(100 % - 15/15)
|
v1.5
|
(0 % - 0/3)
|
(100 % - 3/3)
|
v2.0
|
(0 % - 0/10)
|
(100 % - 10/10)
|
v2.1
|
(0 % - 0/3)
|
(100 % - 3/3)
|
v3.0
|
(0 % - 0/23)
|
(13 % - 3/23)
|
v3.1
|
(0 % - 0/8)
|
(12 % - 1/8)
|
v3.2
|
(0 % - 0/9)
|
(0 % - 0/9)
|
details:
|
・1.3 以上は省略
1.1
GL_EXT_blend_logic_op
GL_EXT_copy_texture
GL_EXT_polygon_offset
GL_EXT_subtexture
GL_EXT_texture
GL_EXT_texture_object
GL_EXT_vertex_array
1.2
GL_EXT_bgra
GL_EXT_draw_range_elements
GL_EXT_packed_pixels
GL_EXT_rescale_normal
GL_EXT_separate_specular_color
GL_EXT_texture3D
GL_SGIS_texture_edge_clamp
GL_SGIS_texture_lod
|
・2.1 以下は省略
3.0
GL_ARB_framebuffer_object
GL_EXT_framebuffer_blit
GL_EXT_packed_depth_stencil
Shading language version: 1.30
GL_APPLE_flush_buffer_range
GL_APPLE_vertex_array_object
GL_ARB_color_buffer_float
GL_ARB_depth_buffer_float
GL_ARB_framebuffer_sRGB
GL_ARB_half_float_pixel
GL_ARB_texture_compression_rgtc
GL_ARB_texture_float
GL_ARB_texture_rg
GL_EXT_draw_buffers2
GL_EXT_framebuffer_multisample
GL_EXT_gpu_shader4
GL_EXT_packed_float
GL_EXT_Texture_array
GL_EXT_texture_integer
GL_EXT_texture_shared_exponent
GL_EXT_transform_feedback
GL_NV_conditional_render
GL_NV_half_float
3.1
GL_ARB_texture_rectangle
Shading language version: 1.40
GL_ARB_copy_buffer
GL_ARB_draw_instanced
GL_ARB_texture_buffer_object
GL_ARB_texture_snorm
GL_ARB_uniform_buffer_object
GL_NV_primitive_restart
3.2
Shading language version: 1.50
GL_ARB_draw_elements_base_vertext
GL_ARB_fragment_coord_conventions
GL_ARB_geometry_shader4
GL_ARB_provoking_vertex
GL_ARB_seamless_cube_map
GL_ARB_sync
GL_ARB_texture_multisample
GL_ARB_vertex_array_bgra
|
|
Info
|
Hardware support:
|
no
|
yes
|
Compiled vertex array:
|
no support
|
support
|
Multitexture:
|
no support
|
support
|
Secondary color:
|
no support
|
support
|
S3TC compression:
|
no support
|
support
|
Vertex array range:
|
no support
|
support
|
Texture edge clamp:
|
no support
|
support
|
Vertex program:
|
no support
|
support
|
Fragment program:
|
no support
|
support
|
Texture anisotropic filtering:
|
no support
|
support
|
Occlusion test:
|
no support
|
support
|
Point sprite:
|
no support
|
support
|
OpenGL Shading Language:
|
no support
|
support
|
Frame buffer object:
|
no support
|
support
|
次に, WDDM 版ドライバーとの比較です:
環境
|
VMware 7.0 (WDDM)
|
VMware 7.0 (XPDM)
|
Renderer:
|
GDI Generic
|
Gallium 0.3 on SVGA3D
|
Vendor:
|
Microsoft Corporation
|
VMware, Inc.
|
Memory:
|
0 MB
|
128 MB
|
Version:
|
1.1.0
|
2.1 Mesa 7.5.1
|
Shading language version:
|
N/A
|
1.20
|
Max texture size:
|
1024 x 1024
|
2048 x 2048
|
Max texture coordinates:
|
0
|
8
|
Max vertex texture image units:
|
0
|
0
|
Max texture image units:
|
0
|
16
|
Max geometry texture units:
|
0
|
0
|
Max anisotropic filtering value:
|
0
|
4
|
Max number of light sources:
|
8
|
8
|
Max viewport size:
|
16384 x 16384
|
4096 x 4096
|
Max uniform vertex components:
|
0
|
4096
|
Max uniform fragment components:
|
0
|
4096
|
Max geometry uniform components:
|
0
|
0
|
Max varying floats:
|
0
|
64
|
Max samples:
|
0
|
0
|
Max draw buffers:
|
0
|
4
|
Extensions:
|
3
|
92
|
|
Core features
|
v1.1
|
(100 % - 7/7)
|
(100 % - 7/7)
|
v1.2
|
(12 % - 1/8)
|
(100 % - 8/8)
|
v1.3
|
(0 % - 0/9)
|
(100 % - 9/9)
|
v1.4
|
(0 % - 0/15)
|
(100 % - 15/15)
|
v1.5
|
(0 % - 0/3)
|
(100 % - 3/3)
|
v2.0
|
(0 % - 0/10)
|
(100 % - 10/10)
|
v2.1
|
(0 % - 0/3)
|
(100 % - 3/3)
|
v3.0
|
(0 % - 0/23)
|
(13 % - 3/23)
|
v3.1
|
(0 % - 0/8)
|
(12 % - 1/8)
|
v3.2
|
(0 % - 0/9)
|
(0 % - 0/9)
|
details:
|
・1.3 以上は省略
1.1
GL_EXT_blend_logic_op
GL_EXT_copy_texture
GL_EXT_polygon_offset
GL_EXT_subtexture
GL_EXT_texture
GL_EXT_texture_object
GL_EXT_vertex_array
1.2
GL_EXT_bgra
GL_EXT_draw_range_elements
GL_EXT_packed_pixels
GL_EXT_rescale_normal
GL_EXT_separate_specular_color
GL_EXT_texture3D
GL_SGIS_texture_edge_clamp
GL_SGIS_texture_lod
|
・2.1 以下は省略
3.0
GL_ARB_framebuffer_object
GL_EXT_framebuffer_blit
GL_EXT_packed_depth_stencil
Shading language version: 1.30
GL_APPLE_flush_buffer_range
GL_APPLE_vertex_array_object
GL_ARB_color_buffer_float
GL_ARB_depth_buffer_float
GL_ARB_framebuffer_sRGB
GL_ARB_half_float_pixel
GL_ARB_texture_compression_rgtc
GL_ARB_texture_float
GL_ARB_texture_rg
GL_EXT_draw_buffers2
GL_EXT_framebuffer_multisample
GL_EXT_gpu_shader4
GL_EXT_packed_float
GL_EXT_Texture_array
GL_EXT_texture_integer
GL_EXT_texture_shared_exponent
GL_EXT_transform_feedback
GL_NV_conditional_render
GL_NV_half_float
3.1
GL_ARB_texture_rectangle
Shading language version: 1.40
GL_ARB_copy_buffer
GL_ARB_draw_instanced
GL_ARB_texture_buffer_object
GL_ARB_texture_snorm
GL_ARB_uniform_buffer_object
GL_NV_primitive_restart
3.2
Shading language version: 1.50
GL_ARB_draw_elements_base_vertext
GL_ARB_fragment_coord_conventions
GL_ARB_geometry_shader4
GL_ARB_provoking_vertex
GL_ARB_seamless_cube_map
GL_ARB_sync
GL_ARB_texture_multisample
GL_ARB_vertex_array_bgra
|
|
Info
|
Hardware support:
|
no
|
yes
|
Compiled vertex array:
|
no support
|
support
|
Multitexture:
|
no support
|
support
|
Secondary color:
|
no support
|
support
|
S3TC compression:
|
no support
|
support
|
Vertex array range:
|
no support
|
support
|
Texture edge clamp:
|
no support
|
support
|
Vertex program:
|
no support
|
support
|
Fragment program:
|
no support
|
support
|
Texture anisotropic filtering:
|
no support
|
support
|
Occlusion test:
|
no support
|
support
|
Point sprite:
|
no support
|
support
|
OpenGL Shading Language:
|
no support
|
support
|
Frame buffer object:
|
no support
|
support
|
「何かが おかしい…」と感じた貴方, 正解です。 OpenGL 1.4 に対応と謳われている WDDM 版ドライバーですが, 実際には対応していません。 それを行うための vm3dgl.dll がレジストリーには登録されるのですが, インストールは行われません。 といいますか, カタログに記述は見あたりませんし, そもそも VMware Tools に当該 DLL が含まれていません。 結果として, マイクロソフト謹製のソフトウェア処理である GDI Generic が情報として返されますし, OpenGL 対応ソフトから呼ばれるのも GDI Generic です。 ドライバーが存在しないのですから, 当たり前です。
WDDM 版ドライバーと OpenGL 対応ソフトの両立が必要な場合には死活問題となりますので, その辺りを確かめた上で VMware 7.0 を導入しましょう。 ちなみに, RC 版でも事情は同じですので, 「OpenGL 1.4 に対応」の謳い文句が実現したことは一度もないと言えそうです。(笑)
最後にホスト環境との比較を載せておきます。 ホストのドライバーが ForceWare 179.48 ということもあって, あまり遜色ない見かけをしています (笑):
環境
|
VMware 7.0
|
Satellite WXW/78DW (ホスト)
|
Renderer:
|
Gallium 0.3 on SVGA3D
|
GeForce 8700M GT/PCI/SSE2
|
Vendor:
|
VMware, Inc.
|
NVIDIA Corporation
|
Memory:
|
128 MB
|
256 MB
|
Version:
|
2.1 Mesa 7.5.1
|
2.1.2
|
Shading language version:
|
1.20
|
1.20 NVIDIA via Cg compiler
|
Max texture size:
|
2048 x 2048
|
8192 x 8192
|
Max texture coordinates:
|
8
|
8
|
Max vertex texture image units:
|
0
|
32
|
Max texture image units:
|
16
|
32
|
Max geometry texture units:
|
0
|
32
|
Max anisotropic filtering value:
|
4
|
16
|
Max number of light sources:
|
8
|
8
|
Max viewport size:
|
4096 x 4096
|
8192 x 8192
|
Max uniform vertex components:
|
4096
|
4096
|
Max uniform fragment components:
|
4096
|
4096
|
Max geometry uniform components:
|
0
|
2048
|
Max varying floats:
|
64
|
60
|
Max samples:
|
0
|
16
|
Max draw buffers:
|
4
|
8
|
Extensions:
|
92
|
161
|
|
Core features
|
v1.1
|
(100 % - 7/7)
|
(100 % - 7/7)
|
v1.2
|
(100 % - 8/8)
|
(100 % - 8/8)
|
v1.3
|
(100 % - 9/9)
|
(100 % - 9/9)
|
v1.4
|
(100 % - 15/15)
|
(100 % - 15/15)
|
v1.5
|
(100 % - 3/3)
|
(100 % - 3/3)
|
v2.0
|
(100 % - 10/10)
|
(100 % - 10/10)
|
v2.1
|
(100 % - 3/3)
|
(100 % - 3/3)
|
v3.0
|
(13 % - 3/23)
|
(82 % - 19/23)
|
v3.1
|
(12 % - 1/8)
|
(50 % - 4/8)
|
v3.2
|
(0 % - 0/9)
|
(11 % - 1/9)
|
details:
|
・2.1 以下は省略
3.0
GL_ARB_framebuffer_object
GL_EXT_framebuffer_blit
GL_EXT_packed_depth_stencil
Shading language version: 1.30
GL_APPLE_flush_buffer_range
GL_APPLE_vertex_array_object
GL_ARB_color_buffer_float
GL_ARB_depth_buffer_float
GL_ARB_framebuffer_sRGB
GL_ARB_half_float_pixel
GL_ARB_texture_compression_rgtc
GL_ARB_texture_float
GL_ARB_texture_rg
GL_EXT_draw_buffers2
GL_EXT_framebuffer_multisample
GL_EXT_gpu_shader4
GL_EXT_packed_float
GL_EXT_Texture_array
GL_EXT_texture_integer
GL_EXT_texture_shared_exponent
GL_EXT_transform_feedback
GL_NV_conditional_render
GL_NV_half_float
3.1
GL_ARB_texture_rectangle
Shading language version: 1.40
GL_ARB_copy_buffer
GL_ARB_draw_instanced
GL_ARB_texture_buffer_object
GL_ARB_texture_snorm
GL_ARB_uniform_buffer_object
GL_NV_primitive_restart
3.2
Shading language version: 1.50
GL_ARB_draw_elements_base_vertext
GL_ARB_fragment_coord_conventions
GL_ARB_geometry_shader4
GL_ARB_provoking_vertex
GL_ARB_seamless_cube_map
GL_ARB_sync
GL_ARB_texture_multisample
GL_ARB_vertex_array_bgra
|
・2.1 以下は省略
3.0
GL_ARB_color_buffer_float
GL_ARB_depth_buffer_float
GL_ARB_framebuffer_object
GL_ARB_framebuffer_sRGB
GL_ARB_half_float_pixel
GL_ARB_texture_compression_rgtc
GL_ARB_texture_float
GL_EXT_draw_buffers2
GL_EXT_framebuffer_blit
GL_EXT_framebuffer_multisample
GL_EXT_gpu_shader4
GL_EXT_packed_depth_stencil
GL_EXT_packed_float
GL_EXT_Texture_array
GL_EXT_texture_integer
GL_EXT_texture_shared_exponent
GL_EXT_transform_feedback
GL_NV_conditional_render
GL_NV_half_float
Shading language version: 1.30
GL_APPLE_flush_buffer_range
GL_APPLE_vertex_array_object
GL_ARB_texture_rg
3.1
GL_ARB_draw_instanced
GL_ARB_texture_buffer_object
GL_ARB_texture_rectangle
GL_NV_primitive_restart
Shading language version: 1.40
GL_ARB_copy_buffer
GL_ARB_texture_snorm
GL_ARB_uniform_buffer_object
3.2
GL_ARB_geometry_shader4
Shading language version: 1.50
GL_ARB_draw_elements_base_vertext
GL_ARB_fragment_coord_conventions
GL_ARB_provoking_vertex
GL_ARB_seamless_cube_map
GL_ARB_sync
GL_ARB_texture_multisample
GL_ARB_vertex_array_bgra
|
|
Info
|
Hardware support:
|
yes
|
yes
|
Compiled vertex array:
|
support
|
support
|
Multitexture:
|
support
|
support
|
Secondary color:
|
support
|
support
|
S3TC compression:
|
support
|
support
|
Vertex array range:
|
support
|
support
|
Texture edge clamp:
|
support
|
support
|
Vertex program:
|
support
|
support
|
Fragment program:
|
support
|
support
|
Texture anisotropic filtering:
|
support
|
support
|
Occlusion test:
|
support
|
support
|
Point sprite:
|
support
|
support
|
OpenGL Shading Language:
|
support
|
support
|
Frame buffer object:
|
support
|
support
|
|