With direct to disk, recording can only begin on an iframe, so you may lose up to one entire i-frame interval worth of frames from your pre-trigger buffer. So whatever your iframe interval is set to, add that number to your pre-trigger frame buffer.
For example, if your iframe interval is 30 and your FPS is 15, and you want one second of video before the motion trigger, then you need a pre-trigger frame buffer size of 45. (15 frames = 1 second, plus 30 for the iframe interval). This will result in you getting 1 to 3 seconds of video before the motion trigger. The amount of pre-trigger video will vary between 1 and 3 seconds depending on the timing of the motion trigger compared to the timing of the iframes in the video stream.