sm501: Log unimplemented raster operation modes
The sm501 currently implements only a very limited set of raster operation modes. After this change, unknown raster operation modes are logged so these can be easily spotted. Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
debc7e7dad
commit
06cb926aaa
@ -706,6 +706,8 @@ static void sm501_2d_operation(SM501State *s)
|
||||
int format_flags = (s->twoD_stretch >> 20) & 0x3;
|
||||
int addressing = (s->twoD_stretch >> 16) & 0xF;
|
||||
int rop_mode = (s->twoD_control >> 15) & 0x1; /* 1 for rop2, else rop3 */
|
||||
/* 1 if rop2 source is the pattern, otherwise the source is the bitmap */
|
||||
int rop2_source_is_pattern = (s->twoD_control >> 14) & 0x1;
|
||||
int rop = s->twoD_control & 0xFF;
|
||||
|
||||
/* get frame buffer info */
|
||||
@ -719,6 +721,27 @@ static void sm501_2d_operation(SM501State *s)
|
||||
abort();
|
||||
}
|
||||
|
||||
if (rop_mode == 0) {
|
||||
if (rop != 0xcc) {
|
||||
/* Anything other than plain copies are not supported */
|
||||
qemu_log_mask(LOG_UNIMP, "sm501: rop3 mode with rop %x is not "
|
||||
"supported.\n", rop);
|
||||
}
|
||||
} else {
|
||||
if (rop2_source_is_pattern && rop != 0x5) {
|
||||
/* For pattern source, we support only inverse dest */
|
||||
qemu_log_mask(LOG_UNIMP, "sm501: rop2 source being the pattern and "
|
||||
"rop %x is not supported.\n", rop);
|
||||
} else {
|
||||
if (rop != 0x5 && rop != 0xc) {
|
||||
/* Anything other than plain copies or inverse dest is not
|
||||
* supported */
|
||||
qemu_log_mask(LOG_UNIMP, "sm501: rop mode %x is not "
|
||||
"supported.\n", rop);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ((s->twoD_source_base & 0x08000000) ||
|
||||
(s->twoD_destination_base & 0x08000000)) {
|
||||
printf("%s: only local memory is supported.\n", __func__);
|
||||
|
Loading…
Reference in New Issue
Block a user