New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 594885 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Apr 2016
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

Mouse cursor in cirrus drm

Project Member Reported by marc...@chromium.org, Mar 15 2016

Issue description

We love it, it's awesome, life without it is hard. Black and white cursors are more than enough to use a VM.
 

Comment 1 by za...@chromium.org, Mar 15 2016

Cirrus only supports 32x32 or 16x16 cursors, which means it will be black and white and clipped if Chrome gives it a 64x64 cursor.

Comment 2 by za...@chromium.org, Mar 15 2016

Nevermind, it does support 64x64 cursors.
Project Member

Comment 3 by bugdroid1@chromium.org, Mar 29 2016

Labels: merge-merged-chromeos-3.14
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/f60867c0c5dbd7271f4564b197876cbd71047468

commit f60867c0c5dbd7271f4564b197876cbd71047468
Author: Zach Reizner <zachr@google.com>
Date: Fri Mar 18 23:07:14 2016

CHROMIUM: drm/cirrus: implement hardware cursor support

This CL implements hardware support for cursors through cirrus DRM. It
only supports ARGB 8-bit cursors from userspace, and downconverts them
to 1-bit black and white with masking, which is all cirrus hardware can
support. Only cursors with size 32x32 or 64x64 will work.

The intention of adding cursor support is to make it far easier to use
Chromium OS in QEMU.

TEST=ui or drm_cursor_test in QEMU
BUG= chromium:594885 

Change-Id: I9b670787cefcfed7d89f2e420fdc9d74b2c832d0
Signed-off-by: Zach Reizner <zachr@google.com>
Reviewed-on: https://chromium-review.googlesource.com/333709
Commit-Ready: Zach Reizner <zachr@chromium.org>
Tested-by: Zach Reizner <zachr@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/f60867c0c5dbd7271f4564b197876cbd71047468/drivers/gpu/drm/cirrus/cirrus_mode.c
[modify] https://crrev.com/f60867c0c5dbd7271f4564b197876cbd71047468/drivers/gpu/drm/cirrus/cirrus_main.c
[modify] https://crrev.com/f60867c0c5dbd7271f4564b197876cbd71047468/drivers/gpu/drm/cirrus/cirrus_ttm.c
[modify] https://crrev.com/f60867c0c5dbd7271f4564b197876cbd71047468/drivers/gpu/drm/cirrus/cirrus_drv.h

Comment 4 by za...@chromium.org, Mar 29 2016

Starting to port this to kernel versions
3.8
3.10
3.18
4.4
Project Member

Comment 5 by bugdroid1@chromium.org, Mar 30 2016

Labels: merge-merged-chromeos-3.18
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/cf8deedc29a373d5b4421be10131bab1d33aec72

commit cf8deedc29a373d5b4421be10131bab1d33aec72
Author: Zach Reizner <zachr@google.com>
Date: Fri Mar 18 23:07:14 2016

CHROMIUM: drm/cirrus: implement hardware cursor support

This CL implements hardware support for cursors through cirrus DRM. It
only supports ARGB 8-bit cursors from userspace, and downconverts them
to 1-bit black and white with masking, which is all cirrus hardware can
support. Only cursors with size 32x32 or 64x64 will work.

The intention of adding cursor support is to make it far easier to use
Chromium OS in QEMU.

TEST=ui or drm_cursor_test in QEMU
BUG= chromium:594885 

(cherry picked from f60867c0c5dbd7271f4564b197876cbd71047468)
Change-Id: Iacc6b5809920ec91ca24458e83d1892052ca05f4
Signed-off-by: Zach Reizner <zachr@google.com>
Reviewed-on: https://chromium-review.googlesource.com/335579
Commit-Ready: Zach Reizner <zachr@chromium.org>
Tested-by: Zach Reizner <zachr@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>
Reviewed-by: Haixia Shi <hshi@chromium.org>

[modify] https://crrev.com/cf8deedc29a373d5b4421be10131bab1d33aec72/drivers/gpu/drm/cirrus/cirrus_mode.c
[modify] https://crrev.com/cf8deedc29a373d5b4421be10131bab1d33aec72/drivers/gpu/drm/cirrus/cirrus_main.c
[modify] https://crrev.com/cf8deedc29a373d5b4421be10131bab1d33aec72/drivers/gpu/drm/cirrus/cirrus_ttm.c
[modify] https://crrev.com/cf8deedc29a373d5b4421be10131bab1d33aec72/drivers/gpu/drm/cirrus/cirrus_drv.h

Project Member

Comment 6 by bugdroid1@chromium.org, Mar 31 2016

Labels: merge-merged-chromeos-3.10
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/7ef590cdcc5a0f8fb04704fe3a822ac940376c76

commit 7ef590cdcc5a0f8fb04704fe3a822ac940376c76
Author: Zach Reizner <zachr@google.com>
Date: Fri Mar 18 23:07:14 2016

CHROMIUM: drm/cirrus: implement hardware cursor support

