Removed Voodoo realtime option. Since the gui screen update timing is now

controlled by the 'vga' option and Voodoo2 CMDFIFO thread has the best
performance with realtime mode disabled, this option is now obsolete.
This commit is contained in:
Volker Ruppert 2017-08-18 15:19:30 +00:00
parent 9a1668ac36
commit e187f3907a
6 changed files with 14 additions and 25 deletions

View File

@ -433,12 +433,11 @@ vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest
# VOODOO:
# This defines the Voodoo Graphics emulation (experimental). Currently
# supported models are 'voodoo1' and 'voodoo2'. The Voodoo2 support is not yet
# complete, but almost usable. The 'realtime' option controls the behaviour of
# the timer used for the vertical retrace emulation. The gui screen update
# timing is controlled by the related 'vga' options.
# complete, but almost usable. The gui screen update timing is controlled by
# the related 'vga' options.
#
# Examples:
# voodoo: enabled=1, model=voodoo1, realtime=1
# voodoo: enabled=1, model=voodoo2
#=======================================================================
#voodoo: enabled=1, model=voodoo1

View File

@ -133,7 +133,6 @@ display
voodoo
enabled
model
realtime
keyboard_mouse
keyboard

View File

@ -3828,13 +3828,12 @@ value is 1.
<para>
Example:
<screen>
voodoo: enabled=1, model=voodoo1, realtime=1
voodoo: enabled=1, model=voodoo1
</screen>
This defines the Voodoo Graphics emulation (experimental). Currently
supported models are 'voodoo1' and 'voodoo2'. The Voodoo2 support is
not yet complete, but almost usable. The 'realtime' option controls the
behaviour of the timer used for the vertical retrace emulation. The gui
screen update timing is controlled by the related 'vga' options.
not yet complete, but almost usable. The gui screen update timing is
controlled by the related 'vga' options.
</para>
</section>

View File

@ -1,5 +1,5 @@
.\"Document Author: Timothy R. Butler - tbutler@uninetsolutions.com"
.TH bochsrc 5 "21 May 2017" "bochsrc" "The Bochs Project"
.TH bochsrc 5 "18 Aug 2017" "bochsrc" "The Bochs Project"
.\"SKIP_SECTION"
.SH NAME
bochsrc \- Configuration file for Bochs.
@ -483,12 +483,11 @@ Examples:
.I "voodoo:"
This defines the Voodoo Graphics emulation (experimental). Currently
supported models are 'voodoo1' and 'voodoo2'. The Voodoo2 support is not
yet complete, but almost usable. The 'realtime' option controls the behaviour
of the timer used for the vertical retrace emulation. The gui screen update
timing is controlled by the related 'vga' options.
yet complete, but almost usable. The gui screen update timing is controlled
by the related 'vga' options.
Example:
voodoo: enabled=1, model=voodoo1, realtime=1
voodoo: enabled=1, model=voodoo1
.TP
.I "keyboard:"

View File

@ -109,11 +109,6 @@ void voodoo_init_options(void)
"Selects the Voodoo model to emulate.",
voodoo_model_list,
VOODOO_1, VOODOO_1);
new bx_param_bool_c(menu,
"realtime",
"Voodoo timer realtime",
"If enabled, the Voodoo timer is based on realtime",
1);
enabled->set_dependent_list(menu->clone());
}
@ -223,14 +218,13 @@ void bx_voodoo_c::init(void)
DEV_register_pci_handlers(this, &BX_VOODOO_THIS s.devfunc, BX_PLUGIN_VOODOO,
"Experimental 3dfx Voodoo Graphics (SST-1/2)");
BX_VOODOO_THIS s.vdraw.realtime = SIM->get_param_bool("realtime", base)->get();
if (BX_VOODOO_THIS s.mode_change_timer_id == BX_NULL_TIMER_HANDLE) {
BX_VOODOO_THIS s.mode_change_timer_id = bx_virt_timer.register_timer(this, mode_change_timer_handler,
1000, 0, 0, 0, "voodoo_mode_change");
}
if (BX_VOODOO_THIS s.vertical_timer_id == BX_NULL_TIMER_HANDLE) {
BX_VOODOO_THIS s.vertical_timer_id = bx_virt_timer.register_timer(this, vertical_timer_handler,
50000, 1, 0, BX_VOODOO_THIS s.vdraw.realtime, "vertical_timer");
50000, 1, 0, 0, "vertical_timer");
}
BX_VOODOO_THIS s.vdraw.clock_enabled = 1;
BX_VOODOO_THIS s.vdraw.output_on = 0;
@ -496,7 +490,7 @@ void bx_voodoo_c::after_restore_state(void)
if (BX_VOODOO_THIS s.vdraw.override_on) {
// force update
v->fbi.video_changed = 1;
BX_VOODOO_THIS s.vdraw.frame_start = bx_virt_timer.time_usec(BX_VOODOO_THIS s.vdraw.realtime);
BX_VOODOO_THIS s.vdraw.frame_start = bx_virt_timer.time_usec(0);
BX_VOODOO_THIS update_timing();
DEV_vga_set_override(1, BX_VOODOO_THIS_PTR);
}
@ -605,7 +599,7 @@ void bx_voodoo_c::vertical_timer_handler(void *this_ptr)
{
UNUSED(this_ptr);
BX_VOODOO_THIS s.vdraw.frame_start = bx_virt_timer.time_usec(BX_VOODOO_THIS s.vdraw.realtime);
BX_VOODOO_THIS s.vdraw.frame_start = bx_virt_timer.time_usec(0);
if (v->fbi.cmdfifo[0].cmd_ready) {
cmdfifo_set_event();
@ -701,7 +695,7 @@ void bx_voodoo_c::redraw_area(unsigned x0, unsigned y0, unsigned width,
Bit32u bx_voodoo_c::get_retrace(bx_bool hv)
{
Bit64u time_in_frame = bx_virt_timer.time_usec(BX_VOODOO_THIS s.vdraw.realtime) - BX_VOODOO_THIS s.vdraw.frame_start;
Bit64u time_in_frame = bx_virt_timer.time_usec(0) - BX_VOODOO_THIS s.vdraw.frame_start;
if (time_in_frame >= BX_VOODOO_THIS s.vdraw.vsync_usec) {
return 0;
} else {

View File

@ -40,7 +40,6 @@ typedef struct {
bx_bool override_on;
bx_bool screen_update_pending;
bx_bool gui_update_pending;
bx_bool realtime;
} vdraw;
int mode_change_timer_id;
int vertical_timer_id;