D3DUT: Running on i915
Configuration info
For creating this report I used the latest avialable version of D3DUT (rev. 52). I compiled
it on Fedora Core 4 with installed mono 1.1.13.2, nant 0.85 RC3, gcc 4.0.1
and X.org 6.8.2.
The notebook I used for testing has CPU Intel Celeron 1.3GHz, 1GB RAM, Intel Extream
graphics card with shared memory (kernel module driver name is i915).
GLX info
Here is listing of 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_visual_info, GLX_EXT_visual_rating,
GLX_EXT_import_context, GLX_OML_swap_method, GLX_SGI_make_current_read,
GLX_SGIS_multisample, GLX_SGIX_fbconfig
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_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 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_OML_swap_method, GLX_SGI_make_current_read, GLX_SGIS_multisample,
GLX_SGIX_fbconfig
OpenGL vendor string: Tungsten Graphics, Inc
OpenGL renderer string: Mesa DRI Intel(R) 852GM/855GM 20040919 x86/MMX/SSE2
OpenGL version string: 1.3 Mesa 6.2.1
OpenGL extensions:
GL_ARB_imaging, GL_ARB_multisample, GL_ARB_multitexture,
GL_ARB_point_parameters, 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_multi_draw_arrays, 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_env_dot3,
GL_EXT_texture_filter_anisotropic, GL_EXT_texture_lod_bias,
GL_EXT_texture_object, GL_EXT_texture_rectangle, GL_EXT_vertex_array,
GL_3DFX_texture_compression_FXT1, GL_APPLE_client_storage,
GL_APPLE_packed_pixels, GL_ATI_blend_equation_separate,
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_NV_vertex_program1_1, 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, GL_SUN_multi_draw_arrays
glu version: 1.3
glu extensions:
GLU_EXT_nurbs_tessellator, GLU_EXT_object_space_tess
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 0 0 0 0 0 0 0 0 None
0x24 24 tc 0 32 0 r . . 8 8 8 8 0 0 0 0 0 0 0 0 0 None
0x25 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
0x26 24 tc 0 32 0 r . . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
0x27 24 tc 0 32 0 r y . 8 8 8 8 0 0 0 16 16 16 16 0 0 Slow
0x28 24 tc 0 32 0 r . . 8 8 8 8 0 0 0 16 16 16 16 0 0 Slow
0x29 24 tc 0 32 0 r y . 8 8 8 8 0 24 8 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 0 0 0 0 0 0 0 0 None
0x2c 24 dc 0 32 0 r . . 8 8 8 8 0 0 0 0 0 0 0 0 0 None
0x2d 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
0x2e 24 dc 0 32 0 r . . 8 8 8 8 0 24 8 0 0 0 0 0 0 None
0x2f 24 dc 0 32 0 r y . 8 8 8 8 0 0 0 16 16 16 16 0 0 Slow
0x30 24 dc 0 32 0 r . . 8 8 8 8 0 0 0 16 16 16 16 0 0 Slow
0x31 24 dc 0 32 0 r y . 8 8 8 8 0 24 8 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
Results
Alpha blending
Screenshots
Comments
It seems to work proper.
Fog
Screenshots
Comments
I am not sure about the result, but I suppose it to work proper.
Texture state
Screenshots
Comments
It seems to work proper
Sampler state
Screenshots
Comments
I am not sure if the right result should look like this.
Depth stencil
Screenshots
Comments
I am not sure if the result is correct.
Display mode
Comments
- Switching from windowed to fullscreen mode seems to work right.
-
Changing mode while in fullscreen mode seems to work right. (bug with mouse and
smaller mode - need to place mouse respectivly to window or inside the window)
- Switching from fullscreen to windowed - occures SIGSEGV, see output from mono.
Info: End of Switch to fullscreen
* Key up window event
* Key down window event
Info: Switching to windowed mode (512x384 - D24S8).
Info: Disposing cache "SurfaceCache".
Info: Inspecting Pool.Default for undisposed objects.
* create/reset output
* restore old resolution reseting
* reseting device
releasing assigned data
windowed mode
recreating primary surface
* destroying RC
* creating on-screen GLX context
xdisplay: 0x97bd6c8
xwindow: 50332119
xscreen: 0
* Building GLX Attributes:
- double buffer
- double buffer size: 32
- depth size: 24
- stencil size: 8
* checking validity of GLX context
supports GL
supports RGBA
supports double buffer
bpp: 32 (8-8-8) (requested: 32)
depth: 24 (requested: 24)
stencil: 8 (requested: 8)
* creating GLX context
=================================================================
Got a SIGSEGV while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
=================================================================
Stacktrace:
in (0x4) (wrapper managed-to-native) Zcu.Graphics.D3DUT.Interop.InteropGUI:Runtime_CreateResetOutput (intptr,string,Zcu.Graphics.D3DUT.OutputDisplayMode,int,int,Zcu.Graphics.D3DUT.Interop.Format,Zcu.Graphics.D3DUT.Interop.DepthFormat,int,Zcu.Graphics.D3DUT.MultiSampleType,int,intptr&)
in (0x74b3e08) (wrapper managed-to-native) Zcu.Graphics.D3DUT.Interop.InteropGUI:Runtime_CreateResetOutput (intptr,string,Zcu.Graphics.D3DUT.OutputDisplayMode,int,int,Zcu.Graphics.D3DUT.Interop.Format,Zcu.Graphics.D3DUT.Interop.DepthFormat,int,Zcu.Graphics.D3DUT.MultiSampleType,int,intptr&)
in (0x138) Zcu.Graphics.D3DUT.RuntimeCache:ResetOutput (Zcu.Graphics.D3DUT.OutputDisplayMode,Zcu.Graphics.D3DUT.Size,Zcu.Graphics.D3DUT.Format,Zcu.Graphics.D3DUT.DepthFormat,int,Zcu.Graphics.D3DUT.MultiSampleType,bool,bool)
in (0x152) Zcu.Graphics.D3DUT.Runtime:SwitchToWindowed (Zcu.Graphics.D3DUT.DepthFormat)
in (0x5d) Zcu.Graphics.Tests.TestDisplayMode:OnKeyDown (Zcu.Graphics.D3DUT.Runtime,Zcu.Graphics.D3DUT.KeyEventArgs)
in (0xfffffd72) (wrapper delegate-invoke) System.MulticastDelegate:invoke_void_Runtime_KeyEventArgs (Zcu.Graphics.D3DUT.Runtime,Zcu.Graphics.D3DUT.KeyEventArgs)
in (0x132) Zcu.Graphics.D3DUT.RuntimeCache:OnKeyDown (Zcu.Graphics.D3DUT.KeyEventArgs)
in (0x178) Zcu.Graphics.D3DUT.RuntimeCache:OnRuntimeEvent (intptr,Zcu.Graphics.D3DUT.Interop.CallbackCode,int,int,int)
in (0xf72fdc2f) (wrapper native-to-managed) Zcu.Graphics.D3DUT.RuntimeCache:OnRuntimeEvent (intptr,Zcu.Graphics.D3DUT.Interop.CallbackCode,int,int,int)
in (0x4) (wrapper managed-to-native) Zcu.Graphics.D3DUT.Interop.InteropGUI:Runtime_Run (intptr)
in (0xffffe684) (wrapper managed-to-native) Zcu.Graphics.D3DUT.Interop.InteropGUI:Runtime_Run (intptr)
in (0x4c) Zcu.Graphics.D3DUT.Runtime:Run ()
in (0x170) Zcu.Graphics.Tests.TestDisplayMode:.ctor ()
in (0x50) Zcu.Graphics.Tests.TestDisplayMode:Main ()
in (0x7e6efc7) (wrapper runtime-invoke) System.Object:runtime_invoke_void (object,intptr,intptr,intptr)
Native stacktrace:
mono(mono_handle_native_sigsegv+0xba) [0x814c43a]
mono [0x813890f]
[0xb41440]
/usr/X11R6/lib/modules/dri/i915_dri.so [0x2bf95c8]
/usr/X11R6/lib/libGL.so.1 [0x13f8b76]
/usr/X11R6/lib/libGL.so.1(glXCreateContext+0x38) [0x13f906d]
d3dut-linux.so(_ZN5D3DUT7ContextC1EP9_XDisplaymiNS_9D3DFORMATES3_iPS0_+0x38c) [0xabf1f0]
d3dut-linux.so(_ZN5D3DUT15OnScreenSurfaceC1EPNS_6WindowENS_9D3DFORMATES3_PNS_9D3DDeviceEPNS_7ContextE+0x6e) [0xad282e]
d3dut-linux.so(_ZN5D3DUT9D3DDevice5resetEPPNS_6WindowEiNS_19OUTPUT_DISPLAY_MODEEiiNS_9D3DFORMATES5_iNS_19D3DMULTISAMPLE_TYPEEb+0x3ea) [0xac4678]
d3dut-linux.so(_ZN5D3DUT7Runtime17createResetOutputEPKwNS_19OUTPUT_DISPLAY_MODEEiiNS_9D3DFORMATES4_iNS_19D3DMULTISAMPLE_TYPEEbPPNS_9D3DDeviceE+0x4a7) [0xad1271]
d3dut-linux.so(Runtime_CreateResetOutput+0x44) [0xad011e]
[0x57ca09]
[0x7a307c1]
[0x7a35a6b]
[0x115d78e]
[0x115d70a]
[0x115d43b]
[0x1157b81]
[0x97d28fb]
d3dut-linux.so(_ZN5D3DUT7Runtime9onKeyDownEP10_GtkWidgetP12_GdkEventKeyPv+0x90) [0xad04f0]
/usr/lib/libgtk-x11-2.0.so.0 [0x4170be2]
/usr/lib/libgobject-2.0.so.0(g_closure_invoke+0x10a) [0x7f6285]
/usr/lib/libgobject-2.0.so.0 [0x80475b]
/usr/lib/libgobject-2.0.so.0(g_signal_emit_valist+0x41e) [0x805c23]
/usr/lib/libgobject-2.0.so.0(g_signal_emit+0x29) [0x806223]
/usr/lib/libgtk-x11-2.0.so.0 [0x424c743]
/usr/lib/libgtk-x11-2.0.so.0(gtk_propagate_event+0x1d2) [0x416f459]
/usr/lib/libgtk-x11-2.0.so.0(gtk_main_do_event+0x329) [0x416f784]
/usr/lib/libgdk-x11-2.0.so.0 [0x2615df6]
/usr/lib/libglib-2.0.so.0(g_main_context_dispatch+0x1dc) [0x8564ce]
/usr/lib/libglib-2.0.so.0 [0x8594d6]
/usr/lib/libglib-2.0.so.0(g_main_loop_run+0x1a1) [0x8597c3]
/usr/lib/libgtk-x11-2.0.so.0(gtk_main+0xb4) [0x416ea46]
d3dut-linux.so(_ZN5D3DUT7Runtime3runEv+0x45) [0xad0d97]
d3dut-linux.so(Runtime_Run+0x1e) [0xacff82]
[0x11579e3]
[0x115603d]
[0x57a911]
[0x2c9aa9]
[0x2c981e]
mono [0x81387c0]
mono(mono_runtime_invoke+0x27) [0x80d5067]
mono(mono_runtime_exec_main+0x5c) [0x80d617c]
mono(mono_runtime_run_main+0x171) [0x80d5da1]
mono(strftime+0x1b52) [0x805ce52]
mono(mono_main+0x786) [0x805d766]
mono(__fxstat64+0x12b) [0x805c21b]
/lib/libc.so.6(__libc_start_main+0xdf) [0x39cd5f]
mono(sinh+0x41) [0x805c171]
Aborted
Something smell around :(
Conclusion
The results of testing D3DUT on i915 graphics card, however it is low-perfomance
notebook solution, seem promising. The fullscreen-windowed mode switching bug looks
like there is something wrong with re-creation of GLX context on the unmanaged side
of D3DUT. (Maybe the problems is somewhere with binding context
to not-yet-created window.)