added HW retrace sync (preventing overlay update glitches during resizing/moving windows etc)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14210 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Rudolf Cornelissen
2005-09-20 14:44:13 +00:00
parent 64f6fcfb1d
commit 19c9c0bb0e
+10 -6
View File
@@ -1,5 +1,5 @@
/* Nvidia TNT and GeForce Back End Scaler functions */ /* Nvidia TNT and GeForce Back End Scaler functions */
/* Written by Rudolf Cornelissen 05/2002-9/2004 */ /* Written by Rudolf Cornelissen 05/2002-9/2005 */
#define MODULE_BIT 0x00000200 #define MODULE_BIT 0x00000200
@@ -389,7 +389,7 @@ static void eng_bes_program_move_overlay(move_overlay_info moi)
*************************************/ *************************************/
/* Done in card hardware: /* Done in card hardware:
* double buffered registers + trigger if programming complete feature. */ * double buffered registers + trigger during 'BES-'VBI feature. */
/************************************** /**************************************
@@ -705,8 +705,7 @@ status_t eng_configure_bes
*************************************/ *************************************/
/* Done in card hardware: /* Done in card hardware:
* double buffered registers + trigger if programming complete feature. */ * double buffered registers + trigger during 'BES-'VBI feature. */
//fixme probably... need sw sync(?)
/************************************** /**************************************
@@ -811,9 +810,10 @@ status_t eng_configure_bes
BESW(VID1_CTL, 0x000f0081); BESW(VID1_CTL, 0x000f0081);
} }
//fixme: best move this instruction to be the last one done (so do after keying)
/* enable colorkeying (b0 = 1), enable chromakeying (b1 = 1), Vid1 on top of Vid3 (b20 = 0), /* enable colorkeying (b0 = 1), enable chromakeying (b1 = 1), Vid1 on top of Vid3 (b20 = 0),
* all registers are loaded immediately (b29 = 1), Vid1 cmds fire (b31 = 1) */ * all registers are loaded during the next 'BES-'VBI (b28 = 1), Vid1 cmds fire (b31 = 1) */
BESW(COMPOSE, 0xa0000000);//tst, fixme: 9 = vbi load all regs BESW(COMPOSE, 0x90000000);
/************************** /**************************
@@ -862,6 +862,10 @@ status_t eng_release_bes()
/* setup BES control: disable scaler (b0 = 0) */ /* setup BES control: disable scaler (b0 = 0) */
BESW(VID1_CTL, 0x00000000); BESW(VID1_CTL, 0x00000000);
/* make sure the 'disable' command really gets executed: (no 'VBI' anymore if BES disabled) */
/* all registers are loaded immediately (b29 = 1), Vid1 cmds fire (b31 = 1) */
BESW(COMPOSE, 0xa0000000);
/* note that overlay is not in use (for eng_bes_move_overlay()) */ /* note that overlay is not in use (for eng_bes_move_overlay()) */
si->overlay.active = false; si->overlay.active = false;