washingtondc-emu / washingtondc

Open-source Sega Dreamcast emulator
http://www.washemu.org
GNU General Public License v3.0
240 stars 7 forks source link

bad framebuffer emulation #62

Open snickerbockers opened 5 years ago

snickerbockers commented 5 years ago

in pvr2_ta_startrender, this error gets triggered a lot when LOG_DBG is enabled:

    unsigned read_width, read_height;
    framebuffer_get_render_target_dims(pvr2, tgt, &read_width, &read_height);
    if (read_width != width || read_height != height) {
        /*                                                                                                                                                                                                                                                                                                                   
         * Also I suspect that the read-width needs to be doubled because it's                                                                                                                                                                                                                                               
         * always half what I expect it to be.  That's fairly reasonably and                                                                                                                                                                                                                                                 
         * not nearly as exasperating as the case described above.                                                                                                                                                                                                                                                           
         */
        LOG_DBG("Warning: read-dimensions of framebuffer are %ux%u, but "
                "write-dimensions are %ux%u\n",
                read_width, read_height, width, height);
    }

It happens because WashingtonDC's heuristic for getting the the write-dimensions isn't always correct; that in turn is probably caused by not having the tile rendering emulated at all.