Performance problem

General discussion about LÖVE, Lua, game development, puns, and unicorns.
User avatar
TsT
Party member
Posts: 161
Joined: Thu Sep 25, 2008 7:04 pm
Location: France
Contact:

Performance problem

Post by TsT » Wed Oct 22, 2008 4:13 pm

After reading this post :
Tenoch wrote:Well, the "official" ubuntu deb of Löve works with Ubuntu on the Eee. (I run Ubuntu-eee, but i'm pretty sure it's really the same).

Unfortunately, perfs are terrible. I don't know the reason, but i suppose it has to do with the fact that Löve relies on OpenGL and hardware acceleration for everything. Almost all "real time" demos posted here have a FPS so low it becomes unplayable.
This is too bad since the Eee has a quite correct processor, and plays "pure" SDL games really fine.
Maybe we'd need a "SDL render" option in Löve, even if it would propose less features (like this really neat seamless rotation and zoom of sprites). But I don't know if it would need a lot of work or not. I think i reaad somewhere that Löve didn't even use SDL_Surface at all, so I guess it would need a lot of rewriting.

Too bad. For now I'm back to plain old SDL calls, and wrapping stuff in Lua...
I'm starting to tell what I got.

I have started to code with love on my personnal laptop computer (~4-5 years old, with nvidia gforce ...) I got a very good performance like more than 1000 FPS on a very simple love sample, and between 100-250 FPS with my actual game.

After that I have checked on 2 office computers (less than 2 years old).
1 (workstation) Dell optiplex 755 and 1 (laptop) Dell Latitude D620,
both have Intel Graphics Controller.

And both I got less than 100 FPS on sample and 2-3 FPS with my game !

Is it a bug or love need a "true" 3d accelerated chipset ?


Some technical details :

Code: Select all

00:02.0 VGA compatible controller: Intel Corporation 82Q35 Express Integrated Graphics Controller (rev 02)
00:02.1 Display controller: Intel Corporation 82Q35 Express Integrated Graphics Controller (rev 02)

Code: Select all

00:02.0 VGA compatible controller: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller (rev 03)
00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller (rev 03)

glxgears -info
GL_RENDERER   = Mesa DRI Intel(R) 945GM 20061017 x86/MMX/SSE2
GL_VERSION    = 1.3 Mesa 7.0.4
GL_VENDOR     = Tungsten Graphics, Inc
GL_EXTENSIONS = GL_ARB_depth_texture GL_ARB_fragment_program GL_ARB_imaging GL_ARB_multisample GL_ARB_multitexture GL_ARB_point_parameters GL_ARB_shadow 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_cull_vertex 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_shadow_funcs 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_OES_read_format 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_SGIX_depth_texture GL_SUN_multi_draw_arrays

My projects current projects : dragoon-framework (includes lua-newmodule, lua-provide, lovemodular, , classcommons2, and more ...)

User avatar
rude
Administrator
Posts: 1051
Joined: Mon Feb 04, 2008 3:58 pm
Location: Oslo, Norway

Re: Performance problem

Post by rude » Thu Oct 23, 2008 8:08 am

A long shot, but could it be that you're using line stipple?

User avatar
TsT
Party member
Posts: 161
Joined: Thu Sep 25, 2008 7:04 pm
Location: France
Contact:

Re: Performance problem

Post by TsT » Thu Oct 23, 2008 8:47 am

rude wrote:A long shot, but could it be that you're using line stipple?
Not at all. And I got same little poor performance with a simple love.graphics.rectangle(...)

This is my complete list of love functions called (maybe not really usefull :D)

Code: Select all

