Compare commits

...

2 Commits

Author SHA1 Message Date
joevt 6adba32238 atirage: Update VBLANK bit.
It should not remain set.
2024-04-23 21:35:47 -07:00
joevt d96da6434f atirage: Redraw framebuffer if DAC or fb changes. 2024-04-23 21:35:34 -07:00
1 changed files with 4 additions and 1 deletions

View File

@ -483,6 +483,7 @@ void ATIRage::write_reg(uint32_t reg_offset, uint32_t value, uint32_t size) {
color_buf[1], color_buf[2], 0xFF);
this->dac_wr_index++; // auto-increment color index
this->comp_index = 0; // reset color component index
draw_fb = true;
}
}
break;
@ -773,6 +774,8 @@ void ATIRage::crtc_update() {
if (!need_recalc)
return;
this->draw_fb = true;
// calculate display refresh rate
this->refresh_rate = pixel_clock / this->hori_total / this->vert_total;
@ -892,7 +895,7 @@ void ATIRage::get_cursor_position(int& x, int& y) {
int ATIRage::device_postinit()
{
this->vbl_cb = [this](uint8_t irq_line_state) {
insert_bits<uint32_t>(this->regs[ATI_CRTC_INT_CNTL], irq_line_state, ATI_CRTC_VBLANK, 1);
insert_bits<uint32_t>(this->regs[ATI_CRTC_INT_CNTL], irq_line_state, ATI_CRTC_VBLANK, irq_line_state);
if (irq_line_state) {
set_bit(this->regs[ATI_CRTC_INT_CNTL], ATI_CRTC_VBLANK_INT);
set_bit(this->regs[ATI_CRTC_INT_CNTL], ATI_CRTC_VLINE_INT);