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:
@@ -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,14 +810,15 @@ 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);
|
||||||
|
|
||||||
|
|
||||||
/**************************
|
/**************************
|
||||||
*** setup color keying ***
|
*** setup color keying ***
|
||||||
**************************/
|
**************************/
|
||||||
|
|
||||||
/* setup colorkeying */
|
/* setup colorkeying */
|
||||||
switch(si->dm.space)
|
switch(si->dm.space)
|
||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user