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

Alpha Blending screen #1 Alpha Blending screen #2 Alpha Blending screen #3 Alpha Blending screen #4

Comments

It seems to work proper.

Fog

Screenshots

Fog screen #1 Fog screen #2

Comments

I am not sure about the result, but I suppose it to work proper.

Texture state

Screenshots

Texture state screenshot #1 Texture state screenshot #2 Texture state screenshot #3 Texture state screenshot #4

Comments

It seems to work proper

Sampler state

Screenshots

Sampler state screenshot #1

Comments

I am not sure if the right result should look like this.

Depth stencil

Screenshots

Depth stencil screenshot #1

Comments

I am not sure if the result is correct.

Display mode

Comments

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.)