I'm not sure if anyone else has this problem, but in some computers LOVE fps seems to be too high, even with vsync on. I made a small game for a friend here and the games runs at 600 fps in his PC, even though it runs smoothly at 60fps in mine. Is there a reason for that? I tried to fix this problem using a rewrite of lua.run() function but I'm unsure whether this is the best solution or not.
maxfps = 60
function love.run()
if love.math then
love.math.setRandomSeed(os.time())
for i=1,3 do love.math.random() end
end
if love.event then
love.event.pump()
end
if love.load then love.load(arg) end
-- We don't want the first frame's dt to include time taken by love.load.
if love.timer then love.timer.step() end
local dt = 0
-- Main loop time.
while true do
-- Process events.
local frametimestart = love.timer.getTime()
if love.event then
love.event.pump()
for e,a,b,c,d in love.event.poll() do
if e == "quit" then
if not love.quit or not love.quit() then
if love.audio then
love.audio.stop()
end
return
end
end
love.handlers[e](a,b,c,d)
end
end
-- Update dt, as we'll be passing it to update
if love.timer then
love.timer.step()
dt = love.timer.getDelta()
end
-- Call update and draw
if love.update then love.update(dt) end -- will pass 0 if love.timer is disabled
if love.window and love.graphics and love.window.isCreated() then
love.graphics.clear()
love.graphics.origin()
if love.draw then love.draw() end
love.graphics.present()
end
local frametimeend = love.timer.getTime()
local framedelta = frametimeend - frametimestart
if maxfps and maxfps > 0 then -- 0 is unlimited
local max_dt = 1/maxfps
local sleeptime = max_dt - framedelta
if sleeptime >= 0.001 then -- love will truncate anything less than 1ms down to 0 internally
love.timer.sleep(sleeptime)
end
else
if love.timer then love.timer.sleep(0.001) end
end
end
end
megalukes wrote:I'm not sure if anyone else has this problem, but in some computers LOVE fps seems to be too high, even with vsync on. I made a small game for a friend here and the games runs at 600 fps in his PC, even though it runs smoothly at 60fps in mine. Is there a reason for that?
Maybe his video driver is forcing vsync off? There might be an option for that in his driver settings.
If his system is using a really old Intel integrated GPU, its drivers might just not support vsync in OpenGL programs.
megalukes wrote:I'm not sure if anyone else has this problem, but in some computers LOVE fps seems to be too high, even with vsync on. I made a small game for a friend here and the games runs at 600 fps in his PC, even though it runs smoothly at 60fps in mine. Is there a reason for that?
Maybe his video driver is forcing vsync off? There might be an option for that in his driver settings.
If his system is using a really old Intel integrated GPU, its drivers might just not support vsync in OpenGL programs.
Either way, unless you are doing some tricky graphics stuff more fps shouldn't do anything (if you use dt correctly)
megalukes wrote:I'm not sure if anyone else has this problem, but in some computers LOVE fps seems to be too high, even with vsync on. I made a small game for a friend here and the games runs at 600 fps in his PC, even though it runs smoothly at 60fps in mine. Is there a reason for that?
Maybe his video driver is forcing vsync off? There might be an option for that in his driver settings.
If his system is using a really old Intel integrated GPU, its drivers might just not support vsync in OpenGL programs.
Oh, that was the problem. Thank you so much, slime!
megalukes wrote:I'm not sure if anyone else has this problem, but in some computers LOVE fps seems to be too high, even with vsync on. I made a small game for a friend here and the games runs at 600 fps in his PC, even though it runs smoothly at 60fps in mine. Is there a reason for that?
Maybe his video driver is forcing vsync off? There might be an option for that in his driver settings.
If his system is using a really old Intel integrated GPU, its drivers might just not support vsync in OpenGL programs.
Either way, unless you are doing some tricky graphics stuff more fps shouldn't do anything (if you use dt correctly)
Yeah I have seen a lot of people on the forums who want to cap the fps by using love.sleep and other odd solutions. It is the other way around, come for help when your fps is too low!