bug-freedink
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug-freedink] Screen or Sprites Flickering


From: beuc
Subject: Re: [Bug-freedink] Screen or Sprites Flickering
Date: Thu, 16 Mar 2017 20:44:33 +0100
User-agent: Mutt/1.5.23 (2014-03-12)

Hi,

On Mon, Mar 13, 2017 at 10:05:14PM -0700, Eric Duhamel wrote:
> On March 13, 2017 2:31:00 PM PDT, address@hidden wrote:
> >
> >Would "tearing" (https://en.wikipedia.org/wiki/Screen_tearing)
> >appropriately qualify this issue?
> >
> >This may happen when SDL is requesting a hardware-accelerated buffer,
> >but the graphics backend mistakenly updates the graphics video while
> >it's being redrawn.
> >
> 
> Perhaps; it does sound very similar, though applied to moving images rather 
> than still scenes as in Freedink. 
> 
> >
> >I'm puzzled that other SDL games are running fine under the same
> >setup.  Maybe they are using SDL+OpenGL (rather than plain SDL), or
> >maybe they are not requesting hardware-accelerated 2D surfaces...
> >
> >I have a RPI 1 lying around so if you give me instructions on how to
> >reproduce your setup I may have a look.
> >
> 
> I'm using a Pi 1 as well. If you want to try it, all you must do is
> install Raspbian Jessie Lite. The SDL games I am testing follow.
> 
>     $ sudo apt install freedink heroes kobodeluxe tecnoballz
> 
> >
> >Recent FreeDink (SDL2) versions advertise as 1.09 (in the title bar
> >and in --version output, though it's still 1.08 in the in-game title
> >screen) so make sure the version you tried is 1.09.
> >
> 
> Okay I'm afraid I may have jumped the gun, then. I am presently
> trying to compile Freedink from git; encountering a dependency issue
> needing SDL2 > 2.0.0. I probably need to follow the instructions at
> the top of BUILD. Hope I can manage.

OK so I reflashed my RPI with its stock Raspbian Wheezy.

I think I had already witnessed this issue and at the time I figured
there was nothing to do, since the framebuffer backend had never
really worked for me in my previous setups.

Indeed FreeDink/SDL requests a hardware-accelerated surface with
double-buffering, and according to freedink --debug, it gets it.

However it does not fulfill the contract, it seems we get a
single-buffer surface, which causes the flickering.
(incidentally you were right, this is flickering and not tearing)

You should be able to get the exact same issue in kobodl by selecting
Options > Video > Software Shadow Buffer > No
(thanks for reminding me about kobodl btw, nice memories :))

Currently FreeDink 108.4 does not support single-buffered graphics
(in particular when it advertises itself as double-buffered ;)).

Technical note: I should be possible to write a local patch to the
flip_it() function so as to introduce an extra buffer.  That would
hurt performances in general, but would fix the flickering on
RPI/framebuffer.  Of course the other option is to run FreeDink under
X11 where it works.  Would either be an option for you?

With SDL2 I believe the framebuffer is not directly supported anymore,
(http://forums.libsdl.org/viewtopic.php?t=9661)
it will be either X11/software, or OpenGL.  Does the RPI still require
proprietary drivers (cf. /opt/vc/) for OpenGL, or did the situation
improve?

Cheers!
Sylvain



reply via email to

[Prev in Thread] Current Thread [Next in Thread]