love.graphics.circle(
love.graphics.draw(
love.graphics.drawf(
love.graphics.getHeight(
love.graphics.getLineWidth(
love.graphics.getWidth(
love.graphics.line(
love.graphics.newFont(
love.graphics.newImage(
love.graphics.rectangle(
love.graphics.setCaption(
love.graphics.setColor(
love.graphics.setColorMode(
love.graphics.setFont(
love.graphics.setLine(
love.graphics.setLineStyle(
love.graphics.setLineWidth(
love.graphics.setScissor(
love.graphics.triangle(
love.mouse.getPosition(
love.mouse.getX(
love.mouse.getY(
love.mouse.isDown(
love.mouse.isVisible(
love.mouse.setPosition(
love.mouse.setVisible(
love.system.exit(
love.system.grabInput(
love.timer.getFPS(
I will try to make some sample to see if one function than consume very more resource than others.

To be continue...
My projects current projects : dragoon-framework (includes lua-newmodule, lua-provide, lovemodular, , classcommons2, and more ...)

User avatar
rude
Administrator
Posts: 1051
Joined: Mon Feb 04, 2008 3:58 pm
Location: Oslo, Norway

Re: Performance problem

Post by rude » Thu Oct 23, 2008 6:44 pm

If you get horrible performance even on a simple shape program, then maybe you should start testing some other OpenGL apps.

Thanks for providing information about VGA-controllers etc -- I'll start logging this for future use.

(Line stipple: there is a bug in the OpenGL-implementation on my laptop [XP, ATI X1250] which brings performance down to 1-2 FPS when using line stipple, regardless of the script complexity.)

User avatar
TsT
Party member
Posts: 161
Joined: Thu Sep 25, 2008 7:04 pm
Location: France
Contact:

love benchmark

Post by TsT » Thu Oct 30, 2008 5:45 pm

Hello,

I have built a simple love benchmark to show my performance problem.
perftest.love
simple love benchmark ; perftest v0.2 20081030
(13.5 KiB) Downloaded 312 times
On my personnal (little old) laptop I got :
hight.png
Good perf!
hight.png (21.35 KiB) Viewed 5787 times
On my office (not really old) laptop, I got :
slow.png
Poor perf : 22FPS for 35 rectangles!
slow.png (16.67 KiB) Viewed 5786 times
And you what FPS result do you have ?

Regards,
My projects current projects : dragoon-framework (includes lua-newmodule, lua-provide, lovemodular, , classcommons2, and more ...)

User avatar
bartbes
Sex machine
Posts: 4946
Joined: Fri Aug 29, 2008 10:35 am
Location: The Netherlands
Contact:

Re: Performance problem

Post by bartbes » Thu Oct 30, 2008 5:53 pm

Don't know if it's windows or the Nvidia driver, however it looks like I've got frame limiter on as I get 60fps everywhere.

u9_
Citizen
Posts: 54
Joined: Thu Oct 23, 2008 7:12 am

Re: Performance problem

Post by u9_ » Thu Oct 30, 2008 9:37 pm

Same here. 60fps everywhere, on windows, Nvidia 8600GTS

surtic
Citizen
Posts: 74
Joined: Sat Jul 12, 2008 12:18 am

Re: Performance problem

Post by surtic » Thu Oct 30, 2008 10:36 pm

My monitor's refresh rate is 75Hz (yes, a CRT). I'm getting 76 fps.
I am guessing that LCDs with their 60Hz get 60 fps for a reason.

If I add game.conf with vsync=false I get between 976 and 2090 fps.

User avatar
rude
Administrator
Posts: 1051
Joined: Mon Feb 04, 2008 3:58 pm
Location: Oslo, Norway

Re: Performance problem

Post by rude » Fri Oct 31, 2008 2:22 am

Here are the results on my AMD4400+/Geforce9800GTX:
perf.png
perf.png (17.11 KiB) Viewed 5738 times
Obviously with vsync disabled. Here's a new version of perftest.love with vsync disabled:
perftest.love
(13.6 KiB) Downloaded 273 times
If you still get 60FPS, 75FPS or something which looks like a refresh rate, then your graphics driver is set to "force vsync", and you have to change the setting manually to something like "let the application decide".

I'll post results for more machines later.

User avatar
bartbes
Sex machine
Posts: 4946
Joined: Fri Aug 29, 2008 10:35 am
Location: The Netherlands
Contact:

Re: Performance problem

Post by bartbes » Fri Oct 31, 2008 6:37 am

On Ubuntu Linux 8.10 (clean install), without vsync, Geforce 8500:
perftest.png
perftest.png (14.53 KiB) Viewed 5742 times
surtic wrote:I am guessing that LCDs with their 60Hz get 60 fps for a reason.
I have a 60 Hz CRT

(I know I don't have the best computer...)

Post Reply

Who is online

Users browsing this forum: Bing [Bot] and 25 guests