Bug 98297 - Can't configure a desktop with 3x4k monitors in one row
Summary: Can't configure a desktop with 3x4k monitors in one row
Status: RESOLVED FIXED
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/DRI/i965 (show other bugs)
Version: unspecified
Hardware: Other All
: medium normal
Assignee: Jordan Justen
QA Contact: Intel 3D Bugs Mailing List
URL: https://patchwork.freedesktop.org/ser...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-10-17 18:17 UTC by Timo Aaltonen
Modified: 2018-08-15 21:30 UTC (History)
9 users (show)

See Also:
i915 platform:
i915 features:


Attachments
mesa crash log when enabled 16Kx16K render buffer (5.82 KB, text/plain)
2016-10-27 08:08 UTC, Cooper Chiou
Details
3x4K output on Dell (1.04 MB, image/jpeg)
2016-11-10 02:30 UTC, Cooper Chiou
Details

Description Timo Aaltonen 2016-10-17 18:17:30 UTC
The i965 driver has a limitation of 8kx8k for texture size, and this causes issues trying to configure compiz to use, say, three 4k monitors in one row with recent hardware.
Comment 1 Cooper Chiou 2016-10-18 10:32:36 UTC
Customer escalated this issue since it's blocking issue. Thanks,
Comment 2 Kenneth Graunke 2016-10-18 17:48:40 UTC
(In reply to Cooper Chiou from comment #1)
> Customer escalated this issue since it's blocking issue. Thanks,

Please talk to management (Kaveh) for any escalations and priority discussions.  Updating priority fields in bugzilla isn't likely to help get more/less attention.

(In reply to Timo Aaltonen from comment #0)
> The i965 driver has a limitation of 8kx8k for texture size, and this causes
> issues trying to configure compiz to use, say, three 4k monitors in one row
> with recent hardware.

We should be able to handle 16kx16k on Ivybridge and later.  If you want to try this, you can edit brw_context.c:526-527 (change 8192 -> 16384 and 14 -> 15).

The downside is that we can currently only blit 8k wide stencil buffers, so those blits would break (probably assert fail).  Large depth/stencil MSAA surfaces may break as well.  Jordan is working on a real solution for this.

Jordan, how's your blorp-splitting code going?
Comment 3 Ben Widawsky 2016-10-18 20:45:55 UTC
Considering this has technically been supported in hardware since Haswell, I can't fathom how we can call this a critical bug now.
Comment 4 Timo Aaltonen 2016-10-19 09:29:40 UTC
Bumping those values fixed this issue, but what would be the test case to find regressions?
Comment 5 Timo Aaltonen 2016-10-19 10:51:20 UTC
nevermind, apparently running Xonotic was enough to crash the session
Comment 6 Cooper Chiou 2016-10-19 10:56:01 UTC
Hi Kenneth,

Shall modify ctx->Const.MaxCubeTextureLevels = 15; (current is 14 /*8192*/) in this case?
Comment 7 Cooper Chiou 2016-10-27 08:08:15 UTC
Created attachment 127559 [details]
mesa crash log when enabled 16Kx16K render buffer

#7  0x00005635fdb835d8 in ProcDRI2GetBuffersWithFormat (client=0x5635ffe7a220) at ../../../../hw/xfree86/dri2/dri2ext.c:317
        buffers = <optimized out>
        status = <optimized out>
        count = 153
        stuff = 0x5635ffea0440
        pDrawable = 0x5635ffb84190
        width = -35332736
        height = -1596896
        attachments = 0x5635ffea044c
Comment 8 Ben Widawsky 2016-10-27 16:56:06 UTC
(In reply to Cooper Chiou from comment #7)
> Created attachment 127559 [details]
> mesa crash log when enabled 16Kx16K render buffer
> 
> #7  0x00005635fdb835d8 in ProcDRI2GetBuffersWithFormat
> (client=0x5635ffe7a220) at ../../../../hw/xfree86/dri2/dri2ext.c:317
>         buffers = <optimized out>
>         status = <optimized out>
>         count = 153
>         stuff = 0x5635ffea0440
>         pDrawable = 0x5635ffb84190
>         width = -35332736
>         height = -1596896
>         attachments = 0x5635ffea044c

Ken wasn't suggesting this as a permanent solution. It was just something to demonstrate that the platform can do it, and that the kernel is mostly working. Please stop using that experiment and let Jordan finish his work.

Thanks.
Comment 9 Jordan Justen 2016-11-09 18:49:06 UTC
Cooper tested an early branch of mine related to this, and reported that it appeared to allow him to use 3 4k monitors configured side-by-side.
Comment 10 Cooper Chiou 2016-11-10 02:30:23 UTC
Created attachment 127888 [details]
3x4K output on Dell

Upload 3x4K resolution output on Dell device as attached.
Comment 11 Annie 2016-11-17 19:47:38 UTC
Jordan,

Do we think the issue is fixed now? Are there next steps? Thanks!
Comment 12 Jordan Justen 2016-11-17 21:49:40 UTC
(In reply to Annie from comment #11)
> Do we think the issue is fixed now? Are there next steps? Thanks!

The current status is that I'm working on getting my patches upstream
to Mesa master. I've sent out some patches for code review, but not
all of them.
Comment 13 Annie 2016-11-17 22:09:43 UTC
Thank you.
Comment 14 Annie 2016-11-17 22:09:55 UTC
Thank you.
Comment 15 Jordan Justen 2016-11-23 03:10:45 UTC
I sent patches to mesa-dev now.

Cooper, if you want to re-test these patches, they are
in this branch:

git://people.freedesktop.org/~jljusten/mesa split-blorp-blit-v1
Comment 16 Annie 2016-11-29 05:30:45 UTC
Thank you Jordan!
Comment 17 Ben Widawsky 2016-11-29 17:28:34 UTC
It was brought to my attention that this still will not work with the modesetting driver. We might want to start a new bug for that. I've asked Martin Peres to add this to his list of modesetting driver work to be done.
Comment 18 Annie 2016-11-29 19:44:10 UTC
Ben-It looks like he's updated that Jira with the new bug.
Comment 19 Jordan Justen 2016-12-01 05:52:23 UTC
v2 incorporating suggestions from Jason:

git://people.freedesktop.org/~jljusten/mesa split-blorp-blit-v2

https://patchwork.freedesktop.org/series/15786/
Comment 20 Annie 2016-12-01 18:15:44 UTC
Thank you Jordan!
Comment 21 Jordan Justen 2016-12-10 05:39:32 UTC
Should be fixed with:

commit e9133dd90ec498cfb6a23fa22504e06488352c51

    i965: Increase max texture to 16k for gen7+

Except, Jason raised some concerns:

https://lists.freedesktop.org/archives/mesa-dev/2016-December/137620.html
Comment 22 Timo Aaltonen 2017-08-31 08:35:06 UTC
the mesa part is now fixed, but the modesetting driver in xserver needs to be fixed too:

hw/xfree86/drivers/modesetting/drmmode_display.c:    
xf86CrtcSetSizeRange(pScrn, 320, 200, mode_res->max_width,

vs. 
src/sna/sna_display.c:
xf86CrtcSetSizeRange(sna->scrn, 8, 8, INT16_MAX, INT16_MAX);


currently with xserver 1.19.3 it's not possible to configure 3x4k row of monitors unless the -intel ddx is used.
Comment 23 Ethan Hsieh 2017-09-01 08:26:12 UTC
Filed a new bug for modesetting driver.
https://bugs.freedesktop.org/show_bug.cgi?id=102508
Comment 24 Dylan Baker 2018-08-15 21:30:43 UTC
The mesa component was reported fixed, since this is a mesa issue tracker, closing as fixed.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.