This CL implements hardware support for cursors through cirrus DRM. It
only supports ARGB 8-bit cursors from userspace, and downconverts them
to 1-bit black and white with masking, which is all cirrus hardware can
support. Only cursors with size 32x32 or 64x64 will work.

The intention of adding cursor support is to make it far easier to use
Chromium OS in QEMU.

TEST=ui or drm_cursor_test in QEMU
BUG= chromium:594885 

Signed-off-by: Zach Reizner <zachr@google.com>
(cherry picked from commit f60867c0c5dbd7271f4564b197876cbd71047468)

Change-Id: I098481d80bbcca7034227ad7d97fc3e8bdd9f12a
Reviewed-on: https://chromium-review.googlesource.com/336300
Commit-Ready: Zach Reizner <zachr@chromium.org>
Tested-by: Zach Reizner <zachr@chromium.org>
Reviewed-by: Haixia Shi <hshi@chromium.org>

[modify] https://crrev.com/7ef590cdcc5a0f8fb04704fe3a822ac940376c76/drivers/gpu/drm/cirrus/cirrus_mode.c
[modify] https://crrev.com/7ef590cdcc5a0f8fb04704fe3a822ac940376c76/drivers/gpu/drm/cirrus/cirrus_main.c
[modify] https://crrev.com/7ef590cdcc5a0f8fb04704fe3a822ac940376c76/drivers/gpu/drm/cirrus/cirrus_ttm.c
[modify] https://crrev.com/7ef590cdcc5a0f8fb04704fe3a822ac940376c76/drivers/gpu/drm/cirrus/cirrus_drv.h

Project Member

Comment 7 by bugdroid1@chromium.org, Mar 31 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/drm-tests/+/4f8a8de029f20210d36c9a23d30bc7db05b8421f

commit 4f8a8de029f20210d36c9a23d30bc7db05b8421f
Author: Zach Reizner <zachr@google.com>
Date: Sat Mar 26 00:26:44 2016

drm-tests: make drm_cursor_test take cursor size as an argument

This CL makes drm_cursor_test take one optional parameter, which shall
be the cursor size in pixels. The cursor is always square, so only one
integer parameter is needed. Without parameters, the test behavior is
unchanged.

I used this test for the cirrus hw cursor driver, which has radically
different image formats for its different cursor sizes.

TEST=`drm_cursor_test 32` on cirrus on QEMU w/ CL:333709
BUG= chromium:594885 

Change-Id: Iedbfe63ead401c1391e80d5a481f050bc698044e
Reviewed-on: https://chromium-review.googlesource.com/335323
Commit-Ready: Zach Reizner <zachr@chromium.org>
Tested-by: Zach Reizner <zachr@chromium.org>
Reviewed-by: Haixia Shi <hshi@chromium.org>

[modify] https://crrev.com/4f8a8de029f20210d36c9a23d30bc7db05b8421f/drm_cursor_test.c

Project Member

Comment 8 by bugdroid1@chromium.org, Mar 31 2016

Labels: merge-merged-chromeos-3.8
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel/+/1dfd142b6e5be45b2ac6479dba85a15add6f835f

commit 1dfd142b6e5be45b2ac6479dba85a15add6f835f
Author: Zach Reizner <zachr@google.com>
Date: Fri Mar 18 23:07:14 2016

CHROMIUM: drm/cirrus: implement hardware cursor support

This CL implements hardware support for cursors through cirrus DRM. It
only supports ARGB 8-bit cursors from userspace, and downconverts them
to 1-bit black and white with masking, which is all cirrus hardware can
support. Only cursors with size 32x32 or 64x64 will work.

The intention of adding cursor support is to make it far easier to use
Chromium OS in QEMU.

TEST=ui or drm_cursor_test in QEMU
BUG= chromium:594885 

Signed-off-by: Zach Reizner <zachr@google.com>
(cherry picked from commit f60867c0c5dbd7271f4564b197876cbd71047468)

Change-Id: I4f900edbf880b69e614b69963f31b062618ff77c
Reviewed-on: https://chromium-review.googlesource.com/336284
Commit-Ready: Zach Reizner <zachr@chromium.org>
Tested-by: Zach Reizner <zachr@chromium.org>
Reviewed-by: Haixia Shi <hshi@chromium.org>

[modify] https://crrev.com/1dfd142b6e5be45b2ac6479dba85a15add6f835f/drivers/gpu/drm/cirrus/cirrus_mode.c
[modify] https://crrev.com/1dfd142b6e5be45b2ac6479dba85a15add6f835f/drivers/gpu/drm/cirrus/cirrus_main.c
[modify] https://crrev.com/1dfd142b6e5be45b2ac6479dba85a15add6f835f/drivers/gpu/drm/cirrus/cirrus_ttm.c
[modify] https://crrev.com/1dfd142b6e5be45b2ac6479dba85a15add6f835f/drivers/gpu/drm/cirrus/cirrus_drv.h

Project Member

