From: Liran Alon <liran.alon@oracle.com>
To: qemu-devel@nongnu.org
Cc: pbonzini@redhat.com, mtosatti@redhat.com, rth@twiddle.net,
habkost@redhat.com, kraxel@redhat.com,
Leonid Shatz <leonid.shatz@oracle.com>,
Liran Alon <liran.alon@oracle.com>
Subject: [Qemu-devel] [PATCH 21/29] vmsvga: Use AND mask bpp parameter in SVGA_CMD_DEFINE_CURSOR
Date: Thu, 9 Aug 2018 14:46:34 +0300 [thread overview]
Message-ID: <1533815202-11967-22-git-send-email-liran.alon@oracle.com> (raw)
In-Reply-To: <1533815202-11967-1-git-send-email-liran.alon@oracle.com>
From: Leonid Shatz <leonid.shatz@oracle.com>
Prefer variable names of cursor structure from VMware SVGA DevKit.
In addition, make sure to use the AND mask bpp parameter in
SVGA_CMD_DEFINE_CURSOR.
Signed-off-by: Leonid Shatz <leonid.shatz@oracle.com>
Reviewed-by: Darren Kenny <darren.kenny@oracle.com>
Signed-off-by: Liran Alon <liran.alon@oracle.com>
---
hw/display/vmware_vga.c | 26 +++++++++++++++-----------
1 file changed, 15 insertions(+), 11 deletions(-)
diff --git a/hw/display/vmware_vga.c b/hw/display/vmware_vga.c
index d79b3400452b..ef2c8bdbf5be 100644
--- a/hw/display/vmware_vga.c
+++ b/hw/display/vmware_vga.c
@@ -616,9 +616,10 @@ struct vmsvga_cursor_definition_s {
uint32_t width;
uint32_t height;
int id;
- uint32_t bpp;
int hot_x;
int hot_y;
+ uint32_t and_mask_bpp; // Value must be 1 or equal to BITS_PER_PIXEL
+ uint32_t xor_mask_bpp; // Value must be 1 or equal to BITS_PER_PIXEL
uint32_t and_mask[1024];
uint32_t xor_mask[4096];
};
@@ -636,7 +637,7 @@ static inline void vmsvga_cursor_define(struct vmsvga_state_s *s,
qc = cursor_alloc(c->width, c->height);
qc->hot_x = c->hot_x;
qc->hot_y = c->hot_y;
- switch (c->bpp) {
+ switch (c->xor_mask_bpp) {
case 1:
cursor_set_mono(qc, 0xffffff, 0x000000, (void *)c->xor_mask,
1, (void *)c->and_mask);
@@ -659,7 +660,7 @@ static inline void vmsvga_cursor_define(struct vmsvga_state_s *s,
break;
default:
fprintf(stderr, "%s: unhandled bpp %d, using fallback cursor\n",
- __func__, c->bpp);
+ __func__, c->xor_mask_bpp);
cursor_put(qc);
qc = cursor_builtin_left_ptr();
}
@@ -794,15 +795,18 @@ static void vmsvga_fifo_run(struct vmsvga_state_s *s)
cursor.hot_y = vmsvga_fifo_read(s);
cursor.width = x = vmsvga_fifo_read(s);
cursor.height = y = vmsvga_fifo_read(s);
- vmsvga_fifo_read(s);
- cursor.bpp = vmsvga_fifo_read(s);
+ cursor.and_mask_bpp = vmsvga_fifo_read(s);
+ cursor.xor_mask_bpp = vmsvga_fifo_read(s);
- args = SVGA_BITMAP_SIZE(x, y) + SVGA_PIXMAP_SIZE(x, y, cursor.bpp);
+ args = SVGA_PIXMAP_SIZE(x, y, cursor.and_mask_bpp) +
+ SVGA_PIXMAP_SIZE(x, y, cursor.xor_mask_bpp);
if (cursor.width > 256
|| cursor.height > 256
- || cursor.bpp > 32
- || SVGA_BITMAP_SIZE(x, y) > ARRAY_SIZE(cursor.and_mask)
- || SVGA_PIXMAP_SIZE(x, y, cursor.bpp)
+ || cursor.and_mask_bpp > 32
+ || cursor.xor_mask_bpp > 32
+ || SVGA_PIXMAP_SIZE(x, y, cursor.and_mask_bpp)
+ > ARRAY_SIZE(cursor.and_mask)
+ || SVGA_PIXMAP_SIZE(x, y, cursor.xor_mask_bpp)
> ARRAY_SIZE(cursor.xor_mask)) {
goto badcmd;
}
@@ -812,10 +816,10 @@ static void vmsvga_fifo_run(struct vmsvga_state_s *s)
goto rewind;
}
- for (args = 0; args < SVGA_BITMAP_SIZE(x, y); args++) {
+ for (args = 0; args < SVGA_PIXMAP_SIZE(x, y, cursor.and_mask_bpp); args++) {
cursor.and_mask[args] = vmsvga_fifo_read_raw(s);
}
- for (args = 0; args < SVGA_PIXMAP_SIZE(x, y, cursor.bpp); args++) {
+ for (args = 0; args < SVGA_PIXMAP_SIZE(x, y, cursor.xor_mask_bpp); args++) {
cursor.xor_mask[args] = vmsvga_fifo_read_raw(s);
}
#ifdef HW_MOUSE_ACCEL
--
1.9.1
next prev parent reply other threads:[~2018-08-09 11:48 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-08-09 11:46 [Qemu-devel] [PATCH 00/29]: vmsvga: Various fixes and enhancements Liran Alon
2018-08-09 11:46 ` [Qemu-devel] [PATCH 01/29] vmsvga: Stop using redundant fifo pointer variable Liran Alon
2018-08-09 11:46 ` [Qemu-devel] [PATCH 02/29] vmsvga: Group together commands by their handling Liran Alon
2018-08-09 11:46 ` [Qemu-devel] [PATCH 03/29] vmsvga: Explictly mark deprecated commands Liran Alon
2018-08-10 9:44 ` Gerd Hoffmann
2018-08-09 11:46 ` [Qemu-devel] [PATCH 04/29] vmsvga: Do not print error message for ignored commands Liran Alon
2018-08-09 11:46 ` [Qemu-devel] [PATCH 05/29] vmsvga: Show registers and commands on debug output as decimals Liran Alon
2018-08-09 11:46 ` [Qemu-devel] [PATCH 06/29] vmsvga: Fix parse of SVGA_CMD_UPDATE_VERBOSE to consider additional opaque cookie Liran Alon
2018-08-10 10:00 ` Gerd Hoffmann
2018-08-11 0:04 ` Liran Alon
2018-08-09 11:46 ` [Qemu-devel] [PATCH 07/29] vmsvga: Handle SVGA_CMD_FRONT_ROP_FILL command Liran Alon
2018-08-09 11:46 ` [Qemu-devel] [PATCH 08/29] vmsvga: Parse SVGA_CMD_FENCE command to avoid FIFO desync Liran Alon
2018-08-09 11:46 ` [Qemu-devel] [PATCH 09/29] vmsvga: Account for length of command word when parsing commands Liran Alon
2018-08-09 11:46 ` [Qemu-devel] [PATCH 10/29] vmsvga: Remove treatment of deprecated commands as Nop Liran Alon
2018-08-09 11:46 ` [Qemu-devel] [PATCH 11/29] vmsvga: Remove handler of SVGA_CMD_INVALID_CMD Liran Alon
2018-08-09 11:46 ` [Qemu-devel] [PATCH 12/29] vmsvga: Add definitions of FIFO registers and report their number Liran Alon
2018-08-09 11:46 ` [Qemu-devel] [PATCH 13/29] vmsvga: Add support for extended FIFO registers Liran Alon
2018-08-09 11:46 ` [Qemu-devel] [PATCH 14/29] vmsvga: Setup interrupt pin Liran Alon
2018-08-09 11:46 ` [Qemu-devel] [PATCH 15/29] vmsvga: Add interrupt mask and status registers Liran Alon
2018-08-09 11:46 ` [Qemu-devel] [PATCH 16/29] vmsvga: Add framework code for SVGA command to raise interrupt Liran Alon
2018-08-09 11:46 ` [Qemu-devel] [PATCH 17/29] vmsvga: Define interrupt source flags for interrupt status and mask registers Liran Alon
2018-08-09 11:46 ` [Qemu-devel] [PATCH 18/29] vmsvga: Add support for SVGA_IRQFLAG_FIFO_PROGRESS Liran Alon
2018-08-09 11:46 ` [Qemu-devel] [PATCH 19/29] vmsvga: Handle SVGA_CMD_FENCE command Liran Alon
2018-08-09 11:46 ` [Qemu-devel] [PATCH 20/29] vmsvga: Use standard names for params defining hardware cursor image Liran Alon
2018-08-09 11:46 ` Liran Alon [this message]
2018-08-09 11:46 ` [Qemu-devel] [PATCH 22/29] vmsvga: Increase size of cursor AND bitmask Liran Alon
2018-08-09 11:46 ` [Qemu-devel] [PATCH 23/29] vmsvga: Implement initial support for rgb-alpha cursors Liran Alon
2018-08-10 9:51 ` Gerd Hoffmann
2018-08-09 11:46 ` [Qemu-devel] [PATCH 24/29] vmsvga: Add support for SVGA_FIFO_CAP_CURSOR_BYPASS_3 Liran Alon
2018-08-09 11:46 ` [Qemu-devel] [PATCH 25/29] vmsvga: Add basic support for GMR registers and FIFO commands Liran Alon
2018-08-09 11:46 ` [Qemu-devel] [PATCH 26/29] vmsvga: Add basic support for display topology Liran Alon
2018-08-10 9:56 ` Gerd Hoffmann
2018-08-11 0:00 ` Liran Alon
2018-08-13 10:39 ` Gerd Hoffmann
2018-08-09 11:46 ` [Qemu-devel] [PATCH 27/29] vmsvga: Add support for pitchlock register (a display line stride) Liran Alon
2018-08-09 11:46 ` [Qemu-devel] [PATCH 28/29] vmsvga: Introduce new function for reporting device capabilities Liran Alon
2018-08-10 9:58 ` Gerd Hoffmann
2018-08-09 11:46 ` [Qemu-devel] [PATCH 29/29] vmsvga: Don't allow setting screen size with zero width or height Liran Alon
2018-08-10 10:14 ` [Qemu-devel] [PATCH 00/29]: vmsvga: Various fixes and enhancements Gerd Hoffmann
2018-08-11 0:04 ` Liran Alon
2018-08-13 10:54 ` Gerd Hoffmann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1533815202-11967-22-git-send-email-liran.alon@oracle.com \
--to=liran.alon@oracle.com \
--cc=habkost@redhat.com \
--cc=kraxel@redhat.com \
--cc=leonid.shatz@oracle.com \
--cc=mtosatti@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).