Reference Manual - 0.9.25
IDirectFBDisplayLayer   GetCurrentOutputField

For an interlaced display, this returns the currently inactive field: 0 for the top field, and 1 for the bottom field.

GetCurrentOutputField (
  IDirectFBDisplayLayer   * thiz,
  int   * ret_field
);

The inactive field is the one you should draw to next to avoid tearing, the active field is the one currently being displayed.

For a progressive output, this should always return 0. We should also have some other call to indicate whether the display layer is interlaced or progressive, but this is a start.