Comment 9 by bugdroid1@chromium.org, Apr 12 2016

Labels: merge-merged-chromeos-4.4
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel-next/+/07189d332ed2aac3fe95af99cd97a8dc89a2a055

commit 07189d332ed2aac3fe95af99cd97a8dc89a2a055
Author: Zach Reizner <zachr@google.com>
Date: Fri Mar 18 23:07:14 2016

CHROMIUM: drm/cirrus: implement hardware cursor support

This CL implements hardware support for cursors through cirrus DRM. It
only supports ARGB 8-bit cursors from userspace, and downconverts them
to 1-bit black and white with masking, which is all cirrus hardware can
support. Only cursors with size 32x32 or 64x64 will work.

The intention of adding cursor support is to make it far easier to use
Chromium OS in QEMU.

TEST=ui or drm_cursor_test in QEMU
BUG= chromium:594885 

(cherry picked from f60867c0c5dbd7271f4564b197876cbd71047468)
Original-Change-Id: Iacc6b5809920ec91ca24458e83d1892052ca05f4
Signed-off-by: Zach Reizner <zachr@google.com>
Reviewed-on: https://chromium-review.googlesource.com/335579
Commit-Ready: Zach Reizner <zachr@chromium.org>
Tested-by: Zach Reizner <zachr@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>
Reviewed-by: Haixia Shi <hshi@chromium.org>

(cherry picked from commit cf8deedc29a373d5b4421be10131bab1d33aec72)

Conflicts:
	drivers/gpu/drm/cirrus/cirrus_main.c

Change-Id: I1c4e6aa20b533034b8794d52af2d894044427f6f

[modify] https://crrev.com/07189d332ed2aac3fe95af99cd97a8dc89a2a055/drivers/gpu/drm/cirrus/cirrus_mode.c
[modify] https://crrev.com/07189d332ed2aac3fe95af99cd97a8dc89a2a055/drivers/gpu/drm/cirrus/cirrus_main.c
[modify] https://crrev.com/07189d332ed2aac3fe95af99cd97a8dc89a2a055/drivers/gpu/drm/cirrus/cirrus_ttm.c
[modify] https://crrev.com/07189d332ed2aac3fe95af99cd97a8dc89a2a055/drivers/gpu/drm/cirrus/cirrus_drv.h

Project Member

Comment 10 by bugdroid1@chromium.org, Apr 15 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/kernel-next/+/93717965f6b70463485f9a6b2e95c8f532b17350

commit 93717965f6b70463485f9a6b2e95c8f532b17350
Author: Zach Reizner <zachr@google.com>
Date: Fri Mar 18 23:07:14 2016

CHROMIUM: drm/cirrus: implement hardware cursor support

This CL implements hardware support for cursors through cirrus DRM. It
only supports ARGB 8-bit cursors from userspace, and downconverts them
to 1-bit black and white with masking, which is all cirrus hardware can
support. Only cursors with size 32x32 or 64x64 will work.

The intention of adding cursor support is to make it far easier to use
Chromium OS in QEMU.

TEST=ui or drm_cursor_test in QEMU
BUG= chromium:594885 

(cherry picked from f60867c0c5dbd7271f4564b197876cbd71047468)
Original-Change-Id: Iacc6b5809920ec91ca24458e83d1892052ca05f4
Signed-off-by: Zach Reizner <zachr@google.com>
Reviewed-on: https://chromium-review.googlesource.com/335579
Commit-Ready: Zach Reizner <zachr@chromium.org>
Tested-by: Zach Reizner <zachr@chromium.org>
Reviewed-by: Stphane Marchesin <marcheu@chromium.org>
Reviewed-by: Haixia Shi <hshi@chromium.org>

(cherry picked from commit cf8deedc29a373d5b4421be10131bab1d33aec72)

Conflicts:
	drivers/gpu/drm/cirrus/cirrus_main.c

Change-Id: Ib337adab424da25daa07ef967941aa31df7e8746
Reviewed-on: https://chromium-review.googlesource.com/339091
Commit-Ready: Stéphane Marchesin <marcheu@chromium.org>
Tested-by: Stéphane Marchesin <marcheu@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>

[modify] https://crrev.com/93717965f6b70463485f9a6b2e95c8f532b17350/drivers/gpu/drm/cirrus/cirrus_mode.c
[modify] https://crrev.com/93717965f6b70463485f9a6b2e95c8f532b17350/drivers/gpu/drm/cirrus/cirrus_main.c
[modify] https://crrev.com/93717965f6b70463485f9a6b2e95c8f532b17350/drivers/gpu/drm/cirrus/cirrus_ttm.c
[modify] https://crrev.com/93717965f6b70463485f9a6b2e95c8f532b17350/drivers/gpu/drm/cirrus/cirrus_drv.h

Comment 11 by za...@chromium.org, Apr 15 2016

Status: Fixed (was: Assigned)
Porting to old kernels is done. It looks like 4.4 was also done by a few other people.

Sign in to add a comment