# SDL and linux HW_SURFACE ?

## Recommended Posts

rinderhack    122
hello everybody ! I am tyring to use the HW_SURFACE flag on the display surface (or on any other surface for that matter) but I cannot directly access the hardware via the x11 SDL_VIDEODRIVER right ? how do I create surfaces in hardware under linux ? does my kernel need framebuffer support ? the dga driver does not work for me, unfortunalety. perhaps directfb is worth a try ? somebody know how to set directfb with sdl and use it properly ? I'm on gentoo using kdevelop with a s3 supersavage (ThinkPad T23). I'll be glad to answer any further questions Any help is greatly appreciated :) Thanks.

##### Share on other sites
Guest Anonymous Poster
I would imagine it depends on if you have dri enabled drivers.
Use the command: glxinfo | less
and see if dri is enabled for you.

##### Share on other sites
rinderhack    122
thanks for the quick reply !

I modified my xorg.conf to load the glx and dri modules.

By the way the what is dri ? I'm fairly new and have never heard of it.

I don't intend to render with OpengGL, just want to use plain SDL for the graphics.

anyway this is the output of glxinfo:

name of display: :0.0
display: :0 screen: 0
direct rendering: No
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_SGIS_multisample, GLX_SGIX_fbconfig
client glx vendor string: SGI
client glx version string: 1.4
client glx extensions:
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_SGI_video_sync, GLX_SGIS_multisample, GLX_SGIX_fbconfig,
GLX_SGIX_pbuffer, GLX_SGIX_visual_select_group
GLX extensions:
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_OML_swap_method,
OpenGL vendor string: Mesa project: www.mesa3d.org
OpenGL renderer string: Mesa GLX Indirect
OpenGL version string: 1.2 (1.5 Mesa 6.1)
OpenGL extensions:
GL_ARB_depth_texture, GL_ARB_imaging, GL_ARB_multitexture,
GL_ARB_texture_env_combine, GL_ARB_texture_env_crossbar,
GL_ARB_texture_env_dot3, GL_ARB_texture_mirrored_repeat,
GL_ARB_transpose_matrix, GL_ARB_window_pos, GL_EXT_abgr, GL_EXT_bgra,
GL_EXT_blend_color, GL_EXT_blend_func_separate, GL_EXT_blend_logic_op,
GL_EXT_blend_minmax, GL_EXT_blend_subtract, GL_EXT_clip_volume_hint,
GL_EXT_copy_texture, GL_EXT_draw_range_elements, GL_EXT_fog_coord,
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_stencil_two_side, GL_EXT_stencil_wrap, GL_EXT_subtexture,
GL_EXT_texture, GL_EXT_texture3D, GL_EXT_texture_edge_clamp,
GL_EXT_texture_env_dot3, GL_EXT_texture_lod_bias, GL_EXT_texture_object,
GL_EXT_texture_rectangle, GL_EXT_vertex_array, GL_APPLE_packed_pixels,
GL_ATI_texture_env_combine3, GL_ATI_texture_mirror_once,
GL_ATIX_texture_env_combine3, GL_IBM_texture_mirrored_repeat,
GL_INGR_blend_func_separate, GL_MESA_pack_invert, GL_MESA_ycbcr_texture,
GL_NV_blend_square, GL_NV_point_sprite, GL_NV_texgen_reflection,
GL_NV_texture_rectangle, GL_SGIS_generate_mipmap,
GL_SGIS_texture_border_clamp, GL_SGIS_texture_edge_clamp,
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 24 0 r y . 8 8 8 0 0 16 0 0 0 0 0 0 0 None
0x24 24 tc 0 24 0 r y . 8 8 8 0 0 16 8 16 16 16 0 0 0 None
0x25 24 tc 0 32 0 r y . 8 8 8 8 0 16 8 16 16 16 16 0 0 None
0x26 24 tc 0 32 0 r . . 8 8 8 8 0 16 8 16 16 16 16 0 0 None
0x27 24 dc 0 24 0 r y . 8 8 8 0 0 16 0 0 0 0 0 0 0 None
0x28 24 dc 0 24 0 r y . 8 8 8 0 0 16 8 16 16 16 0 0 0 None
0x29 24 dc 0 32 0 r y . 8 8 8 8 0 16 8 16 16 16 16 0 0 None
0x2a 24 dc 0 32 0 r . . 8 8 8 8 0 16 8 16 16 16 16 0 0 None

what does this mean ?

Thanks :)

##### Share on other sites
DRI is basically a way for applications like an OpenGL implementation to access the graphics hardware, given suitable drivers for the graphics card. The relevant parts of the glxinfo output is:
direct rendering: No

meaning that some part of the GL subsystem is not suitable for DRI, most likely the version of the mesa library you have installed. It can also be due to a missing module (DRI needs (a) AGP modules and (b) a graphics adapter specific module). With me having absolutely no clue how gentoo handles differences between "pure" mesa and the DRI mesa releases, that's all I can tell you.

I can tell you that DRI has absolutely zilch to do with SDL being able to do fast 2D operations though. That's what DGA (a.k.a. "crash me hard", DGA usually just disables the whole graphics system on my machines) supposedly is for.