All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] ✓ Fi.CI.BAT: success for Add new IGT test to validate crtc Dithering
  2020-07-20 16:50 [igt-dev] [PATCH i-g-t] Add new IGT test to validate crtc Dithering Bhanuprakash Modem
@ 2020-07-20 10:02 ` Patchwork
  2020-07-20 12:18 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
                   ` (12 subsequent siblings)
  13 siblings, 0 replies; 26+ messages in thread
From: Patchwork @ 2020-07-20 10:02 UTC (permalink / raw)
  To: Bhanuprakash Modem; +Cc: igt-dev


[-- Attachment #1.1: Type: text/plain, Size: 7385 bytes --]

== Series Details ==

Series: Add new IGT test to validate crtc Dithering
URL   : https://patchwork.freedesktop.org/series/79661/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_8765 -> IGTPW_4778
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/index.html

Known issues
------------

  Here are the changes found in IGTPW_4778 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_suspend@basic-s0:
    - fi-tgl-u2:          [PASS][1] -> [FAIL][2] ([i915#1888])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/fi-tgl-u2/igt@gem_exec_suspend@basic-s0.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/fi-tgl-u2/igt@gem_exec_suspend@basic-s0.html

  * igt@i915_pm_rpm@basic-pci-d3-state:
    - fi-bsw-kefka:       [PASS][3] -> [DMESG-WARN][4] ([i915#1982])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/fi-bsw-kefka/igt@i915_pm_rpm@basic-pci-d3-state.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/fi-bsw-kefka/igt@i915_pm_rpm@basic-pci-d3-state.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
    - fi-bsw-n3050:       [PASS][5] -> [DMESG-WARN][6] ([i915#1982])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/fi-bsw-n3050/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/fi-bsw-n3050/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html

  * igt@kms_flip@basic-flip-vs-wf_vblank@c-edp1:
    - fi-icl-u2:          [PASS][7] -> [DMESG-WARN][8] ([i915#1982])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/fi-icl-u2/igt@kms_flip@basic-flip-vs-wf_vblank@c-edp1.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/fi-icl-u2/igt@kms_flip@basic-flip-vs-wf_vblank@c-edp1.html

  * igt@kms_frontbuffer_tracking@basic:
    - fi-tgl-y:           [PASS][9] -> [DMESG-WARN][10] ([i915#1982])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/fi-tgl-y/igt@kms_frontbuffer_tracking@basic.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/fi-tgl-y/igt@kms_frontbuffer_tracking@basic.html

  * igt@vgem_basic@debugfs:
    - fi-tgl-y:           [PASS][11] -> [DMESG-WARN][12] ([i915#402])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/fi-tgl-y/igt@vgem_basic@debugfs.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/fi-tgl-y/igt@vgem_basic@debugfs.html

  
#### Possible fixes ####

  * igt@i915_selftest@live@coherency:
    - fi-gdg-551:         [DMESG-FAIL][13] ([i915#1748]) -> [PASS][14]
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/fi-gdg-551/igt@i915_selftest@live@coherency.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/fi-gdg-551/igt@i915_selftest@live@coherency.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
    - fi-icl-u2:          [DMESG-WARN][15] ([i915#1982]) -> [PASS][16] +1 similar issue
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/fi-icl-u2/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/fi-icl-u2/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html

  * igt@kms_pipe_crc_basic@read-crc-pipe-a-frame-sequence:
    - fi-tgl-u2:          [DMESG-WARN][17] ([i915#402]) -> [PASS][18]
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/fi-tgl-u2/igt@kms_pipe_crc_basic@read-crc-pipe-a-frame-sequence.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/fi-tgl-u2/igt@kms_pipe_crc_basic@read-crc-pipe-a-frame-sequence.html

  * igt@vgem_basic@create:
    - fi-tgl-y:           [DMESG-WARN][19] ([i915#402]) -> [PASS][20]
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/fi-tgl-y/igt@vgem_basic@create.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/fi-tgl-y/igt@vgem_basic@create.html

  
#### Warnings ####

  * igt@i915_pm_rpm@basic-rte:
    - fi-kbl-guc:         [DMESG-FAIL][21] -> [SKIP][22] ([fdo#109271])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/fi-kbl-guc/igt@i915_pm_rpm@basic-rte.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/fi-kbl-guc/igt@i915_pm_rpm@basic-rte.html

  * igt@i915_pm_rpm@module-reload:
    - fi-kbl-x1275:       [DMESG-FAIL][23] ([i915#62]) -> [SKIP][24] ([fdo#109271])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/fi-kbl-x1275/igt@i915_pm_rpm@module-reload.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/fi-kbl-x1275/igt@i915_pm_rpm@module-reload.html

  * igt@kms_cursor_legacy@basic-flip-after-cursor-legacy:
    - fi-kbl-x1275:       [DMESG-WARN][25] ([i915#62] / [i915#92]) -> [DMESG-WARN][26] ([i915#62] / [i915#92] / [i915#95]) +3 similar issues
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/fi-kbl-x1275/igt@kms_cursor_legacy@basic-flip-after-cursor-legacy.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/fi-kbl-x1275/igt@kms_cursor_legacy@basic-flip-after-cursor-legacy.html

  * igt@kms_force_connector_basic@prune-stale-modes:
    - fi-kbl-x1275:       [DMESG-WARN][27] ([i915#62] / [i915#92] / [i915#95]) -> [DMESG-WARN][28] ([i915#62] / [i915#92]) +2 similar issues
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/fi-kbl-x1275/igt@kms_force_connector_basic@prune-stale-modes.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/fi-kbl-x1275/igt@kms_force_connector_basic@prune-stale-modes.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [i915#1748]: https://gitlab.freedesktop.org/drm/intel/issues/1748
  [i915#1888]: https://gitlab.freedesktop.org/drm/intel/issues/1888
  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
  [i915#62]: https://gitlab.freedesktop.org/drm/intel/issues/62
  [i915#92]: https://gitlab.freedesktop.org/drm/intel/issues/92
  [i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95


Participating hosts (47 -> 40)
------------------------------

  Missing    (7): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-byt-clapper fi-bdw-samus 


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_5740 -> IGTPW_4778

  CI-20190529: 20190529
  CI_DRM_8765: dfeec97e409151bf4ef70632e20b9251f2611267 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_4778: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/index.html
  IGT_5740: 6663e3ab5f77add7077711c2b649caf2bd7903c4 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools



== Testlist changes ==

+igt@kms_dither@fb-8bpc-vs-panel-6bpc
+igt@kms_dither@fb-8bpc-vs-panel-8bpc
+igt@kms_dither@fb-8bpc-vs-panel-10bpc
+igt@kms_dither@fb-10bpc-vs-panel-6bpc
+igt@kms_dither@fb-10bpc-vs-panel-8bpc
+igt@kms_dither@fb-10bpc-vs-panel-10bpc
+igt@kms_dither@fb-16bpc-vs-panel-6bpc
+igt@kms_dither@fb-16bpc-vs-panel-8bpc
+igt@kms_dither@fb-16bpc-vs-panel-10bpc

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/index.html

[-- Attachment #1.2: Type: text/html, Size: 9377 bytes --]

[-- Attachment #2: Type: text/plain, Size: 154 bytes --]

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [igt-dev] ✗ Fi.CI.IGT: failure for Add new IGT test to validate crtc Dithering
  2020-07-20 16:50 [igt-dev] [PATCH i-g-t] Add new IGT test to validate crtc Dithering Bhanuprakash Modem
  2020-07-20 10:02 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork
@ 2020-07-20 12:18 ` Patchwork
  2020-07-21 11:19 ` [igt-dev] [PATCH i-g-t] " Karthik B S
                   ` (11 subsequent siblings)
  13 siblings, 0 replies; 26+ messages in thread
From: Patchwork @ 2020-07-20 12:18 UTC (permalink / raw)
  To: Bhanuprakash Modem; +Cc: igt-dev


[-- Attachment #1.1: Type: text/plain, Size: 17897 bytes --]

== Series Details ==

Series: Add new IGT test to validate crtc Dithering
URL   : https://patchwork.freedesktop.org/series/79661/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_8765_full -> IGTPW_4778_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_4778_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_4778_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/index.html

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in IGTPW_4778_full:

### IGT changes ###

#### Possible regressions ####

  * {igt@kms_dither@fb-8bpc-vs-panel-6bpc} (NEW):
    - shard-iclb:         NOTRUN -> [SKIP][1] +7 similar issues
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/shard-iclb4/igt@kms_dither@fb-8bpc-vs-panel-6bpc.html

  * {igt@kms_dither@fb-8bpc-vs-panel-8bpc} (NEW):
    - shard-tglb:         NOTRUN -> [SKIP][2] +7 similar issues
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/shard-tglb3/igt@kms_dither@fb-8bpc-vs-panel-8bpc.html

  * igt@kms_flip@2x-flip-vs-blocking-wf-vblank@ac-vga1-hdmi-a1:
    - shard-hsw:          [PASS][3] -> [INCOMPLETE][4]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/shard-hsw6/igt@kms_flip@2x-flip-vs-blocking-wf-vblank@ac-vga1-hdmi-a1.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/shard-hsw8/igt@kms_flip@2x-flip-vs-blocking-wf-vblank@ac-vga1-hdmi-a1.html

  
New tests
---------

  New tests have been introduced between CI_DRM_8765_full and IGTPW_4778_full:

### New IGT tests (9) ###

  * igt@kms_dither@fb-10bpc-vs-panel-10bpc:
    - Statuses : 7 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_dither@fb-10bpc-vs-panel-6bpc:
    - Statuses : 7 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_dither@fb-10bpc-vs-panel-8bpc:
    - Statuses : 7 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_dither@fb-16bpc-vs-panel-10bpc:
    - Statuses : 7 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_dither@fb-16bpc-vs-panel-6bpc:
    - Statuses : 7 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_dither@fb-16bpc-vs-panel-8bpc:
    - Statuses :
    - Exec time: [None] s

  * igt@kms_dither@fb-8bpc-vs-panel-10bpc:
    - Statuses : 7 skip(s)
    - Exec time: [0.0] s

  * igt@kms_dither@fb-8bpc-vs-panel-6bpc:
    - Statuses : 7 skip(s)
    - Exec time: [0.0] s

  * igt@kms_dither@fb-8bpc-vs-panel-8bpc:
    - Statuses : 7 skip(s)
    - Exec time: [0.0, 0.00] s

  

Known issues
------------

  Here are the changes found in IGTPW_4778_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_create@madvise:
    - shard-glk:          [PASS][5] -> [DMESG-WARN][6] ([i915#118] / [i915#95])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/shard-glk1/igt@gem_exec_create@madvise.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/shard-glk1/igt@gem_exec_create@madvise.html

  * igt@i915_pm_dc@dc6-psr:
    - shard-iclb:         [PASS][7] -> [FAIL][8] ([i915#1899])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/shard-iclb4/igt@i915_pm_dc@dc6-psr.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/shard-iclb5/igt@i915_pm_dc@dc6-psr.html

  * igt@i915_pm_rc6_residency@rc6-idle:
    - shard-hsw:          [PASS][9] -> [WARN][10] ([i915#1519])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/shard-hsw4/igt@i915_pm_rc6_residency@rc6-idle.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/shard-hsw8/igt@i915_pm_rc6_residency@rc6-idle.html

  * igt@i915_selftest@mock@requests:
    - shard-glk:          [PASS][11] -> [INCOMPLETE][12] ([i915#2110])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/shard-glk5/igt@i915_selftest@mock@requests.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/shard-glk3/igt@i915_selftest@mock@requests.html

  * igt@kms_frontbuffer_tracking@fbc-rgb101010-draw-pwrite:
    - shard-tglb:         [PASS][13] -> [DMESG-WARN][14] ([i915#1982])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/shard-tglb2/igt@kms_frontbuffer_tracking@fbc-rgb101010-draw-pwrite.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/shard-tglb6/igt@kms_frontbuffer_tracking@fbc-rgb101010-draw-pwrite.html

  * igt@kms_plane@plane-panning-bottom-right-pipe-b-planes:
    - shard-hsw:          [PASS][15] -> [TIMEOUT][16] ([i915#1958] / [i915#2119]) +1 similar issue
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/shard-hsw2/igt@kms_plane@plane-panning-bottom-right-pipe-b-planes.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/shard-hsw7/igt@kms_plane@plane-panning-bottom-right-pipe-b-planes.html
    - shard-snb:          [PASS][17] -> [TIMEOUT][18] ([i915#1958] / [i915#2119]) +2 similar issues
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/shard-snb4/igt@kms_plane@plane-panning-bottom-right-pipe-b-planes.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/shard-snb5/igt@kms_plane@plane-panning-bottom-right-pipe-b-planes.html

  * igt@kms_psr2_su@frontbuffer:
    - shard-tglb:         [PASS][19] -> [SKIP][20] ([i915#1911])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/shard-tglb3/igt@kms_psr2_su@frontbuffer.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/shard-tglb6/igt@kms_psr2_su@frontbuffer.html

  * igt@kms_psr@psr2_sprite_plane_move:
    - shard-iclb:         [PASS][21] -> [SKIP][22] ([fdo#109441])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/shard-iclb2/igt@kms_psr@psr2_sprite_plane_move.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/shard-iclb5/igt@kms_psr@psr2_sprite_plane_move.html

  * igt@kms_vblank@pipe-a-ts-continuation-suspend:
    - shard-kbl:          [PASS][23] -> [DMESG-WARN][24] ([i915#180]) +6 similar issues
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/shard-kbl1/igt@kms_vblank@pipe-a-ts-continuation-suspend.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/shard-kbl6/igt@kms_vblank@pipe-a-ts-continuation-suspend.html

  * igt@kms_vblank@pipe-b-query-forked-busy:
    - shard-apl:          [PASS][25] -> [DMESG-WARN][26] ([i915#1635] / [i915#1982]) +1 similar issue
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/shard-apl3/igt@kms_vblank@pipe-b-query-forked-busy.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/shard-apl4/igt@kms_vblank@pipe-b-query-forked-busy.html

  
#### Possible fixes ####

  * igt@gem_exec_balancer@bonded-early:
    - shard-iclb:         [FAIL][27] ([i915#926]) -> [PASS][28]
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/shard-iclb4/igt@gem_exec_balancer@bonded-early.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/shard-iclb4/igt@gem_exec_balancer@bonded-early.html

  * igt@gem_exec_params@sol-reset-not-gen7:
    - shard-snb:          [TIMEOUT][29] ([i915#1958] / [i915#2119]) -> [PASS][30]
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/shard-snb5/igt@gem_exec_params@sol-reset-not-gen7.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/shard-snb6/igt@gem_exec_params@sol-reset-not-gen7.html

  * igt@kms_big_fb@linear-64bpp-rotate-180:
    - shard-glk:          [DMESG-FAIL][31] ([i915#118] / [i915#95]) -> [PASS][32]
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/shard-glk8/igt@kms_big_fb@linear-64bpp-rotate-180.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/shard-glk6/igt@kms_big_fb@linear-64bpp-rotate-180.html

  * igt@kms_cursor_edge_walk@pipe-b-256x256-bottom-edge:
    - shard-glk:          [DMESG-WARN][33] ([i915#1982]) -> [PASS][34]
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/shard-glk4/igt@kms_cursor_edge_walk@pipe-b-256x256-bottom-edge.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/shard-glk9/igt@kms_cursor_edge_walk@pipe-b-256x256-bottom-edge.html

  * igt@kms_flip@flip-vs-suspend-interruptible@a-dp1:
    - shard-kbl:          [DMESG-WARN][35] ([i915#180]) -> [PASS][36] +3 similar issues
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/shard-kbl1/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/shard-kbl2/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html

  * igt@kms_flip@flip-vs-suspend-interruptible@c-hdmi-a1:
    - shard-hsw:          [INCOMPLETE][37] ([i915#2055]) -> [PASS][38]
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/shard-hsw2/igt@kms_flip@flip-vs-suspend-interruptible@c-hdmi-a1.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/shard-hsw4/igt@kms_flip@flip-vs-suspend-interruptible@c-hdmi-a1.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-mmap-gtt:
    - shard-apl:          [DMESG-WARN][39] ([i915#1635] / [i915#1982]) -> [PASS][40]
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/shard-apl6/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-mmap-gtt.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/shard-apl6/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-blt:
    - shard-glk:          [FAIL][41] ([i915#49]) -> [PASS][42]
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/shard-glk5/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-blt.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/shard-glk5/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@psr-farfromfence:
    - shard-tglb:         [DMESG-WARN][43] ([i915#1982]) -> [PASS][44] +3 similar issues
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/shard-tglb1/igt@kms_frontbuffer_tracking@psr-farfromfence.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/shard-tglb7/igt@kms_frontbuffer_tracking@psr-farfromfence.html

  * igt@kms_psr@cursor_mmap_cpu:
    - shard-tglb:         [DMESG-WARN][45] ([i915#402]) -> [PASS][46]
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/shard-tglb3/igt@kms_psr@cursor_mmap_cpu.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/shard-tglb6/igt@kms_psr@cursor_mmap_cpu.html

  * igt@kms_psr@psr2_primary_mmap_gtt:
    - shard-iclb:         [SKIP][47] ([fdo#109441]) -> [PASS][48]
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/shard-iclb1/igt@kms_psr@psr2_primary_mmap_gtt.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/shard-iclb2/igt@kms_psr@psr2_primary_mmap_gtt.html

  * igt@kms_vblank@pipe-b-wait-forked-busy:
    - shard-kbl:          [DMESG-WARN][49] ([i915#62] / [i915#92]) -> [PASS][50] +3 similar issues
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/shard-kbl6/igt@kms_vblank@pipe-b-wait-forked-busy.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/shard-kbl7/igt@kms_vblank@pipe-b-wait-forked-busy.html

  * igt@perf@global-sseu-config:
    - shard-hsw:          [INCOMPLETE][51] ([i915#1958]) -> [PASS][52]
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/shard-hsw8/igt@perf@global-sseu-config.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/shard-hsw2/igt@perf@global-sseu-config.html

  
#### Warnings ####

  * igt@gem_exec_params@sol-reset-not-gen7:
    - shard-hsw:          [TIMEOUT][53] ([i915#1958] / [i915#2119]) -> [SKIP][54] ([fdo#109271]) +1 similar issue
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/shard-hsw8/igt@gem_exec_params@sol-reset-not-gen7.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/shard-hsw4/igt@gem_exec_params@sol-reset-not-gen7.html

  * igt@i915_pm_dc@dc3co-vpb-simulation:
    - shard-iclb:         [SKIP][55] ([i915#658]) -> [SKIP][56] ([i915#588])
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/shard-iclb8/igt@i915_pm_dc@dc3co-vpb-simulation.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/shard-iclb2/igt@i915_pm_dc@dc3co-vpb-simulation.html

  * igt@i915_pm_dc@dc6-psr:
    - shard-tglb:         [FAIL][57] ([i915#454]) -> [FAIL][58] ([i915#1899])
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/shard-tglb6/igt@i915_pm_dc@dc6-psr.html
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/shard-tglb1/igt@i915_pm_dc@dc6-psr.html

  * igt@kms_dp_dsc@basic-dsc-enable-edp:
    - shard-iclb:         [DMESG-WARN][59] ([i915#1226]) -> [SKIP][60] ([fdo#109349])
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/shard-iclb2/igt@kms_dp_dsc@basic-dsc-enable-edp.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/shard-iclb1/igt@kms_dp_dsc@basic-dsc-enable-edp.html

  * igt@kms_flip@2x-flip-vs-panning-vs-hang:
    - shard-snb:          [SKIP][61] ([fdo#109271]) -> [TIMEOUT][62] ([i915#1958] / [i915#2119]) +1 similar issue
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/shard-snb6/igt@kms_flip@2x-flip-vs-panning-vs-hang.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/shard-snb5/igt@kms_flip@2x-flip-vs-panning-vs-hang.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-onoff:
    - shard-hsw:          [SKIP][63] ([fdo#109271]) -> [TIMEOUT][64] ([i915#1958] / [i915#2119])
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/shard-hsw6/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-onoff.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/shard-hsw7/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-onoff.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-mmap-gtt:
    - shard-snb:          [TIMEOUT][65] ([i915#1958] / [i915#2119]) -> [SKIP][66] ([fdo#109271]) +1 similar issue
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/shard-snb5/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-mmap-gtt.html
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/shard-snb1/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-mmap-gtt.html

  * igt@kms_psr2_su@frontbuffer:
    - shard-iclb:         [SKIP][67] ([fdo#109642] / [fdo#111068]) -> [SKIP][68] ([i915#1911])
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/shard-iclb6/igt@kms_psr2_su@frontbuffer.html
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/shard-iclb2/igt@kms_psr2_su@frontbuffer.html

  * igt@runner@aborted:
    - shard-apl:          ([FAIL][69], [FAIL][70]) ([i915#1610] / [i915#1635] / [i915#2110]) -> [FAIL][71] ([i915#1635] / [i915#2110])
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/shard-apl3/igt@runner@aborted.html
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8765/shard-apl6/igt@runner@aborted.html
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/shard-apl4/igt@runner@aborted.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109349]: https://bugs.freedesktop.org/show_bug.cgi?id=109349
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
  [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
  [i915#118]: https://gitlab.freedesktop.org/drm/intel/issues/118
  [i915#1226]: https://gitlab.freedesktop.org/drm/intel/issues/1226
  [i915#1519]: https://gitlab.freedesktop.org/drm/intel/issues/1519
  [i915#1610]: https://gitlab.freedesktop.org/drm/intel/issues/1610
  [i915#1635]: https://gitlab.freedesktop.org/drm/intel/issues/1635
  [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
  [i915#1899]: https://gitlab.freedesktop.org/drm/intel/issues/1899
  [i915#1911]: https://gitlab.freedesktop.org/drm/intel/issues/1911
  [i915#1958]: https://gitlab.freedesktop.org/drm/intel/issues/1958
  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [i915#2055]: https://gitlab.freedesktop.org/drm/intel/issues/2055
  [i915#2110]: https://gitlab.freedesktop.org/drm/intel/issues/2110
  [i915#2119]: https://gitlab.freedesktop.org/drm/intel/issues/2119
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
  [i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454
  [i915#49]: https://gitlab.freedesktop.org/drm/intel/issues/49
  [i915#588]: https://gitlab.freedesktop.org/drm/intel/issues/588
  [i915#62]: https://gitlab.freedesktop.org/drm/intel/issues/62
  [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
  [i915#92]: https://gitlab.freedesktop.org/drm/intel/issues/92
  [i915#926]: https://gitlab.freedesktop.org/drm/intel/issues/926
  [i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95


Participating hosts (10 -> 8)
------------------------------

  Missing    (2): pig-skl-6260u pig-glk-j5005 


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_5740 -> IGTPW_4778
  * Piglit: piglit_4509 -> None

  CI-20190529: 20190529
  CI_DRM_8765: dfeec97e409151bf4ef70632e20b9251f2611267 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_4778: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/index.html
  IGT_5740: 6663e3ab5f77add7077711c2b649caf2bd7903c4 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4778/index.html

[-- Attachment #1.2: Type: text/html, Size: 21751 bytes --]

[-- Attachment #2: Type: text/plain, Size: 154 bytes --]

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [igt-dev] [PATCH i-g-t] Add new IGT test to validate crtc Dithering
@ 2020-07-20 16:50 Bhanuprakash Modem
  2020-07-20 10:02 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork
                   ` (13 more replies)
  0 siblings, 14 replies; 26+ messages in thread
From: Bhanuprakash Modem @ 2020-07-20 16:50 UTC (permalink / raw)
  To: bhanuprakash.modem, igt-dev

Even though feature Dithering is there since legacy, there is no
specific IGT for this.

This patch will create New IGT for Dithering. And below is the
truth table for CRTC Dithering.

|----------------|---------|-------------|
|  Frame buffer  |  Panel  |  Dithering  |
|----------------|---------|-------------|
|      8 BPC     |  6 BPC  |     Yes     |
|----------------|---------|-------------|
|      8 BPC     |  8 BPC  |     No      |
|----------------|---------|-------------|
|      8 BPC     | 10 BPC  |     No      |
|----------------|---------|-------------|
|     10 BPC     |  6 BPC  |     Yes     |
|----------------|---------|-------------|
|     10 BPC     |  8 BPC  |     Yes     |
|----------------|---------|-------------|
|     10 BPC     | 10 BPC  |     No      |
|----------------|---------|-------------|
|     16 BPC     |  6 BPC  |     Yes     |
|----------------|---------|-------------|
|     16 BPC     |  8 BPC  |     Yes     |
|----------------|---------|-------------|
|     16 BPC     | 10 BPC  |     Yes     |
|----------------|---------|-------------|

Cc: Swati Sharma <swati2.sharma@intel.com>
Cc: Karthik B S <karthik.b.s@intel.com>
Cc: Uma Shankar <uma.shankar@intel.com>
Cc: Pankaj Bharadiya <pankaj.laxminarayan.bharadiya@intel.com>
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
---
 tests/Makefile.sources |   1 +
 tests/kms_dither.c     | 252 +++++++++++++++++++++++++++++++++++++++++
 tests/meson.build      |   1 +
 3 files changed, 254 insertions(+)
 create mode 100644 tests/kms_dither.c

diff --git a/tests/Makefile.sources b/tests/Makefile.sources
index 0653c3d3..e816037c 100644
--- a/tests/Makefile.sources
+++ b/tests/Makefile.sources
@@ -43,6 +43,7 @@ TESTS_progs = \
 	kms_cursor_crc \
 	kms_cursor_edge_walk \
 	kms_cursor_legacy \
+	kms_dither \
 	kms_dp_aux_dev \
 	kms_dp_dsc \
 	kms_dp_tiled_display \
diff --git a/tests/kms_dither.c b/tests/kms_dither.c
new file mode 100644
index 00000000..f4b143bb
--- /dev/null
+++ b/tests/kms_dither.c
@@ -0,0 +1,252 @@
+/*
+ * Copyright © 2020 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#include "igt.h"
+#include <fcntl.h>
+#include <termios.h>
+#include <unistd.h>
+
+IGT_TEST_DESCRIPTION("Test Dithering block status");
+
+/* Connector BPC */
+#define IGT_CONNECTOR_BPC_6		6
+#define IGT_CONNECTOR_BPC_8		8
+#define IGT_CONNECTOR_BPC_10		10
+#define IGT_CONNECTOR_BPC_12		12
+
+/* Framebuffer BPC */
+#define IGT_FRAME_BUFFER_BPC_8		8
+#define IGT_FRAME_BUFFER_BPC_10		10
+#define IGT_FRAME_BUFFER_BPC_16		16
+
+/* Test flags. */
+enum {
+	TEST_NONE = 1 << 0,
+	TEST_SUSPEND = 1 << 1,
+};
+
+/* Common test data. */
+typedef struct data {
+	igt_display_t display;
+	igt_plane_t *primary;
+	igt_output_t *output;
+	igt_pipe_t *pipe;
+	drmModeModeInfo *mode;
+	enum pipe pipe_id;
+	int drm_fd;
+} data_t;
+
+/* Prepare test data. */
+static void prepare_test(data_t *data, igt_output_t *output, enum pipe pipe)
+{
+	igt_display_t *display = &data->display;
+
+	data->pipe_id = pipe;
+	data->pipe = &data->display.pipes[data->pipe_id];
+	igt_assert(data->pipe);
+
+	igt_display_reset(display);
+
+	data->output = output;
+	igt_assert(data->output);
+
+	data->mode = igt_output_get_mode(data->output);
+	igt_assert(data->mode);
+
+	data->primary =
+		igt_pipe_get_plane_type(data->pipe, DRM_PLANE_TYPE_PRIMARY);
+
+	igt_output_set_pipe(data->output, data->pipe_id);
+}
+
+/* Returns the current state of dithering from the crtc debugfs. */
+static bool get_dither_state(data_t *data)
+{
+	char buf[256];
+	char crtc_name[7];
+	char *start_loc;
+	int fd, res;
+	unsigned int status;
+
+	snprintf(crtc_name, 7, "crtc-%d", data->pipe_id);
+	fd = igt_debugfs_open(data->drm_fd, crtc_name, O_RDONLY);
+	igt_assert(fd >= 0);
+
+	res = igt_debugfs_simple_read(fd, "dither", buf, sizeof(buf));
+	igt_require(res > 0);
+	close(fd);
+
+	igt_assert(start_loc = strstr(buf, "Dither: "));
+	igt_assert_eq(sscanf(start_loc, "Dither: %u", &status), 1);
+
+	return !!status;
+}
+
+/* Returns the current and maximum bpc from the connector debugfs. */
+static unsigned int get_output_bpc(data_t *data, igt_output_t *output)
+{
+	char buf[256];
+	char *start_loc;
+	int fd, res;
+	unsigned int max_bpc;
+
+	fd = igt_debugfs_connector_dir(data->drm_fd, output->name, O_RDONLY);
+	igt_assert(fd >= 0);
+
+	res = igt_debugfs_simple_read(fd, "output_bpc", buf, sizeof(buf));
+
+	igt_require(res > 0);
+
+	close(fd);
+
+	igt_assert(start_loc = strstr(buf, "Maximum: "));
+	igt_assert_eq(sscanf(start_loc, "Maximum: %u", &max_bpc), 1);
+
+	return max_bpc;
+}
+
+static void test_dithering_on_output(data_t *data, igt_output_t *output,
+		int fb_bpc, int fb_format, int output_bpc,
+		uint32_t flags)
+{
+	igt_display_t *display = &data->display;
+	enum pipe pipe;
+	igt_fb_t fb;
+	int ret;
+	bool enabled;
+
+	for_each_pipe(display, pipe) {
+		if (!igt_pipe_connector_valid(pipe, output))
+			continue;
+
+		igt_info("Dithering test execution on %s PIPE_%s\n",
+				output->name, kmstest_pipe_name(pipe));
+		prepare_test(data, output, pipe);
+
+		ret = igt_create_fb(data->drm_fd, 512, 512, fb_format,
+				    LOCAL_DRM_FORMAT_MOD_NONE,
+				    &fb);
+		igt_assert(ret);
+
+		igt_plane_set_fb(data->primary, &fb);
+		igt_plane_set_size(data->primary, data->mode->hdisplay, data->mode->vdisplay);
+		igt_output_set_prop_value(data->output, IGT_CONNECTOR_MAX_BPC, output_bpc);
+		igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
+
+		/* Check the status of Dithering block
+		 * If fb_bpc is greater than output_bpc, Dithering should be Enabled
+		 * else Disabled
+		 */
+		enabled = get_dither_state(data);
+		if (fb_bpc > output_bpc)
+			igt_assert_f(enabled, "(fb_%dbpc > output_%dbpc): Dither should be enabled\n",
+					fb_bpc, output_bpc);
+		else
+			igt_assert_f(!enabled, "(fb_%dbpc <= output_%dbpc): Dither should be disabled\n",
+					fb_bpc, output_bpc);
+
+		igt_plane_set_fb(data->primary, NULL);
+		igt_output_set_pipe(output, PIPE_ANY);
+		igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
+		igt_remove_fb(data->drm_fd, &fb);
+	}
+	return;
+}
+
+/* Returns true if an output supports max bpc property. */
+static bool has_max_bpc(igt_output_t *output)
+{
+        return igt_output_has_prop(output, IGT_CONNECTOR_MAX_BPC) &&
+               igt_output_get_prop(output, IGT_CONNECTOR_MAX_BPC);
+}
+
+static void
+run_dither_test(data_t *data, int fb_bpc, int fb_format, int output_bpc,
+		uint32_t flags)
+{
+	igt_output_t *output;
+	unsigned int max_bpc;
+	int valid_outputs = 0;
+
+	for_each_connected_output(&data->display, output) {
+		if (!has_max_bpc(output))
+			continue;
+
+		max_bpc = get_output_bpc(data, output);
+		if(max_bpc < output_bpc)
+			continue;
+
+		test_dithering_on_output(data, output, fb_bpc, fb_format, output_bpc, flags);
+		valid_outputs++;
+	}
+
+	igt_require_f(valid_outputs, "No connector found with MAX BPC connector property. (or) "
+				     "No connector found with Max Panel BPC (%d) >= %d.\n",
+		      max_bpc, output_bpc);
+}
+
+igt_main
+{
+	struct {
+		int bpc;
+		int format;
+	} fb_formats[] = {
+		{ IGT_FRAME_BUFFER_BPC_8, DRM_FORMAT_RGB888 },
+		{ IGT_FRAME_BUFFER_BPC_10, DRM_FORMAT_XRGB2101010 },
+		{ IGT_FRAME_BUFFER_BPC_16, DRM_FORMAT_XRGB16161616F },
+	};
+	int output_bpc[] = {
+		IGT_CONNECTOR_BPC_6,
+		IGT_CONNECTOR_BPC_8,
+		IGT_CONNECTOR_BPC_10
+	};
+	int i, j;
+	data_t data = { 0 };
+
+	igt_fixture {
+		data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
+		kmstest_set_vt_graphics_mode();
+
+		igt_display_require(&data.display, data.drm_fd);
+		igt_display_require_output(&data.display);
+	}
+
+	for (i = 0; i < ARRAY_SIZE(fb_formats); i++) {
+		for (j = 0; j < ARRAY_SIZE(output_bpc); j++) {
+			igt_describe_f("Framebuffer BPC:%d, Panel BPC:%d, Expected Dither:%s\n",
+				       fb_formats[i].bpc, output_bpc[j],
+				       (fb_formats[i].bpc > output_bpc[j]) ? "Enable": "Disable");
+
+			igt_subtest_f("FB-%dBPC-Vs-Panel-%dBPC", fb_formats[i].bpc, output_bpc[j])
+				run_dither_test(&data,
+						fb_formats[i].bpc,
+						fb_formats[i].format,
+						output_bpc[j],
+						TEST_NONE);
+		}
+	}
+
+	igt_fixture {
+		igt_display_fini(&data.display);
+	}
+}
diff --git a/tests/meson.build b/tests/meson.build
index cfe508c4..05a9cfb8 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -27,6 +27,7 @@ test_progs = [
 	'kms_cursor_crc',
 	'kms_cursor_edge_walk',
 	'kms_cursor_legacy',
+	'kms_dither',
 	'kms_dp_aux_dev',
 	'kms_dp_dsc',
 	'kms_dp_tiled_display',
-- 
2.20.1

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* Re: [igt-dev] [PATCH i-g-t] Add new IGT test to validate crtc Dithering
  2020-07-20 16:50 [igt-dev] [PATCH i-g-t] Add new IGT test to validate crtc Dithering Bhanuprakash Modem
  2020-07-20 10:02 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork
  2020-07-20 12:18 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
@ 2020-07-21 11:19 ` Karthik B S
  2020-07-21 13:35   ` Modem, Bhanuprakash
  2020-07-21 14:15 ` [igt-dev] ✓ Fi.CI.BAT: success for Add new IGT test to validate crtc Dithering (rev2) Patchwork
                   ` (10 subsequent siblings)
  13 siblings, 1 reply; 26+ messages in thread
From: Karthik B S @ 2020-07-21 11:19 UTC (permalink / raw)
  To: Bhanuprakash Modem, igt-dev

Hi,

On 7/20/2020 10:20 PM, Bhanuprakash Modem wrote:
> Even though feature Dithering is there since legacy, there is no
> specific IGT for this.
> 
> This patch will create New IGT for Dithering. And below is the
> truth table for CRTC Dithering.
> 
> |----------------|---------|-------------|
> |  Frame buffer  |  Panel  |  Dithering  |
> |----------------|---------|-------------|
> |      8 BPC     |  6 BPC  |     Yes     |
> |----------------|---------|-------------|
> |      8 BPC     |  8 BPC  |     No      |
> |----------------|---------|-------------|
> |      8 BPC     | 10 BPC  |     No      |
> |----------------|---------|-------------|
> |     10 BPC     |  6 BPC  |     Yes     |
> |----------------|---------|-------------|
> |     10 BPC     |  8 BPC  |     Yes     |
> |----------------|---------|-------------|
> |     10 BPC     | 10 BPC  |     No      |
> |----------------|---------|-------------|
> |     16 BPC     |  6 BPC  |     Yes     |
> |----------------|---------|-------------|
> |     16 BPC     |  8 BPC  |     Yes     |
> |----------------|---------|-------------|
> |     16 BPC     | 10 BPC  |     Yes     |
> |----------------|---------|-------------|
>
Add the test name in the subject.
tests/kms_dither: <explanation>
> Cc: Swati Sharma <swati2.sharma@intel.com>
> Cc: Karthik B S <karthik.b.s@intel.com>
> Cc: Uma Shankar <uma.shankar@intel.com>
> Cc: Pankaj Bharadiya <pankaj.laxminarayan.bharadiya@intel.com>
> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
> ---
>   tests/Makefile.sources |   1 +
>   tests/kms_dither.c     | 252 +++++++++++++++++++++++++++++++++++++++++
>   tests/meson.build      |   1 +
>   3 files changed, 254 insertions(+)
>   create mode 100644 tests/kms_dither.c
> 
> diff --git a/tests/Makefile.sources b/tests/Makefile.sources
> index 0653c3d3..e816037c 100644
> --- a/tests/Makefile.sources
> +++ b/tests/Makefile.sources
> @@ -43,6 +43,7 @@ TESTS_progs = \
>   	kms_cursor_crc \
>   	kms_cursor_edge_walk \
>   	kms_cursor_legacy \
> +	kms_dither \
>   	kms_dp_aux_dev \
>   	kms_dp_dsc \
>   	kms_dp_tiled_display \
> diff --git a/tests/kms_dither.c b/tests/kms_dither.c
> new file mode 100644
> index 00000000..f4b143bb
> --- /dev/null
> +++ b/tests/kms_dither.c
> @@ -0,0 +1,252 @@
> +/*
> + * Copyright © 2020 Intel Corporation
> + *
> + * Permission is hereby granted, free of charge, to any person obtaining a
> + * copy of this software and associated documentation files (the "Software"),
> + * to deal in the Software without restriction, including without limitation
> + * the rights to use, copy, modify, merge, publish, distribute, sublicense,
> + * and/or sell copies of the Software, and to permit persons to whom the
> + * Software is furnished to do so, subject to the following conditions:
> + *
> + * The above copyright notice and this permission notice (including the next
> + * paragraph) shall be included in all copies or substantial portions of the
> + * Software.
> + *
> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
> + * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
> + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
> + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
> + * OTHER DEALINGS IN THE SOFTWARE.
You can mention the author here.
> + */
> +
> +#include "igt.h"
> +#include <fcntl.h>
> +#include <termios.h>
> +#include <unistd.h>
> +
> +IGT_TEST_DESCRIPTION("Test Dithering block status");
> +
> +/* Connector BPC */
> +#define IGT_CONNECTOR_BPC_6		6
> +#define IGT_CONNECTOR_BPC_8		8
> +#define IGT_CONNECTOR_BPC_10		10
> +#define IGT_CONNECTOR_BPC_12		12
> +
> +/* Framebuffer BPC */
> +#define IGT_FRAME_BUFFER_BPC_8		8
> +#define IGT_FRAME_BUFFER_BPC_10		10
> +#define IGT_FRAME_BUFFER_BPC_16		16
> +
> +/* Test flags. */
> +enum {
> +	TEST_NONE = 1 << 0,
> +	TEST_SUSPEND = 1 << 1,
> +};
> +
> +/* Common test data. */
> +typedef struct data {
> +	igt_display_t display;
> +	igt_plane_t *primary;
> +	igt_output_t *output;
> +	igt_pipe_t *pipe;
> +	drmModeModeInfo *mode;
> +	enum pipe pipe_id;
> +	int drm_fd;
> +} data_t;
> +
> +/* Prepare test data. */
> +static void prepare_test(data_t *data, igt_output_t *output, enum pipe pipe)
> +{
> +	igt_display_t *display = &data->display;
> +
> +	data->pipe_id = pipe;
> +	data->pipe = &data->display.pipes[data->pipe_id];
> +	igt_assert(data->pipe);
> +
> +	igt_display_reset(display);
> +
> +	data->output = output;
> +	igt_assert(data->output);
> +
> +	data->mode = igt_output_get_mode(data->output);
> +	igt_assert(data->mode);
> +
> +	data->primary =
> +		igt_pipe_get_plane_type(data->pipe, DRM_PLANE_TYPE_PRIMARY);
> +
> +	igt_output_set_pipe(data->output, data->pipe_id);
> +}
> +
> +/* Returns the current state of dithering from the crtc debugfs. */
> +static bool get_dither_state(data_t *data)
> +{
> +	char buf[256];
> +	char crtc_name[7];
> +	char *start_loc;
> +	int fd, res;
> +	unsigned int status;
> +
> +	snprintf(crtc_name, 7, "crtc-%d", data->pipe_id);
> +	fd = igt_debugfs_open(data->drm_fd, crtc_name, O_RDONLY);
> +	igt_assert(fd >= 0);
> +
> +	res = igt_debugfs_simple_read(fd, "dither", buf, sizeof(buf));
> +	igt_require(res > 0);
> +	close(fd);
> +
> +	igt_assert(start_loc = strstr(buf, "Dither: "));
> +	igt_assert_eq(sscanf(start_loc, "Dither: %u", &status), 1);
> +
> +	return !!status;
> +}
> +
> +/* Returns the current and maximum bpc from the connector debugfs. */
> +static unsigned int get_output_bpc(data_t *data, igt_output_t *output)
> +{
> +	char buf[256];
> +	char *start_loc;
> +	int fd, res;
> +	unsigned int max_bpc;
> +
> +	fd = igt_debugfs_connector_dir(data->drm_fd, output->name, O_RDONLY);
> +	igt_assert(fd >= 0);
> +
> +	res = igt_debugfs_simple_read(fd, "output_bpc", buf, sizeof(buf));
> +
> +	igt_require(res > 0);
> +
> +	close(fd);
> +
> +	igt_assert(start_loc = strstr(buf, "Maximum: "));
> +	igt_assert_eq(sscanf(start_loc, "Maximum: %u", &max_bpc), 1);
> +
> +	return max_bpc;
> +}
> +
> +static void test_dithering_on_output(data_t *data, igt_output_t *output,
> +		int fb_bpc, int fb_format, int output_bpc,
> +		uint32_t flags)
> +{
> +	igt_display_t *display = &data->display;
> +	enum pipe pipe;
> +	igt_fb_t fb;
> +	int ret;
> +	bool enabled;
> +
> +	for_each_pipe(display, pipe) {
> +		if (!igt_pipe_connector_valid(pipe, output))
> +			continue;
> +
> +		igt_info("Dithering test execution on %s PIPE_%s\n",
> +				output->name, kmstest_pipe_name(pipe));
> +		prepare_test(data, output, pipe);
> +
Can we move the igt_create_fb outside the loop?
Seems redundant inside the loop as we're not changing anything here.

Any particular reason we're using 512x512 for fb?
If so, should it be a macro?
> +		ret = igt_create_fb(data->drm_fd, 512, 512, fb_format,
> +				    LOCAL_DRM_FORMAT_MOD_NONE,
> +				    &fb);
> +		igt_assert(ret);
> +
> +		igt_plane_set_fb(data->primary, &fb);
> +		igt_plane_set_size(data->primary, data->mode->hdisplay, data->mode->vdisplay);
> +		igt_output_set_prop_value(data->output, IGT_CONNECTOR_MAX_BPC, output_bpc);
> +		igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
> +
> +		/* Check the status of Dithering block
> +		 * If fb_bpc is greater than output_bpc, Dithering should be Enabled
> +		 * else Disabled
> +		 */
> +		enabled = get_dither_state(data);
> +		if (fb_bpc > output_bpc)
> +			igt_assert_f(enabled, "(fb_%dbpc > output_%dbpc): Dither should be enabled\n",
> +					fb_bpc, output_bpc);
> +		else
> +			igt_assert_f(!enabled, "(fb_%dbpc <= output_%dbpc): Dither should be disabled\n",
> +					fb_bpc, output_bpc);
> +
> +		igt_plane_set_fb(data->primary, NULL);
Sorry for the nitpick, but I would prefer to use PIPE_NONE here than 
PIPE_ANY, as it looks like PIPE_ANY is deprecated.
Shouldn't matter either way :)
> +		igt_output_set_pipe(output, PIPE_ANY);
> +		igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
> +		igt_remove_fb(data->drm_fd, &fb);
> +	}
> +	return;
> +}
> +
> +/* Returns true if an output supports max bpc property. */
> +static bool has_max_bpc(igt_output_t *output)
> +{
> +        return igt_output_has_prop(output, IGT_CONNECTOR_MAX_BPC) &&
> +               igt_output_get_prop(output, IGT_CONNECTOR_MAX_BPC);
> +}
> +
> +static void
> +run_dither_test(data_t *data, int fb_bpc, int fb_format, int output_bpc,
> +		uint32_t flags)
> +{
> +	igt_output_t *output;
> +	unsigned int max_bpc;
> +	int valid_outputs = 0;
> +
It would be better if we can use dynamic subtests here for pipe-output 
combinations.
> +	for_each_connected_output(&data->display, output) {
> +		if (!has_max_bpc(output))
> +			continue;
> +
> +		max_bpc = get_output_bpc(data, output);
> +		if(max_bpc < output_bpc)
> +			continue;
> +
> +		test_dithering_on_output(data, output, fb_bpc, fb_format, output_bpc, flags);
> +		valid_outputs++;
> +	}
> +
> +	igt_require_f(valid_outputs, "No connector found with MAX BPC connector property. (or) "
> +				     "No connector found with Max Panel BPC (%d) >= %d.\n",
> +		      max_bpc, output_bpc);
> +}
> +
> +igt_main
> +{
> +	struct {
> +		int bpc;
> +		int format;
> +	} fb_formats[] = {
> +		{ IGT_FRAME_BUFFER_BPC_8, DRM_FORMAT_RGB888 },
> +		{ IGT_FRAME_BUFFER_BPC_10, DRM_FORMAT_XRGB2101010 },
> +		{ IGT_FRAME_BUFFER_BPC_16, DRM_FORMAT_XRGB16161616F },
> +	};
> +	int output_bpc[] = {
> +		IGT_CONNECTOR_BPC_6,
> +		IGT_CONNECTOR_BPC_8,
> +		IGT_CONNECTOR_BPC_10
> +	};
> +	int i, j;
> +	data_t data = { 0 };
> +
> +	igt_fixture {
> +		data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
> +		kmstest_set_vt_graphics_mode();
> +
> +		igt_display_require(&data.display, data.drm_fd);
> +		igt_display_require_output(&data.display);
> +	}
> +
> +	for (i = 0; i < ARRAY_SIZE(fb_formats); i++) {
> +		for (j = 0; j < ARRAY_SIZE(output_bpc); j++) {
> +			igt_describe_f("Framebuffer BPC:%d, Panel BPC:%d, Expected Dither:%s\n",
> +				       fb_formats[i].bpc, output_bpc[j],
> +				       (fb_formats[i].bpc > output_bpc[j]) ? "Enable": "Disable");
> +
> +			igt_subtest_f("FB-%dBPC-Vs-Panel-%dBPC", fb_formats[i].bpc, output_bpc[j])
> +				run_dither_test(&data,
> +						fb_formats[i].bpc,
> +						fb_formats[i].format,
> +						output_bpc[j],
TEST_SUSPEND looks like is unused? Do we plan to add subtests for this?

Thanks,
Karthik.B.S
> +						TEST_NONE);
> +		}
> +	}
> +
> +	igt_fixture {
> +		igt_display_fini(&data.display);
> +	}
> +}
> diff --git a/tests/meson.build b/tests/meson.build
> index cfe508c4..05a9cfb8 100644
> --- a/tests/meson.build
> +++ b/tests/meson.build
> @@ -27,6 +27,7 @@ test_progs = [
>   	'kms_cursor_crc',
>   	'kms_cursor_edge_walk',
>   	'kms_cursor_legacy',
> +	'kms_dither',
>   	'kms_dp_aux_dev',
>   	'kms_dp_dsc',
>   	'kms_dp_tiled_display',
> 
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [igt-dev] [PATCH i-g-t] Add new IGT test to validate crtc Dithering
  2020-07-21 11:19 ` [igt-dev] [PATCH i-g-t] " Karthik B S
@ 2020-07-21 13:35   ` Modem, Bhanuprakash
  0 siblings, 0 replies; 26+ messages in thread
From: Modem, Bhanuprakash @ 2020-07-21 13:35 UTC (permalink / raw)
  To: B S, Karthik, igt-dev, Shankar, Uma

> -----Original Message-----
> From: B S, Karthik <karthik.b.s@intel.com>
> Sent: Tuesday, July 21, 2020 4:50 PM
> To: Modem, Bhanuprakash <bhanuprakash.modem@intel.com>; igt-
> dev@lists.freedesktop.org
> Cc: Sharma, Swati2 <swati2.sharma@intel.com>; Shankar, Uma
> <uma.shankar@intel.com>; Laxminarayan Bharadiya, Pankaj
> <pankaj.laxminarayan.bharadiya@intel.com>
> Subject: Re: [PATCH i-g-t] Add new IGT test to validate crtc Dithering
> 
> Hi,
> 
> On 7/20/2020 10:20 PM, Bhanuprakash Modem wrote:
> > Even though feature Dithering is there since legacy, there is no
> > specific IGT for this.
> >
> > This patch will create New IGT for Dithering. And below is the
> > truth table for CRTC Dithering.
> >
> > |----------------|---------|-------------|
> > |  Frame buffer  |  Panel  |  Dithering  |
> > |----------------|---------|-------------|
> > |      8 BPC     |  6 BPC  |     Yes     |
> > |----------------|---------|-------------|
> > |      8 BPC     |  8 BPC  |     No      |
> > |----------------|---------|-------------|
> > |      8 BPC     | 10 BPC  |     No      |
> > |----------------|---------|-------------|
> > |     10 BPC     |  6 BPC  |     Yes     |
> > |----------------|---------|-------------|
> > |     10 BPC     |  8 BPC  |     Yes     |
> > |----------------|---------|-------------|
> > |     10 BPC     | 10 BPC  |     No      |
> > |----------------|---------|-------------|
> > |     16 BPC     |  6 BPC  |     Yes     |
> > |----------------|---------|-------------|
> > |     16 BPC     |  8 BPC  |     Yes     |
> > |----------------|---------|-------------|
> > |     16 BPC     | 10 BPC  |     Yes     |
> > |----------------|---------|-------------|
> >
> Add the test name in the subject.
> tests/kms_dither: <explanation>
[Bhanu] Done
> > Cc: Swati Sharma <swati2.sharma@intel.com>
> > Cc: Karthik B S <karthik.b.s@intel.com>
> > Cc: Uma Shankar <uma.shankar@intel.com>
> > Cc: Pankaj Bharadiya <pankaj.laxminarayan.bharadiya@intel.com>
> > Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
> > ---
> >   tests/Makefile.sources |   1 +
> >   tests/kms_dither.c     | 252 +++++++++++++++++++++++++++++++++++++++++
> >   tests/meson.build      |   1 +
> >   3 files changed, 254 insertions(+)
> >   create mode 100644 tests/kms_dither.c
> >
> > diff --git a/tests/Makefile.sources b/tests/Makefile.sources
> > index 0653c3d3..e816037c 100644
> > --- a/tests/Makefile.sources
> > +++ b/tests/Makefile.sources
> > @@ -43,6 +43,7 @@ TESTS_progs = \
> >   	kms_cursor_crc \
> >   	kms_cursor_edge_walk \
> >   	kms_cursor_legacy \
> > +	kms_dither \
> >   	kms_dp_aux_dev \
> >   	kms_dp_dsc \
> >   	kms_dp_tiled_display \
> > diff --git a/tests/kms_dither.c b/tests/kms_dither.c
> > new file mode 100644
> > index 00000000..f4b143bb
> > --- /dev/null
> > +++ b/tests/kms_dither.c
> > @@ -0,0 +1,252 @@
> > +/*
> > + * Copyright © 2020 Intel Corporation
> > + *
> > + * Permission is hereby granted, free of charge, to any person
> obtaining a
> > + * copy of this software and associated documentation files (the
> "Software"),
> > + * to deal in the Software without restriction, including without
> limitation
> > + * the rights to use, copy, modify, merge, publish, distribute,
> sublicense,
> > + * and/or sell copies of the Software, and to permit persons to whom
> the
> > + * Software is furnished to do so, subject to the following conditions:
> > + *
> > + * The above copyright notice and this permission notice (including the
> next
> > + * paragraph) shall be included in all copies or substantial portions
> of the
> > + * Software.
> > + *
> > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> EXPRESS OR
> > + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
> MERCHANTABILITY,
> > + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT
> SHALL
> > + * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM,
> DAMAGES OR
> > + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
> OTHERWISE,
> > + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
> OR
> > + * OTHER DEALINGS IN THE SOFTWARE.
> You can mention the author here.
[Bhanu] Done
> > + */
> > +
> > +#include "igt.h"
> > +#include <fcntl.h>
> > +#include <termios.h>
> > +#include <unistd.h>
> > +
> > +IGT_TEST_DESCRIPTION("Test Dithering block status");
> > +
> > +/* Connector BPC */
> > +#define IGT_CONNECTOR_BPC_6		6
> > +#define IGT_CONNECTOR_BPC_8		8
> > +#define IGT_CONNECTOR_BPC_10		10
> > +#define IGT_CONNECTOR_BPC_12		12
> > +
> > +/* Framebuffer BPC */
> > +#define IGT_FRAME_BUFFER_BPC_8		8
> > +#define IGT_FRAME_BUFFER_BPC_10		10
> > +#define IGT_FRAME_BUFFER_BPC_16		16
> > +
> > +/* Test flags. */
> > +enum {
> > +	TEST_NONE = 1 << 0,
> > +	TEST_SUSPEND = 1 << 1,
> > +};
> > +
> > +/* Common test data. */
> > +typedef struct data {
> > +	igt_display_t display;
> > +	igt_plane_t *primary;
> > +	igt_output_t *output;
> > +	igt_pipe_t *pipe;
> > +	drmModeModeInfo *mode;
> > +	enum pipe pipe_id;
> > +	int drm_fd;
> > +} data_t;
> > +
> > +/* Prepare test data. */
> > +static void prepare_test(data_t *data, igt_output_t *output, enum pipe
> pipe)
> > +{
> > +	igt_display_t *display = &data->display;
> > +
> > +	data->pipe_id = pipe;
> > +	data->pipe = &data->display.pipes[data->pipe_id];
> > +	igt_assert(data->pipe);
> > +
> > +	igt_display_reset(display);
> > +
> > +	data->output = output;
> > +	igt_assert(data->output);
> > +
> > +	data->mode = igt_output_get_mode(data->output);
> > +	igt_assert(data->mode);
> > +
> > +	data->primary =
> > +		igt_pipe_get_plane_type(data->pipe, DRM_PLANE_TYPE_PRIMARY);
> > +
> > +	igt_output_set_pipe(data->output, data->pipe_id);
> > +}
> > +
> > +/* Returns the current state of dithering from the crtc debugfs. */
> > +static bool get_dither_state(data_t *data)
> > +{
> > +	char buf[256];
> > +	char crtc_name[7];
> > +	char *start_loc;
> > +	int fd, res;
> > +	unsigned int status;
> > +
> > +	snprintf(crtc_name, 7, "crtc-%d", data->pipe_id);
> > +	fd = igt_debugfs_open(data->drm_fd, crtc_name, O_RDONLY);
> > +	igt_assert(fd >= 0);
> > +
> > +	res = igt_debugfs_simple_read(fd, "dither", buf, sizeof(buf));
> > +	igt_require(res > 0);
> > +	close(fd);
> > +
> > +	igt_assert(start_loc = strstr(buf, "Dither: "));
> > +	igt_assert_eq(sscanf(start_loc, "Dither: %u", &status), 1);
> > +
> > +	return !!status;
> > +}
> > +
> > +/* Returns the current and maximum bpc from the connector debugfs. */
> > +static unsigned int get_output_bpc(data_t *data, igt_output_t *output)
> > +{
> > +	char buf[256];
> > +	char *start_loc;
> > +	int fd, res;
> > +	unsigned int max_bpc;
> > +
> > +	fd = igt_debugfs_connector_dir(data->drm_fd, output->name,
> O_RDONLY);
> > +	igt_assert(fd >= 0);
> > +
> > +	res = igt_debugfs_simple_read(fd, "output_bpc", buf, sizeof(buf));
> > +
> > +	igt_require(res > 0);
> > +
> > +	close(fd);
> > +
> > +	igt_assert(start_loc = strstr(buf, "Maximum: "));
> > +	igt_assert_eq(sscanf(start_loc, "Maximum: %u", &max_bpc), 1);
> > +
> > +	return max_bpc;
> > +}
> > +
> > +static void test_dithering_on_output(data_t *data, igt_output_t
> *output,
> > +		int fb_bpc, int fb_format, int output_bpc,
> > +		uint32_t flags)
> > +{
> > +	igt_display_t *display = &data->display;
> > +	enum pipe pipe;
> > +	igt_fb_t fb;
> > +	int ret;
> > +	bool enabled;
> > +
[Bhanu] This loop should move to caller in case of dynamic subtests for pipe-output combos
> > +	for_each_pipe(display, pipe) {
> > +		if (!igt_pipe_connector_valid(pipe, output))
> > +			continue;
> > +
> > +		igt_info("Dithering test execution on %s PIPE_%s\n",
> > +				output->name, kmstest_pipe_name(pipe));
> > +		prepare_test(data, output, pipe);
> > +
> Can we move the igt_create_fb outside the loop?
> Seems redundant inside the loop as we're not changing anything here.
[Bhanu] Done
> 
> Any particular reason we're using 512x512 for fb?
> If so, should it be a macro?
[Bhanu] There is no particular reason, will update.
> > +		ret = igt_create_fb(data->drm_fd, 512, 512, fb_format,
> > +				    LOCAL_DRM_FORMAT_MOD_NONE,
> > +				    &fb);
> > +		igt_assert(ret);
> > +
> > +		igt_plane_set_fb(data->primary, &fb);
> > +		igt_plane_set_size(data->primary, data->mode->hdisplay, data-
> >mode->vdisplay);
> > +		igt_output_set_prop_value(data->output, IGT_CONNECTOR_MAX_BPC,
> output_bpc);
> > +		igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC
> : COMMIT_LEGACY);
> > +
> > +		/* Check the status of Dithering block
> > +		 * If fb_bpc is greater than output_bpc, Dithering should be
> Enabled
> > +		 * else Disabled
> > +		 */
> > +		enabled = get_dither_state(data);
> > +		if (fb_bpc > output_bpc)
> > +			igt_assert_f(enabled, "(fb_%dbpc > output_%dbpc): Dither
> should be enabled\n",
> > +					fb_bpc, output_bpc);
> > +		else
> > +			igt_assert_f(!enabled, "(fb_%dbpc <= output_%dbpc):
> Dither should be disabled\n",
> > +					fb_bpc, output_bpc);
> > +
> > +		igt_plane_set_fb(data->primary, NULL);
> Sorry for the nitpick, but I would prefer to use PIPE_NONE here than
> PIPE_ANY, as it looks like PIPE_ANY is deprecated.
> Shouldn't matter either way :)
[Bhanu] Done
> > +		igt_output_set_pipe(output, PIPE_ANY);
> > +		igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC
> : COMMIT_LEGACY);
> > +		igt_remove_fb(data->drm_fd, &fb);
> > +	}
> > +	return;
> > +}
> > +
> > +/* Returns true if an output supports max bpc property. */
> > +static bool has_max_bpc(igt_output_t *output)
> > +{
> > +        return igt_output_has_prop(output, IGT_CONNECTOR_MAX_BPC) &&
> > +               igt_output_get_prop(output, IGT_CONNECTOR_MAX_BPC);
> > +}
> > +
> > +static void
> > +run_dither_test(data_t *data, int fb_bpc, int fb_format, int
> output_bpc,
> > +		uint32_t flags)
> > +{
> > +	igt_output_t *output;
> > +	unsigned int max_bpc;
> > +	int valid_outputs = 0;
> > +
> It would be better if we can use dynamic subtests here for pipe-output
> combinations.
[Bhanu] That’s good idea
> > +	for_each_connected_output(&data->display, output) {
> > +		if (!has_max_bpc(output))
> > +			continue;
> > +
> > +		max_bpc = get_output_bpc(data, output);
> > +		if(max_bpc < output_bpc)
> > +			continue;
> > +
> > +		test_dithering_on_output(data, output, fb_bpc, fb_format,
> output_bpc, flags);
> > +		valid_outputs++;
> > +	}
> > +
> > +	igt_require_f(valid_outputs, "No connector found with MAX BPC
> connector property. (or) "
> > +				     "No connector found with Max Panel BPC (%d) >=
> %d.\n",
> > +		      max_bpc, output_bpc);
> > +}
> > +
> > +igt_main
> > +{
> > +	struct {
> > +		int bpc;
> > +		int format;
> > +	} fb_formats[] = {
[Bhanu] @Shankar, Uma Are these formats are good to go?
> > +		{ IGT_FRAME_BUFFER_BPC_8, DRM_FORMAT_RGB888 },
> > +		{ IGT_FRAME_BUFFER_BPC_10, DRM_FORMAT_XRGB2101010 },
> > +		{ IGT_FRAME_BUFFER_BPC_16, DRM_FORMAT_XRGB16161616F },
> > +	};
> > +	int output_bpc[] = {
> > +		IGT_CONNECTOR_BPC_6,
> > +		IGT_CONNECTOR_BPC_8,
> > +		IGT_CONNECTOR_BPC_10
> > +	};
> > +	int i, j;
> > +	data_t data = { 0 };
> > +
> > +	igt_fixture {
> > +		data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
> > +		kmstest_set_vt_graphics_mode();
> > +
> > +		igt_display_require(&data.display, data.drm_fd);
> > +		igt_display_require_output(&data.display);
> > +	}
> > +
> > +	for (i = 0; i < ARRAY_SIZE(fb_formats); i++) {
> > +		for (j = 0; j < ARRAY_SIZE(output_bpc); j++) {
> > +			igt_describe_f("Framebuffer BPC:%d, Panel BPC:%d,
> Expected Dither:%s\n",
> > +				       fb_formats[i].bpc, output_bpc[j],
> > +				       (fb_formats[i].bpc > output_bpc[j]) ?
> "Enable": "Disable");
> > +
> > +			igt_subtest_f("FB-%dBPC-Vs-Panel-%dBPC",
> fb_formats[i].bpc, output_bpc[j])
> > +				run_dither_test(&data,
> > +						fb_formats[i].bpc,
> > +						fb_formats[i].format,
> > +						output_bpc[j],
> TEST_SUSPEND looks like is unused? Do we plan to add subtests for this?
[Bhanu] We may need to add suspend/resume tests.
> 
> Thanks,
> Karthik.B.S
> > +						TEST_NONE);
> > +		}
> > +	}
> > +
> > +	igt_fixture {
> > +		igt_display_fini(&data.display);
> > +	}
> > +}
> > diff --git a/tests/meson.build b/tests/meson.build
> > index cfe508c4..05a9cfb8 100644
> > --- a/tests/meson.build
> > +++ b/tests/meson.build
> > @@ -27,6 +27,7 @@ test_progs = [
> >   	'kms_cursor_crc',
> >   	'kms_cursor_edge_walk',
> >   	'kms_cursor_legacy',
> > +	'kms_dither',
> >   	'kms_dp_aux_dev',
> >   	'kms_dp_dsc',
> >   	'kms_dp_tiled_display',
> >
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [igt-dev] ✓ Fi.CI.BAT: success for Add new IGT test to validate crtc Dithering (rev2)
  2020-07-20 16:50 [igt-dev] [PATCH i-g-t] Add new IGT test to validate crtc Dithering Bhanuprakash Modem
                   ` (2 preceding siblings ...)
  2020-07-21 11:19 ` [igt-dev] [PATCH i-g-t] " Karthik B S
@ 2020-07-21 14:15 ` Patchwork
  2020-07-21 17:19 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
                   ` (9 subsequent siblings)
  13 siblings, 0 replies; 26+ messages in thread
From: Patchwork @ 2020-07-21 14:15 UTC (permalink / raw)
  To: Bhanuprakash Modem; +Cc: igt-dev


[-- Attachment #1.1: Type: text/plain, Size: 7660 bytes --]

== Series Details ==

Series: Add new IGT test to validate crtc Dithering (rev2)
URL   : https://patchwork.freedesktop.org/series/79661/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_8771 -> IGTPW_4786
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/index.html

Known issues
------------

  Here are the changes found in IGTPW_4786 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@i915_pm_rpm@basic-pci-d3-state:
    - fi-bsw-kefka:       [PASS][1] -> [DMESG-WARN][2] ([i915#1982])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/fi-bsw-kefka/igt@i915_pm_rpm@basic-pci-d3-state.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/fi-bsw-kefka/igt@i915_pm_rpm@basic-pci-d3-state.html

  * igt@i915_selftest@live@gt_lrc:
    - fi-tgl-u2:          [PASS][3] -> [DMESG-FAIL][4] ([i915#1233])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/fi-tgl-u2/igt@i915_selftest@live@gt_lrc.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/fi-tgl-u2/igt@i915_selftest@live@gt_lrc.html

  * igt@kms_busy@basic@flip:
    - fi-kbl-x1275:       [PASS][5] -> [DMESG-WARN][6] ([i915#62] / [i915#92] / [i915#95])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/fi-kbl-x1275/igt@kms_busy@basic@flip.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/fi-kbl-x1275/igt@kms_busy@basic@flip.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
    - fi-bsw-n3050:       [PASS][7] -> [DMESG-WARN][8] ([i915#1982]) +1 similar issue
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/fi-bsw-n3050/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/fi-bsw-n3050/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
    - fi-icl-u2:          [PASS][9] -> [DMESG-WARN][10] ([i915#1982]) +1 similar issue
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/fi-icl-u2/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/fi-icl-u2/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html

  * igt@vgem_basic@dmabuf-export:
    - fi-tgl-y:           [PASS][11] -> [DMESG-WARN][12] ([i915#402])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/fi-tgl-y/igt@vgem_basic@dmabuf-export.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/fi-tgl-y/igt@vgem_basic@dmabuf-export.html

  
#### Possible fixes ####

  * igt@gem_exec_suspend@basic-s0:
    - fi-tgl-u2:          [FAIL][13] ([i915#1888]) -> [PASS][14]
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/fi-tgl-u2/igt@gem_exec_suspend@basic-s0.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/fi-tgl-u2/igt@gem_exec_suspend@basic-s0.html

  * igt@i915_pm_rpm@basic-pci-d3-state:
    - {fi-tgl-dsi}:       [DMESG-WARN][15] ([i915#1982]) -> [PASS][16]
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/fi-tgl-dsi/igt@i915_pm_rpm@basic-pci-d3-state.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/fi-tgl-dsi/igt@i915_pm_rpm@basic-pci-d3-state.html

  * igt@kms_busy@basic@flip:
    - fi-tgl-y:           [DMESG-WARN][17] ([i915#1982]) -> [PASS][18]
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/fi-tgl-y/igt@kms_busy@basic@flip.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/fi-tgl-y/igt@kms_busy@basic@flip.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
    - fi-byt-j1900:       [DMESG-WARN][19] ([i915#1982]) -> [PASS][20]
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/fi-byt-j1900/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/fi-byt-j1900/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html

  * igt@kms_flip@basic-flip-vs-wf_vblank@c-edp1:
    - fi-icl-u2:          [DMESG-WARN][21] ([i915#1982]) -> [PASS][22]
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/fi-icl-u2/igt@kms_flip@basic-flip-vs-wf_vblank@c-edp1.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/fi-icl-u2/igt@kms_flip@basic-flip-vs-wf_vblank@c-edp1.html

  * igt@vgem_basic@debugfs:
    - fi-tgl-y:           [DMESG-WARN][23] ([i915#402]) -> [PASS][24]
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/fi-tgl-y/igt@vgem_basic@debugfs.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/fi-tgl-y/igt@vgem_basic@debugfs.html

  
#### Warnings ####

  * igt@gem_exec_suspend@basic-s3:
    - fi-kbl-x1275:       [DMESG-WARN][25] ([i915#62] / [i915#92] / [i915#95]) -> [DMESG-WARN][26] ([i915#62] / [i915#92]) +1 similar issue
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/fi-kbl-x1275/igt@gem_exec_suspend@basic-s3.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/fi-kbl-x1275/igt@gem_exec_suspend@basic-s3.html

  * igt@i915_pm_rpm@module-reload:
    - fi-kbl-x1275:       [SKIP][27] ([fdo#109271]) -> [DMESG-FAIL][28] ([i915#62])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/fi-kbl-x1275/igt@i915_pm_rpm@module-reload.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/fi-kbl-x1275/igt@i915_pm_rpm@module-reload.html

  * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
    - fi-kbl-x1275:       [DMESG-WARN][29] ([i915#62] / [i915#92]) -> [DMESG-WARN][30] ([i915#62] / [i915#92] / [i915#95])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/fi-kbl-x1275/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/fi-kbl-x1275/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [i915#1233]: https://gitlab.freedesktop.org/drm/intel/issues/1233
  [i915#1888]: https://gitlab.freedesktop.org/drm/intel/issues/1888
  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
  [i915#62]: https://gitlab.freedesktop.org/drm/intel/issues/62
  [i915#92]: https://gitlab.freedesktop.org/drm/intel/issues/92
  [i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95


Participating hosts (46 -> 40)
------------------------------

  Missing    (6): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-byt-clapper 


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_5742 -> IGTPW_4786

  CI-20190529: 20190529
  CI_DRM_8771: 03db6c5382b72d68bbb20e253f24acf199de15f2 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_4786: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/index.html
  IGT_5742: 540f9de91ab2816885a9076a4c0835cb3dc67a97 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools



== Testlist changes ==

+igt@kms_dither@fb-8bpc-vs-panel-6bpc
+igt@kms_dither@fb-8bpc-vs-panel-8bpc
+igt@kms_dither@fb-8bpc-vs-panel-10bpc
+igt@kms_dither@fb-10bpc-vs-panel-6bpc
+igt@kms_dither@fb-10bpc-vs-panel-8bpc
+igt@kms_dither@fb-10bpc-vs-panel-10bpc
+igt@kms_dither@fb-16bpc-vs-panel-6bpc
+igt@kms_dither@fb-16bpc-vs-panel-8bpc
+igt@kms_dither@fb-16bpc-vs-panel-10bpc

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/index.html

[-- Attachment #1.2: Type: text/html, Size: 9871 bytes --]

[-- Attachment #2: Type: text/plain, Size: 154 bytes --]

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [igt-dev] ✓ Fi.CI.IGT: success for Add new IGT test to validate crtc Dithering (rev2)
  2020-07-20 16:50 [igt-dev] [PATCH i-g-t] Add new IGT test to validate crtc Dithering Bhanuprakash Modem
                   ` (3 preceding siblings ...)
  2020-07-21 14:15 ` [igt-dev] ✓ Fi.CI.BAT: success for Add new IGT test to validate crtc Dithering (rev2) Patchwork
@ 2020-07-21 17:19 ` Patchwork
  2020-07-21 21:48 ` [igt-dev] [PATCH i-g-t] tests/kms_dither: Add new IGT test to validate crtc Dithering Bhanuprakash Modem
                   ` (8 subsequent siblings)
  13 siblings, 0 replies; 26+ messages in thread
From: Patchwork @ 2020-07-21 17:19 UTC (permalink / raw)
  To: Bhanuprakash Modem; +Cc: igt-dev


[-- Attachment #1.1: Type: text/plain, Size: 19597 bytes --]

== Series Details ==

Series: Add new IGT test to validate crtc Dithering (rev2)
URL   : https://patchwork.freedesktop.org/series/79661/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_8771_full -> IGTPW_4786_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/index.html

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in IGTPW_4786_full:

### IGT changes ###

#### Possible regressions ####

  * {igt@kms_dither@fb-8bpc-vs-panel-6bpc} (NEW):
    - shard-iclb:         NOTRUN -> [SKIP][1] +8 similar issues
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/shard-iclb2/igt@kms_dither@fb-8bpc-vs-panel-6bpc.html

  * {igt@kms_dither@fb-8bpc-vs-panel-8bpc} (NEW):
    - shard-tglb:         NOTRUN -> [SKIP][2] +8 similar issues
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/shard-tglb2/igt@kms_dither@fb-8bpc-vs-panel-8bpc.html

  
New tests
---------

  New tests have been introduced between CI_DRM_8771_full and IGTPW_4786_full:

### New IGT tests (9) ###

  * igt@kms_dither@fb-10bpc-vs-panel-10bpc:
    - Statuses : 7 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_dither@fb-10bpc-vs-panel-6bpc:
    - Statuses : 7 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_dither@fb-10bpc-vs-panel-8bpc:
    - Statuses : 7 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_dither@fb-16bpc-vs-panel-10bpc:
    - Statuses : 7 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_dither@fb-16bpc-vs-panel-6bpc:
    - Statuses : 7 skip(s)
    - Exec time: [0.0] s

  * igt@kms_dither@fb-16bpc-vs-panel-8bpc:
    - Statuses : 7 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_dither@fb-8bpc-vs-panel-10bpc:
    - Statuses : 7 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_dither@fb-8bpc-vs-panel-6bpc:
    - Statuses : 7 skip(s)
    - Exec time: [0.0] s

  * igt@kms_dither@fb-8bpc-vs-panel-8bpc:
    - Statuses : 7 skip(s)
    - Exec time: [0.0] s

  

Known issues
------------

  Here are the changes found in IGTPW_4786_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_create@madvise:
    - shard-glk:          [PASS][3] -> [DMESG-WARN][4] ([i915#118] / [i915#95])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/shard-glk6/igt@gem_exec_create@madvise.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/shard-glk9/igt@gem_exec_create@madvise.html

  * igt@gem_exec_reloc@basic-concurrent0:
    - shard-glk:          [PASS][5] -> [FAIL][6] ([i915#1930])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/shard-glk2/igt@gem_exec_reloc@basic-concurrent0.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/shard-glk2/igt@gem_exec_reloc@basic-concurrent0.html

  * igt@gen9_exec_parse@allowed-all:
    - shard-apl:          [PASS][7] -> [DMESG-WARN][8] ([i915#1436] / [i915#1635] / [i915#716])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/shard-apl3/igt@gen9_exec_parse@allowed-all.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/shard-apl7/igt@gen9_exec_parse@allowed-all.html

  * igt@i915_selftest@perf@request:
    - shard-tglb:         [PASS][9] -> [INCOMPLETE][10] ([i915#1823])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/shard-tglb1/igt@i915_selftest@perf@request.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/shard-tglb8/igt@i915_selftest@perf@request.html

  * igt@kms_big_fb@y-tiled-64bpp-rotate-0:
    - shard-glk:          [PASS][11] -> [DMESG-FAIL][12] ([i915#118] / [i915#95])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/shard-glk1/igt@kms_big_fb@y-tiled-64bpp-rotate-0.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/shard-glk8/igt@kms_big_fb@y-tiled-64bpp-rotate-0.html

  * igt@kms_cursor_legacy@cursor-vs-flip-atomic:
    - shard-hsw:          [PASS][13] -> [TIMEOUT][14] ([i915#1958] / [i915#2119]) +2 similar issues
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/shard-hsw1/igt@kms_cursor_legacy@cursor-vs-flip-atomic.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/shard-hsw6/igt@kms_cursor_legacy@cursor-vs-flip-atomic.html

  * igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size:
    - shard-hsw:          [PASS][15] -> [FAIL][16] ([i915#57])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/shard-hsw1/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/shard-hsw6/igt@kms_cursor_legacy@cursor-vs-flip-atomic-transitions-varying-size.html

  * igt@kms_flip@2x-plain-flip@ab-vga1-hdmi-a1:
    - shard-hsw:          [PASS][17] -> [DMESG-WARN][18] ([i915#1982])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/shard-hsw4/igt@kms_flip@2x-plain-flip@ab-vga1-hdmi-a1.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/shard-hsw6/igt@kms_flip@2x-plain-flip@ab-vga1-hdmi-a1.html

  * igt@kms_flip@flip-vs-suspend-interruptible@a-dp1:
    - shard-kbl:          [PASS][19] -> [DMESG-WARN][20] ([i915#180]) +8 similar issues
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/shard-kbl6/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/shard-kbl1/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-render:
    - shard-kbl:          [PASS][21] -> [DMESG-WARN][22] ([i915#1982]) +1 similar issue
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/shard-kbl2/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-render.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/shard-kbl4/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-blt:
    - shard-tglb:         [PASS][23] -> [DMESG-WARN][24] ([i915#1982])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/shard-tglb5/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-blt.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/shard-tglb3/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-pri-shrfb-draw-blt.html

  * igt@kms_psr@psr2_basic:
    - shard-iclb:         [PASS][25] -> [SKIP][26] ([fdo#109441]) +2 similar issues
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/shard-iclb2/igt@kms_psr@psr2_basic.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/shard-iclb1/igt@kms_psr@psr2_basic.html

  * igt@kms_vblank@pipe-c-wait-forked:
    - shard-tglb:         [PASS][27] -> [DMESG-WARN][28] ([i915#402])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/shard-tglb2/igt@kms_vblank@pipe-c-wait-forked.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/shard-tglb5/igt@kms_vblank@pipe-c-wait-forked.html

  * igt@syncobj_basic@create-signaled:
    - shard-snb:          [PASS][29] -> [TIMEOUT][30] ([i915#1958] / [i915#2119]) +2 similar issues
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/shard-snb4/igt@syncobj_basic@create-signaled.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/shard-snb2/igt@syncobj_basic@create-signaled.html

  
#### Possible fixes ####

  * igt@gem_exec_parallel@fds@rcs0:
    - shard-iclb:         [INCOMPLETE][31] ([i915#2191]) -> [PASS][32]
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/shard-iclb8/igt@gem_exec_parallel@fds@rcs0.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/shard-iclb5/igt@gem_exec_parallel@fds@rcs0.html

  * igt@gem_exec_whisper@basic-fds:
    - shard-glk:          [DMESG-WARN][33] ([i915#118] / [i915#95]) -> [PASS][34]
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/shard-glk4/igt@gem_exec_whisper@basic-fds.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/shard-glk8/igt@gem_exec_whisper@basic-fds.html

  * {igt@gem_huc_copy@huc-copy}:
    - shard-tglb:         [SKIP][35] ([i915#2190]) -> [PASS][36]
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/shard-tglb6/igt@gem_huc_copy@huc-copy.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/shard-tglb3/igt@gem_huc_copy@huc-copy.html

  * igt@i915_module_load@reload:
    - shard-tglb:         [DMESG-WARN][37] ([i915#402]) -> [PASS][38] +2 similar issues
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/shard-tglb8/igt@i915_module_load@reload.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/shard-tglb3/igt@i915_module_load@reload.html

  * igt@kms_cursor_crc@pipe-a-cursor-64x64-sliding:
    - shard-snb:          [SKIP][39] ([fdo#109271]) -> [PASS][40] +1 similar issue
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/shard-snb2/igt@kms_cursor_crc@pipe-a-cursor-64x64-sliding.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/shard-snb6/igt@kms_cursor_crc@pipe-a-cursor-64x64-sliding.html

  * igt@kms_cursor_crc@pipe-c-cursor-64x21-random:
    - shard-kbl:          [FAIL][41] ([i915#54]) -> [PASS][42]
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/shard-kbl7/igt@kms_cursor_crc@pipe-c-cursor-64x21-random.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/shard-kbl7/igt@kms_cursor_crc@pipe-c-cursor-64x21-random.html
    - shard-apl:          [FAIL][43] ([i915#1635] / [i915#54]) -> [PASS][44]
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/shard-apl8/igt@kms_cursor_crc@pipe-c-cursor-64x21-random.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/shard-apl6/igt@kms_cursor_crc@pipe-c-cursor-64x21-random.html

  * igt@kms_cursor_legacy@2x-flip-vs-cursor-legacy:
    - shard-glk:          [FAIL][45] ([i915#72]) -> [PASS][46]
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/shard-glk8/igt@kms_cursor_legacy@2x-flip-vs-cursor-legacy.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/shard-glk9/igt@kms_cursor_legacy@2x-flip-vs-cursor-legacy.html

  * igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-render:
    - shard-tglb:         [DMESG-WARN][47] ([i915#1982]) -> [PASS][48] +4 similar issues
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/shard-tglb2/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-render.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/shard-tglb2/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbc-badstride:
    - shard-glk:          [DMESG-WARN][49] ([i915#1982]) -> [PASS][50]
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/shard-glk1/igt@kms_frontbuffer_tracking@fbc-badstride.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/shard-glk5/igt@kms_frontbuffer_tracking@fbc-badstride.html

  * igt@kms_psr@psr2_cursor_plane_onoff:
    - shard-tglb:         [SKIP][51] ([i915#668]) -> [PASS][52]
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/shard-tglb8/igt@kms_psr@psr2_cursor_plane_onoff.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/shard-tglb8/igt@kms_psr@psr2_cursor_plane_onoff.html
    - shard-iclb:         [SKIP][53] ([fdo#109441]) -> [PASS][54]
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/shard-iclb1/igt@kms_psr@psr2_cursor_plane_onoff.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/shard-iclb2/igt@kms_psr@psr2_cursor_plane_onoff.html

  * igt@kms_universal_plane@universal-plane-pipe-b-functional:
    - shard-apl:          [FAIL][55] ([i915#1635] / [i915#331]) -> [PASS][56]
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/shard-apl3/igt@kms_universal_plane@universal-plane-pipe-b-functional.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/shard-apl1/igt@kms_universal_plane@universal-plane-pipe-b-functional.html
    - shard-kbl:          [FAIL][57] ([i915#331]) -> [PASS][58]
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/shard-kbl7/igt@kms_universal_plane@universal-plane-pipe-b-functional.html
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/shard-kbl7/igt@kms_universal_plane@universal-plane-pipe-b-functional.html

  * igt@kms_vblank@pipe-a-ts-continuation-suspend:
    - shard-kbl:          [DMESG-WARN][59] ([i915#180]) -> [PASS][60] +2 similar issues
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/shard-kbl4/igt@kms_vblank@pipe-a-ts-continuation-suspend.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/shard-kbl4/igt@kms_vblank@pipe-a-ts-continuation-suspend.html

  * igt@perf_pmu@semaphore-busy@rcs0:
    - shard-kbl:          [FAIL][61] ([i915#1820]) -> [PASS][62]
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/shard-kbl1/igt@perf_pmu@semaphore-busy@rcs0.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/shard-kbl2/igt@perf_pmu@semaphore-busy@rcs0.html

  * igt@prime_mmap@test_correct:
    - shard-snb:          [TIMEOUT][63] ([i915#1958] / [i915#2119]) -> [PASS][64]
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/shard-snb1/igt@prime_mmap@test_correct.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/shard-snb4/igt@prime_mmap@test_correct.html
    - shard-hsw:          [TIMEOUT][65] ([i915#1958] / [i915#2119]) -> [PASS][66]
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/shard-hsw6/igt@prime_mmap@test_correct.html
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/shard-hsw6/igt@prime_mmap@test_correct.html

  * igt@sysfs_timeslice_duration@timeout@vecs0:
    - shard-apl:          [FAIL][67] ([i915#1635] / [i915#1755]) -> [PASS][68]
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/shard-apl4/igt@sysfs_timeslice_duration@timeout@vecs0.html
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/shard-apl3/igt@sysfs_timeslice_duration@timeout@vecs0.html

  
#### Warnings ####

  * igt@gem_exec_reloc@basic-spin-others@vcs0:
    - shard-snb:          [WARN][69] ([i915#2021]) -> [WARN][70] ([i915#2036])
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/shard-snb5/igt@gem_exec_reloc@basic-spin-others@vcs0.html
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/shard-snb1/igt@gem_exec_reloc@basic-spin-others@vcs0.html

  * igt@kms_content_protection@srm:
    - shard-kbl:          [TIMEOUT][71] ([i915#1319] / [i915#1958] / [i915#2119]) -> [TIMEOUT][72] ([i915#1319] / [i915#2119]) +1 similar issue
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/shard-kbl6/igt@kms_content_protection@srm.html
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/shard-kbl7/igt@kms_content_protection@srm.html

  * igt@kms_cursor_crc@pipe-b-cursor-suspend:
    - shard-kbl:          [INCOMPLETE][73] ([i915#155]) -> [DMESG-WARN][74] ([i915#180])
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/shard-kbl4/igt@kms_cursor_crc@pipe-b-cursor-suspend.html
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/shard-kbl4/igt@kms_cursor_crc@pipe-b-cursor-suspend.html

  * igt@kms_cursor_edge_walk@pipe-d-128x128-top-edge:
    - shard-snb:          [TIMEOUT][75] ([i915#1958] / [i915#2119]) -> [SKIP][76] ([fdo#109271]) +2 similar issues
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/shard-snb1/igt@kms_cursor_edge_walk@pipe-d-128x128-top-edge.html
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/shard-snb1/igt@kms_cursor_edge_walk@pipe-d-128x128-top-edge.html

  * igt@kms_dp_dsc@basic-dsc-enable-edp:
    - shard-snb:          [SKIP][77] ([fdo#109271]) -> [TIMEOUT][78] ([i915#1958] / [i915#2119]) +2 similar issues
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/shard-snb5/igt@kms_dp_dsc@basic-dsc-enable-edp.html
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/shard-snb2/igt@kms_dp_dsc@basic-dsc-enable-edp.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-move:
    - shard-hsw:          [TIMEOUT][79] ([i915#1958] / [i915#2119]) -> [SKIP][80] ([fdo#109271]) +1 similar issue
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/shard-hsw6/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-move.html
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/shard-hsw4/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-move.html

  * igt@kms_vblank@pipe-d-ts-continuation-modeset:
    - shard-hsw:          [SKIP][81] ([fdo#109271]) -> [TIMEOUT][82] ([i915#1958] / [i915#2119]) +1 similar issue
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8771/shard-hsw4/igt@kms_vblank@pipe-d-ts-continuation-modeset.html
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/shard-hsw6/igt@kms_vblank@pipe-d-ts-continuation-modeset.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [i915#118]: https://gitlab.freedesktop.org/drm/intel/issues/118
  [i915#1319]: https://gitlab.freedesktop.org/drm/intel/issues/1319
  [i915#1436]: https://gitlab.freedesktop.org/drm/intel/issues/1436
  [i915#155]: https://gitlab.freedesktop.org/drm/intel/issues/155
  [i915#1635]: https://gitlab.freedesktop.org/drm/intel/issues/1635
  [i915#1755]: https://gitlab.freedesktop.org/drm/intel/issues/1755
  [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
  [i915#1820]: https://gitlab.freedesktop.org/drm/intel/issues/1820
  [i915#1823]: https://gitlab.freedesktop.org/drm/intel/issues/1823
  [i915#1930]: https://gitlab.freedesktop.org/drm/intel/issues/1930
  [i915#1958]: https://gitlab.freedesktop.org/drm/intel/issues/1958
  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [i915#2021]: https://gitlab.freedesktop.org/drm/intel/issues/2021
  [i915#2036]: https://gitlab.freedesktop.org/drm/intel/issues/2036
  [i915#2119]: https://gitlab.freedesktop.org/drm/intel/issues/2119
  [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [i915#2191]: https://gitlab.freedesktop.org/drm/intel/issues/2191
  [i915#331]: https://gitlab.freedesktop.org/drm/intel/issues/331
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
  [i915#54]: https://gitlab.freedesktop.org/drm/intel/issues/54
  [i915#57]: https://gitlab.freedesktop.org/drm/intel/issues/57
  [i915#668]: https://gitlab.freedesktop.org/drm/intel/issues/668
  [i915#716]: https://gitlab.freedesktop.org/drm/intel/issues/716
  [i915#72]: https://gitlab.freedesktop.org/drm/intel/issues/72
  [i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95


Participating hosts (10 -> 8)
------------------------------

  Missing    (2): pig-skl-6260u pig-glk-j5005 


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_5742 -> IGTPW_4786
  * Piglit: piglit_4509 -> None

  CI-20190529: 20190529
  CI_DRM_8771: 03db6c5382b72d68bbb20e253f24acf199de15f2 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_4786: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/index.html
  IGT_5742: 540f9de91ab2816885a9076a4c0835cb3dc67a97 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4786/index.html

[-- Attachment #1.2: Type: text/html, Size: 24096 bytes --]

[-- Attachment #2: Type: text/plain, Size: 154 bytes --]

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [igt-dev] [PATCH i-g-t] tests/kms_dither: Add new IGT test to validate crtc Dithering
  2020-07-20 16:50 [igt-dev] [PATCH i-g-t] Add new IGT test to validate crtc Dithering Bhanuprakash Modem
                   ` (4 preceding siblings ...)
  2020-07-21 17:19 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
@ 2020-07-21 21:48 ` Bhanuprakash Modem
  2020-07-22 15:14   ` Sharma, Swati2
  2020-07-23 22:55   ` [igt-dev] [PATCH i-g-t] tests/kms_dither: New IGT " Bhanuprakash Modem
  2020-07-23 15:28 ` [igt-dev] ✗ GitLab.Pipeline: warning for Add new IGT test to validate crtc Dithering (rev3) Patchwork
                   ` (7 subsequent siblings)
  13 siblings, 2 replies; 26+ messages in thread
From: Bhanuprakash Modem @ 2020-07-21 21:48 UTC (permalink / raw)
  To: bhanuprakash.modem, igt-dev

Even though feature Dithering is there since legacy, there is no
specific IGT for this.

This patch will create New IGT for Dithering. And below is the
truth table for CRTC Dithering.

|----------------|---------|-------------|
|  Frame buffer  |  Panel  |  Dithering  |
|----------------|---------|-------------|
|      8 BPC     |  6 BPC  |     Yes     |
|----------------|---------|-------------|
|      8 BPC     |  8 BPC  |     No      |
|----------------|---------|-------------|
|      8 BPC     | 10 BPC  |     No      |
|----------------|---------|-------------|
|     10 BPC     |  6 BPC  |     Yes     |
|----------------|---------|-------------|
|     10 BPC     |  8 BPC  |     Yes     |
|----------------|---------|-------------|
|     10 BPC     | 10 BPC  |     No      |
|----------------|---------|-------------|
|     16 BPC     |  6 BPC  |     Yes     |
|----------------|---------|-------------|
|     16 BPC     |  8 BPC  |     Yes     |
|----------------|---------|-------------|
|     16 BPC     | 10 BPC  |     Yes     |
|----------------|---------|-------------|

v2:
* Fix commit message (Karthik)
* Add file author (Karthik)
* Dynamic subtests for pipe-output combinations (Karthik)
* Update deprecated pipe name (Karthik)
* Remove redundant fb creation logic (Karthik)

Cc: Swati Sharma <swati2.sharma@intel.com>
Cc: Karthik B S <karthik.b.s@intel.com>
Cc: Uma Shankar <uma.shankar@intel.com>
Cc: Pankaj Bharadiya <pankaj.laxminarayan.bharadiya@intel.com>
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
---
 tests/Makefile.sources |   1 +
 tests/kms_dither.c     | 257 +++++++++++++++++++++++++++++++++++++++++
 tests/meson.build      |   1 +
 3 files changed, 259 insertions(+)
 create mode 100644 tests/kms_dither.c

diff --git a/tests/Makefile.sources b/tests/Makefile.sources
index 0653c3d3..e816037c 100644
--- a/tests/Makefile.sources
+++ b/tests/Makefile.sources
@@ -43,6 +43,7 @@ TESTS_progs = \
 	kms_cursor_crc \
 	kms_cursor_edge_walk \
 	kms_cursor_legacy \
+	kms_dither \
 	kms_dp_aux_dev \
 	kms_dp_dsc \
 	kms_dp_tiled_display \
diff --git a/tests/kms_dither.c b/tests/kms_dither.c
new file mode 100644
index 00000000..0d517e74
--- /dev/null
+++ b/tests/kms_dither.c
@@ -0,0 +1,257 @@
+/*
+ * Copyright © 2020 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ *     Bhanuprakash Modem <bhanuprakash.modem@intel.com>
+ *
+ */
+
+#include "igt.h"
+#include <fcntl.h>
+#include <termios.h>
+#include <unistd.h>
+
+IGT_TEST_DESCRIPTION("Test Dithering block status");
+
+/* Connector BPC */
+#define IGT_CONNECTOR_BPC_6		6
+#define IGT_CONNECTOR_BPC_8		8
+#define IGT_CONNECTOR_BPC_10		10
+#define IGT_CONNECTOR_BPC_12		12
+
+/* Framebuffer BPC */
+#define IGT_FRAME_BUFFER_BPC_8		8
+#define IGT_FRAME_BUFFER_BPC_10		10
+#define IGT_FRAME_BUFFER_BPC_16		16
+
+/* Test flags. */
+enum {
+	TEST_NONE = 1 << 0,
+	TEST_SUSPEND = 1 << 1,
+};
+
+/* Common test data. */
+typedef struct data {
+	igt_display_t display;
+	igt_plane_t *primary;
+	igt_output_t *output;
+	igt_pipe_t *pipe;
+	drmModeModeInfo *mode;
+	enum pipe pipe_id;
+	int drm_fd;
+	igt_fb_t fb;
+} data_t;
+
+/* Prepare test data. */
+static void prepare_test(data_t *data, igt_output_t *output, enum pipe pipe)
+{
+	igt_display_t *display = &data->display;
+
+	data->pipe_id = pipe;
+	data->pipe = &data->display.pipes[data->pipe_id];
+	igt_assert(data->pipe);
+
+	igt_display_reset(display);
+
+	data->output = output;
+	igt_assert(data->output);
+
+	data->mode = igt_output_get_mode(data->output);
+	igt_assert(data->mode);
+
+	data->primary =
+		igt_pipe_get_plane_type(data->pipe, DRM_PLANE_TYPE_PRIMARY);
+
+	igt_output_set_pipe(data->output, data->pipe_id);
+}
+
+/* Returns the current state of dithering from the crtc debugfs. */
+static bool get_dither_state(data_t *data)
+{
+	char buf[256];
+	char crtc_name[7];
+	char *start_loc;
+	int fd, res;
+	unsigned int status;
+
+	snprintf(crtc_name, 7, "crtc-%d", data->pipe_id);
+	fd = igt_debugfs_open(data->drm_fd, crtc_name, O_RDONLY);
+	igt_assert(fd >= 0);
+
+	res = igt_debugfs_simple_read(fd, "dither", buf, sizeof(buf));
+	igt_require(res > 0);
+	close(fd);
+
+	igt_assert(start_loc = strstr(buf, "Dither: "));
+	igt_assert_eq(sscanf(start_loc, "Dither: %u", &status), 1);
+
+	return !!status;
+}
+
+/* Returns the current and maximum bpc from the connector debugfs. */
+static unsigned int get_output_bpc(data_t *data, igt_output_t *output)
+{
+	char buf[256];
+	char *start_loc;
+	int fd, res;
+	unsigned int max_bpc;
+
+	fd = igt_debugfs_connector_dir(data->drm_fd, output->name, O_RDONLY);
+	igt_assert(fd >= 0);
+
+	res = igt_debugfs_simple_read(fd, "output_bpc", buf, sizeof(buf));
+
+	igt_require(res > 0);
+
+	close(fd);
+
+	igt_assert(start_loc = strstr(buf, "Maximum: "));
+	igt_assert_eq(sscanf(start_loc, "Maximum: %u", &max_bpc), 1);
+
+	return max_bpc;
+}
+
+static void test_dithering(data_t *data, enum pipe pipe,
+			   igt_output_t *output, int fb_bpc,
+			   int output_bpc, uint32_t flags)
+{
+	igt_display_t *display = &data->display;
+	bool enabled;
+
+	igt_info("Dithering test execution on %s PIPE_%s\n",
+			output->name, kmstest_pipe_name(pipe));
+	prepare_test(data, output, pipe);
+
+	igt_plane_set_fb(data->primary, &data->fb);
+	igt_plane_set_size(data->primary, data->mode->hdisplay, data->mode->vdisplay);
+	igt_output_set_prop_value(data->output, IGT_CONNECTOR_MAX_BPC, output_bpc);
+	igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
+
+	/* Check the status of Dithering block
+	 * If fb_bpc is greater than output_bpc, Dithering should be Enabled
+	 * else Disabled
+	 */
+	enabled = get_dither_state(data);
+	if (fb_bpc > output_bpc)
+		igt_assert_f(enabled, "(fb_%dbpc > output_%dbpc): Dither should be enabled\n",
+				fb_bpc, output_bpc);
+	else
+		igt_assert_f(!enabled, "(fb_%dbpc <= output_%dbpc): Dither should be disabled\n",
+				fb_bpc, output_bpc);
+
+	igt_plane_set_fb(data->primary, NULL);
+	igt_output_set_pipe(output, PIPE_NONE);
+	igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
+	return;
+}
+
+/* Returns true if an output supports max bpc property. */
+static bool has_max_bpc(igt_output_t *output)
+{
+        return igt_output_has_prop(output, IGT_CONNECTOR_MAX_BPC) &&
+               igt_output_get_prop(output, IGT_CONNECTOR_MAX_BPC);
+}
+
+static void
+run_dither_test(data_t *data, int fb_bpc, int fb_format, int output_bpc,
+		uint32_t flags)
+{
+	igt_output_t *output;
+	igt_display_t *display = &data->display;
+	enum pipe pipe;
+	unsigned int max_bpc;
+	int valid_outputs = 0;
+
+	for_each_connected_output(display, output) {
+		if (!has_max_bpc(output))
+			continue;
+
+		max_bpc = get_output_bpc(data, output);
+		if(max_bpc < output_bpc)
+			continue;
+
+		igt_assert(igt_create_fb(data->drm_fd, 512, 512, fb_format,
+				LOCAL_DRM_FORMAT_MOD_NONE,
+				&data->fb)
+			  );
+		for_each_pipe(display, pipe) {
+			igt_dynamic_f("connector-%s-pipe-%s", output->name, kmstest_pipe_name(pipe)) {
+				if (!igt_pipe_connector_valid(pipe, output))
+					continue;
+				test_dithering(data, pipe, output, fb_bpc, output_bpc, flags);
+			}
+		}
+		igt_remove_fb(data->drm_fd, &data->fb);
+
+		valid_outputs++;
+	}
+
+	igt_require_f(valid_outputs, "No connector found with MAX BPC connector property. (or) "
+				     "No connector found with Max Panel BPC (%d) >= %d.\n",
+		      max_bpc, output_bpc);
+}
+
+igt_main
+{
+	struct {
+		int bpc;
+		int format;
+	} fb_formats[] = {
+		{ IGT_FRAME_BUFFER_BPC_8, DRM_FORMAT_RGB888 },
+		{ IGT_FRAME_BUFFER_BPC_10, DRM_FORMAT_XRGB2101010 },
+		{ IGT_FRAME_BUFFER_BPC_16, DRM_FORMAT_XRGB16161616F },
+	};
+	int output_bpc[] = {
+		IGT_CONNECTOR_BPC_6,
+		IGT_CONNECTOR_BPC_8,
+		IGT_CONNECTOR_BPC_10
+	};
+	int i, j;
+	data_t data = { 0 };
+
+	igt_fixture {
+		data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
+		kmstest_set_vt_graphics_mode();
+
+		igt_display_require(&data.display, data.drm_fd);
+		igt_display_require_output(&data.display);
+	}
+
+	for (i = 0; i < ARRAY_SIZE(fb_formats); i++) {
+		for (j = 0; j < ARRAY_SIZE(output_bpc); j++) {
+			igt_describe_f("Framebuffer BPC:%d, Panel BPC:%d, Expected Dither:%s\n",
+				       fb_formats[i].bpc, output_bpc[j],
+				       (fb_formats[i].bpc > output_bpc[j]) ? "Enable": "Disable");
+
+			igt_subtest_with_dynamic_f("FB-%dBPC-Vs-Panel-%dBPC", fb_formats[i].bpc, output_bpc[j])
+				run_dither_test(&data,
+						fb_formats[i].bpc,
+						fb_formats[i].format,
+						output_bpc[j],
+						TEST_NONE);
+		}
+	}
+
+	igt_fixture {
+		igt_display_fini(&data.display);
+	}
+}
diff --git a/tests/meson.build b/tests/meson.build
index cfe508c4..05a9cfb8 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -27,6 +27,7 @@ test_progs = [
 	'kms_cursor_crc',
 	'kms_cursor_edge_walk',
 	'kms_cursor_legacy',
+	'kms_dither',
 	'kms_dp_aux_dev',
 	'kms_dp_dsc',
 	'kms_dp_tiled_display',
-- 
2.20.1

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* Re: [igt-dev] [PATCH i-g-t] tests/kms_dither: Add new IGT test to validate crtc Dithering
  2020-07-21 21:48 ` [igt-dev] [PATCH i-g-t] tests/kms_dither: Add new IGT test to validate crtc Dithering Bhanuprakash Modem
@ 2020-07-22 15:14   ` Sharma, Swati2
  2020-07-23  5:53     ` Modem, Bhanuprakash
  2020-07-23 22:55   ` [igt-dev] [PATCH i-g-t] tests/kms_dither: New IGT " Bhanuprakash Modem
  1 sibling, 1 reply; 26+ messages in thread
From: Sharma, Swati2 @ 2020-07-22 15:14 UTC (permalink / raw)
  To: Bhanuprakash Modem, igt-dev

Hi,

Please find my review comments inline.

On 22-Jul-20 3:18 AM, Bhanuprakash Modem wrote:
> Even though feature Dithering is there since legacy, there is no
> specific IGT for this.

Can you please give little bit intro about dithering?

> 
> This patch will create New IGT for Dithering. And below is the
> truth table for CRTC Dithering.
> 

It will be nice if you can explain logic behind following truth table here?
Like you mentioned
"If fb BPC is greater than the panel BPC, driver should enable dithering 
else disable."

> |----------------|---------|-------------|
> |  Frame buffer  |  Panel  |  Dithering  |
> |----------------|---------|-------------|
> |      8 BPC     |  6 BPC  |     Yes     |
> |----------------|---------|-------------|
> |      8 BPC     |  8 BPC  |     No      |
> |----------------|---------|-------------|
> |      8 BPC     | 10 BPC  |     No      |
> |----------------|---------|-------------|
> |     10 BPC     |  6 BPC  |     Yes     |
> |----------------|---------|-------------|
> |     10 BPC     |  8 BPC  |     Yes     |
> |----------------|---------|-------------|
> |     10 BPC     | 10 BPC  |     No      |
> |----------------|---------|-------------|
> |     16 BPC     |  6 BPC  |     Yes     |
> |----------------|---------|-------------|
> |     16 BPC     |  8 BPC  |     Yes     |
> |----------------|---------|-------------|
> |     16 BPC     | 10 BPC  |     Yes     |
> |----------------|---------|-------------|

Also why are we missing 12BPC FB?

> 
> v2:
> * Fix commit message (Karthik)
> * Add file author (Karthik)
> * Dynamic subtests for pipe-output combinations (Karthik)
> * Update deprecated pipe name (Karthik)
> * Remove redundant fb creation logic (Karthik)
> 
> Cc: Swati Sharma <swati2.sharma@intel.com>
> Cc: Karthik B S <karthik.b.s@intel.com>
> Cc: Uma Shankar <uma.shankar@intel.com>
> Cc: Pankaj Bharadiya <pankaj.laxminarayan.bharadiya@intel.com>
> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
> ---
>   tests/Makefile.sources |   1 +
>   tests/kms_dither.c     | 257 +++++++++++++++++++++++++++++++++++++++++
>   tests/meson.build      |   1 +
>   3 files changed, 259 insertions(+)
>   create mode 100644 tests/kms_dither.c
> 
> diff --git a/tests/Makefile.sources b/tests/Makefile.sources
> index 0653c3d3..e816037c 100644
> --- a/tests/Makefile.sources
> +++ b/tests/Makefile.sources
> @@ -43,6 +43,7 @@ TESTS_progs = \
>   	kms_cursor_crc \
>   	kms_cursor_edge_walk \
>   	kms_cursor_legacy \
> +	kms_dither \
>   	kms_dp_aux_dev \
>   	kms_dp_dsc \
>   	kms_dp_tiled_display \
> diff --git a/tests/kms_dither.c b/tests/kms_dither.c
> new file mode 100644
> index 00000000..0d517e74
> --- /dev/null
> +++ b/tests/kms_dither.c
> @@ -0,0 +1,257 @@
> +/*
> + * Copyright © 2020 Intel Corporation
> + *
> + * Permission is hereby granted, free of charge, to any person obtaining a
> + * copy of this software and associated documentation files (the "Software"),
> + * to deal in the Software without restriction, including without limitation
> + * the rights to use, copy, modify, merge, publish, distribute, sublicense,
> + * and/or sell copies of the Software, and to permit persons to whom the
> + * Software is furnished to do so, subject to the following conditions:
> + *
> + * The above copyright notice and this permission notice (including the next
> + * paragraph) shall be included in all copies or substantial portions of the
> + * Software.
> + *
> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
> + * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
> + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
> + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
> + * OTHER DEALINGS IN THE SOFTWARE.
> + *
> + * Authors:
> + *     Bhanuprakash Modem <bhanuprakash.modem@intel.com>
> + *

Extra \n?

> + */
> +
> +#include "igt.h"
> +#include <fcntl.h>
> +#include <termios.h>
> +#include <unistd.h>
> +
> +IGT_TEST_DESCRIPTION("Test Dithering block status");
> +
> +/* Connector BPC */
> +#define IGT_CONNECTOR_BPC_6		6
> +#define IGT_CONNECTOR_BPC_8		8
> +#define IGT_CONNECTOR_BPC_10		10
> +#define IGT_CONNECTOR_BPC_12		12
> +
> +/* Framebuffer BPC */
> +#define IGT_FRAME_BUFFER_BPC_8		8
> +#define IGT_FRAME_BUFFER_BPC_10		10
> +#define IGT_FRAME_BUFFER_BPC_16		16

Should 12 bpc FB be added?

> +
> +/* Test flags. */
> +enum {
> +	TEST_NONE = 1 << 0,
> +	TEST_SUSPEND = 1 << 1,
> +};
> +
> +/* Common test data. */
> +typedef struct data {
> +	igt_display_t display;
> +	igt_plane_t *primary;
> +	igt_output_t *output;
> +	igt_pipe_t *pipe;
> +	drmModeModeInfo *mode;
> +	enum pipe pipe_id;
> +	int drm_fd;
> +	igt_fb_t fb;
> +} data_t;
> +
> +/* Prepare test data. */
> +static void prepare_test(data_t *data, igt_output_t *output, enum pipe pipe)
> +{
> +	igt_display_t *display = &data->display;
> +
> +	data->pipe_id = pipe;
> +	data->pipe = &data->display.pipes[data->pipe_id];
> +	igt_assert(data->pipe);
> +
> +	igt_display_reset(display);
> +
> +	data->output = output;
> +	igt_assert(data->output);
> +
> +	data->mode = igt_output_get_mode(data->output);
> +	igt_assert(data->mode);
> +
> +	data->primary =
> +		igt_pipe_get_plane_type(data->pipe, DRM_PLANE_TYPE_PRIMARY);
> +
> +	igt_output_set_pipe(data->output, data->pipe_id);
> +}
> +
> +/* Returns the current state of dithering from the crtc debugfs. */
> +static bool get_dither_state(data_t *data)
> +{
> +	char buf[256];
> +	char crtc_name[7];
> +	char *start_loc;
> +	int fd, res;
> +	unsigned int status;
> +
> +	snprintf(crtc_name, 7, "crtc-%d", data->pipe_id);
> +	fd = igt_debugfs_open(data->drm_fd, crtc_name, O_RDONLY);
> +	igt_assert(fd >= 0);
> +
> +	res = igt_debugfs_simple_read(fd, "dither", buf, sizeof(buf));
> +	igt_require(res > 0);
> +	close(fd);
> +
> +	igt_assert(start_loc = strstr(buf, "Dither: "));
> +	igt_assert_eq(sscanf(start_loc, "Dither: %u", &status), 1);
> +
> +	return !!status;
> +}
> +
> +/* Returns the current and maximum bpc from the connector debugfs. */

Func is not returning current bpc only max_bpc is getting returned.
Correct comment.

> +static unsigned int get_output_bpc(data_t *data, igt_output_t *output)
> +{
> +	char buf[256];
> +	char *start_loc;
> +	int fd, res;
> +	unsigned int max_bpc;
> +
> +	fd = igt_debugfs_connector_dir(data->drm_fd, output->name, O_RDONLY);
> +	igt_assert(fd >= 0);
> +
> +	res = igt_debugfs_simple_read(fd, "output_bpc", buf, sizeof(buf));
> +
> +	igt_require(res > 0);
> +
> +	close(fd);
> +
> +	igt_assert(start_loc = strstr(buf, "Maximum: "));
> +	igt_assert_eq(sscanf(start_loc, "Maximum: %u", &max_bpc), 1);
> +
> +	return max_bpc;
> +}
> +
> +static void test_dithering(data_t *data, enum pipe pipe,
> +			   igt_output_t *output, int fb_bpc,
> +			   int output_bpc, uint32_t flags)
> +{
> +	igt_display_t *display = &data->display;
> +	bool enabled;
> +
> +	igt_info("Dithering test execution on %s PIPE_%s\n",
> +			output->name, kmstest_pipe_name(pipe));
> +	prepare_test(data, output, pipe);
> +
> +	igt_plane_set_fb(data->primary, &data->fb);
> +	igt_plane_set_size(data->primary, data->mode->hdisplay, data->mode->vdisplay);
> +	igt_output_set_prop_value(data->output, IGT_CONNECTOR_MAX_BPC, output_bpc);
> +	igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
> +
> +	/* Check the status of Dithering block
> +	 * If fb_bpc is greater than output_bpc, Dithering should be Enabled
> +	 * else Disabled
> +	 */
> +	enabled = get_dither_state(data);
> +	if (fb_bpc > output_bpc)
> +		igt_assert_f(enabled, "(fb_%dbpc > output_%dbpc): Dither should be enabled\n",
> +				fb_bpc, output_bpc);
> +	else
> +		igt_assert_f(!enabled, "(fb_%dbpc <= output_%dbpc): Dither should be disabled\n",
> +				fb_bpc, output_bpc);
> +
> +	igt_plane_set_fb(data->primary, NULL);
> +	igt_output_set_pipe(output, PIPE_NONE);
> +	igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);

Insert a \n here.

> +	return;
> +}
> +
> +/* Returns true if an output supports max bpc property. */
> +static bool has_max_bpc(igt_output_t *output)
> +{
> +        return igt_output_has_prop(output, IGT_CONNECTOR_MAX_BPC) &&
> +               igt_output_get_prop(output, IGT_CONNECTOR_MAX_BPC);
> +}
> +
> +static void
> +run_dither_test(data_t *data, int fb_bpc, int fb_format, int output_bpc,
> +		uint32_t flags)
> +{
> +	igt_output_t *output;
> +	igt_display_t *display = &data->display;
> +	enum pipe pipe;
> +	unsigned int max_bpc;
> +	int valid_outputs = 0;
> +
> +	for_each_connected_output(display, output) {
> +		if (!has_max_bpc(output))
> +			continue;
> +
> +		max_bpc = get_output_bpc(data, output);
> +		if(max_bpc < output_bpc)
> +			continue;
> +
> +		igt_assert(igt_create_fb(data->drm_fd, 512, 512, fb_format,
> +				LOCAL_DRM_FORMAT_MOD_NONE,
> +				&data->fb)
> +			  );
> +		for_each_pipe(display, pipe) {
> +			igt_dynamic_f("connector-%s-pipe-%s", output->name, kmstest_pipe_name(pipe)) {
> +				if (!igt_pipe_connector_valid(pipe, output))
> +					continue;
> +				test_dithering(data, pipe, output, fb_bpc, output_bpc, flags);
> +			}
> +		}
> +		igt_remove_fb(data->drm_fd, &data->fb);
> +
> +		valid_outputs++;
> +	}
> +
> +	igt_require_f(valid_outputs, "No connector found with MAX BPC connector property. (or) "
> +				     "No connector found with Max Panel BPC (%d) >= %d.\n",
> +		      max_bpc, output_bpc);
> +}
> +
> +igt_main
> +{
> +	struct {
> +		int bpc;
> +		int format;
> +	} fb_formats[] = {
> +		{ IGT_FRAME_BUFFER_BPC_8, DRM_FORMAT_RGB888 },
> +		{ IGT_FRAME_BUFFER_BPC_10, DRM_FORMAT_XRGB2101010 },
> +		{ IGT_FRAME_BUFFER_BPC_16, DRM_FORMAT_XRGB16161616F },
> +	} > +	int output_bpc[] = {
> +		IGT_CONNECTOR_BPC_6,
> +		IGT_CONNECTOR_BPC_8,
> +		IGT_CONNECTOR_BPC_10
> +	};

Should these strucs be defined outside igt_main()?

> +	int i, j;
> +	data_t data = { 0 };
> +
> +	igt_fixture {
> +		data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
> +		kmstest_set_vt_graphics_mode();
> +
> +		igt_display_require(&data.display, data.drm_fd);
> +		igt_display_require_output(&data.display);
> +	}
> +
> +	for (i = 0; i < ARRAY_SIZE(fb_formats); i++) {
> +		for (j = 0; j < ARRAY_SIZE(output_bpc); j++) {
> +			igt_describe_f("Framebuffer BPC:%d, Panel BPC:%d, Expected Dither:%s\n",
> +				       fb_formats[i].bpc, output_bpc[j],
> +				       (fb_formats[i].bpc > output_bpc[j]) ? "Enable": "Disable"); > +
> +			igt_subtest_with_dynamic_f("FB-%dBPC-Vs-Panel-%dBPC", fb_formats[i].bpc, output_bpc[j])
> +				run_dither_test(&data,
> +						fb_formats[i].bpc,
> +						fb_formats[i].format,
> +						output_bpc[j],
> +						TEST_NONE);
> +		}
> +	}
> +
> +	igt_fixture {
> +		igt_display_fini(&data.display);
> +	}
> +}
> diff --git a/tests/meson.build b/tests/meson.build
> index cfe508c4..05a9cfb8 100644
> --- a/tests/meson.build
> +++ b/tests/meson.build
> @@ -27,6 +27,7 @@ test_progs = [
>   	'kms_cursor_crc',
>   	'kms_cursor_edge_walk',
>   	'kms_cursor_legacy',
> +	'kms_dither',
>   	'kms_dp_aux_dev',
>   	'kms_dp_dsc',
>   	'kms_dp_tiled_display',
> 
Overall it looks good. However on CI tests are getting skipped.
Can you please get IGT+Kernel patches tested together?

-- 
~Swati Sharma
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [igt-dev] [PATCH i-g-t] tests/kms_dither: Add new IGT test to validate crtc Dithering
  2020-07-22 15:14   ` Sharma, Swati2
@ 2020-07-23  5:53     ` Modem, Bhanuprakash
  0 siblings, 0 replies; 26+ messages in thread
From: Modem, Bhanuprakash @ 2020-07-23  5:53 UTC (permalink / raw)
  To: Sharma, Swati2, igt-dev

> -----Original Message-----
> From: Sharma, Swati2 <swati2.sharma@intel.com>
> Sent: Wednesday, July 22, 2020 8:45 PM
> To: Modem, Bhanuprakash <bhanuprakash.modem@intel.com>; igt-
> dev@lists.freedesktop.org
> Cc: B S, Karthik <karthik.b.s@intel.com>; Shankar, Uma
> <uma.shankar@intel.com>; Laxminarayan Bharadiya, Pankaj
> <pankaj.laxminarayan.bharadiya@intel.com>
> Subject: Re: [PATCH i-g-t] tests/kms_dither: Add new IGT test to validate
> crtc Dithering
> 
> Hi,
> 
> Please find my review comments inline.
> 
> On 22-Jul-20 3:18 AM, Bhanuprakash Modem wrote:
> > Even though feature Dithering is there since legacy, there is no
> > specific IGT for this.
> 
> Can you please give little bit intro about dithering?
> 
> >
> > This patch will create New IGT for Dithering. And below is the
> > truth table for CRTC Dithering.
> >
> 
> It will be nice if you can explain logic behind following truth table
> here?
> Like you mentioned
> "If fb BPC is greater than the panel BPC, driver should enable dithering
> else disable."
> 
> > |----------------|---------|-------------|
> > |  Frame buffer  |  Panel  |  Dithering  |
> > |----------------|---------|-------------|
> > |      8 BPC     |  6 BPC  |     Yes     |
> > |----------------|---------|-------------|
> > |      8 BPC     |  8 BPC  |     No      |
> > |----------------|---------|-------------|
> > |      8 BPC     | 10 BPC  |     No      |
> > |----------------|---------|-------------|
> > |     10 BPC     |  6 BPC  |     Yes     |
> > |----------------|---------|-------------|
> > |     10 BPC     |  8 BPC  |     Yes     |
> > |----------------|---------|-------------|
> > |     10 BPC     | 10 BPC  |     No      |
> > |----------------|---------|-------------|
> > |     16 BPC     |  6 BPC  |     Yes     |
> > |----------------|---------|-------------|
> > |     16 BPC     |  8 BPC  |     Yes     |
> > |----------------|---------|-------------|
> > |     16 BPC     | 10 BPC  |     Yes     |
> > |----------------|---------|-------------|
> 
> Also why are we missing 12BPC FB?
[Bhanu] I think 12 BPC format is not available for RGB. 
> 
> >
> > v2:
> > * Fix commit message (Karthik)
> > * Add file author (Karthik)
> > * Dynamic subtests for pipe-output combinations (Karthik)
> > * Update deprecated pipe name (Karthik)
> > * Remove redundant fb creation logic (Karthik)
> >
> > Cc: Swati Sharma <swati2.sharma@intel.com>
> > Cc: Karthik B S <karthik.b.s@intel.com>
> > Cc: Uma Shankar <uma.shankar@intel.com>
> > Cc: Pankaj Bharadiya <pankaj.laxminarayan.bharadiya@intel.com>
> > Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
> > ---
> >   tests/Makefile.sources |   1 +
> >   tests/kms_dither.c     | 257 +++++++++++++++++++++++++++++++++++++++++
> >   tests/meson.build      |   1 +
> >   3 files changed, 259 insertions(+)
> >   create mode 100644 tests/kms_dither.c
> >
> > diff --git a/tests/Makefile.sources b/tests/Makefile.sources
> > index 0653c3d3..e816037c 100644
> > --- a/tests/Makefile.sources
> > +++ b/tests/Makefile.sources
> > @@ -43,6 +43,7 @@ TESTS_progs = \
> >   	kms_cursor_crc \
> >   	kms_cursor_edge_walk \
> >   	kms_cursor_legacy \
> > +	kms_dither \
> >   	kms_dp_aux_dev \
> >   	kms_dp_dsc \
> >   	kms_dp_tiled_display \
> > diff --git a/tests/kms_dither.c b/tests/kms_dither.c
> > new file mode 100644
> > index 00000000..0d517e74
> > --- /dev/null
> > +++ b/tests/kms_dither.c
> > @@ -0,0 +1,257 @@
> > +/*
> > + * Copyright © 2020 Intel Corporation
> > + *
> > + * Permission is hereby granted, free of charge, to any person
> obtaining a
> > + * copy of this software and associated documentation files (the
> "Software"),
> > + * to deal in the Software without restriction, including without
> limitation
> > + * the rights to use, copy, modify, merge, publish, distribute,
> sublicense,
> > + * and/or sell copies of the Software, and to permit persons to whom
> the
> > + * Software is furnished to do so, subject to the following conditions:
> > + *
> > + * The above copyright notice and this permission notice (including the
> next
> > + * paragraph) shall be included in all copies or substantial portions
> of the
> > + * Software.
> > + *
> > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> EXPRESS OR
> > + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
> MERCHANTABILITY,
> > + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT
> SHALL
> > + * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM,
> DAMAGES OR
> > + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
> OTHERWISE,
> > + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
> OR
> > + * OTHER DEALINGS IN THE SOFTWARE.
> > + *
> > + * Authors:
> > + *     Bhanuprakash Modem <bhanuprakash.modem@intel.com>
> > + *
> 
> Extra \n?
> 
> > + */
> > +
> > +#include "igt.h"
> > +#include <fcntl.h>
> > +#include <termios.h>
> > +#include <unistd.h>
> > +
> > +IGT_TEST_DESCRIPTION("Test Dithering block status");
> > +
> > +/* Connector BPC */
> > +#define IGT_CONNECTOR_BPC_6		6
> > +#define IGT_CONNECTOR_BPC_8		8
> > +#define IGT_CONNECTOR_BPC_10		10
> > +#define IGT_CONNECTOR_BPC_12		12
> > +
> > +/* Framebuffer BPC */
> > +#define IGT_FRAME_BUFFER_BPC_8		8
> > +#define IGT_FRAME_BUFFER_BPC_10		10
> > +#define IGT_FRAME_BUFFER_BPC_16		16
> 
> Should 12 bpc FB be added?
[Bhanu] 12 bpc format is not there in RGB, shall we rename these macros like IGT_RGB_FRAME_BUFFER_BPC_8 etc..? 
> 
> > +
> > +/* Test flags. */
> > +enum {
> > +	TEST_NONE = 1 << 0,
> > +	TEST_SUSPEND = 1 << 1,
> > +};
> > +
> > +/* Common test data. */
> > +typedef struct data {
> > +	igt_display_t display;
> > +	igt_plane_t *primary;
> > +	igt_output_t *output;
> > +	igt_pipe_t *pipe;
> > +	drmModeModeInfo *mode;
> > +	enum pipe pipe_id;
> > +	int drm_fd;
> > +	igt_fb_t fb;
> > +} data_t;
> > +
> > +/* Prepare test data. */
> > +static void prepare_test(data_t *data, igt_output_t *output, enum pipe
> pipe)
> > +{
> > +	igt_display_t *display = &data->display;
> > +
> > +	data->pipe_id = pipe;
> > +	data->pipe = &data->display.pipes[data->pipe_id];
> > +	igt_assert(data->pipe);
> > +
> > +	igt_display_reset(display);
> > +
> > +	data->output = output;
> > +	igt_assert(data->output);
> > +
> > +	data->mode = igt_output_get_mode(data->output);
> > +	igt_assert(data->mode);
> > +
> > +	data->primary =
> > +		igt_pipe_get_plane_type(data->pipe, DRM_PLANE_TYPE_PRIMARY);
> > +
> > +	igt_output_set_pipe(data->output, data->pipe_id);
> > +}
> > +
> > +/* Returns the current state of dithering from the crtc debugfs. */
> > +static bool get_dither_state(data_t *data)
> > +{
> > +	char buf[256];
> > +	char crtc_name[7];
> > +	char *start_loc;
> > +	int fd, res;
> > +	unsigned int status;
> > +
> > +	snprintf(crtc_name, 7, "crtc-%d", data->pipe_id);
> > +	fd = igt_debugfs_open(data->drm_fd, crtc_name, O_RDONLY);
> > +	igt_assert(fd >= 0);
> > +
> > +	res = igt_debugfs_simple_read(fd, "dither", buf, sizeof(buf));
> > +	igt_require(res > 0);
> > +	close(fd);
> > +
> > +	igt_assert(start_loc = strstr(buf, "Dither: "));
> > +	igt_assert_eq(sscanf(start_loc, "Dither: %u", &status), 1);
> > +
> > +	return !!status;
> > +}
> > +
> > +/* Returns the current and maximum bpc from the connector debugfs. */
> 
> Func is not returning current bpc only max_bpc is getting returned.
> Correct comment.
> 
> > +static unsigned int get_output_bpc(data_t *data, igt_output_t *output)
> > +{
> > +	char buf[256];
> > +	char *start_loc;
> > +	int fd, res;
> > +	unsigned int max_bpc;
> > +
> > +	fd = igt_debugfs_connector_dir(data->drm_fd, output->name,
> O_RDONLY);
> > +	igt_assert(fd >= 0);
> > +
> > +	res = igt_debugfs_simple_read(fd, "output_bpc", buf, sizeof(buf));
> > +
> > +	igt_require(res > 0);
> > +
> > +	close(fd);
> > +
> > +	igt_assert(start_loc = strstr(buf, "Maximum: "));
> > +	igt_assert_eq(sscanf(start_loc, "Maximum: %u", &max_bpc), 1);
> > +
> > +	return max_bpc;
> > +}
> > +
> > +static void test_dithering(data_t *data, enum pipe pipe,
> > +			   igt_output_t *output, int fb_bpc,
> > +			   int output_bpc, uint32_t flags)
> > +{
> > +	igt_display_t *display = &data->display;
> > +	bool enabled;
> > +
> > +	igt_info("Dithering test execution on %s PIPE_%s\n",
> > +			output->name, kmstest_pipe_name(pipe));
> > +	prepare_test(data, output, pipe);
> > +
> > +	igt_plane_set_fb(data->primary, &data->fb);
> > +	igt_plane_set_size(data->primary, data->mode->hdisplay, data->mode-
> >vdisplay);
> > +	igt_output_set_prop_value(data->output, IGT_CONNECTOR_MAX_BPC,
> output_bpc);
> > +	igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC :
> COMMIT_LEGACY);
> > +
> > +	/* Check the status of Dithering block
> > +	 * If fb_bpc is greater than output_bpc, Dithering should be Enabled
> > +	 * else Disabled
> > +	 */
> > +	enabled = get_dither_state(data);
> > +	if (fb_bpc > output_bpc)
> > +		igt_assert_f(enabled, "(fb_%dbpc > output_%dbpc): Dither should
> be enabled\n",
> > +				fb_bpc, output_bpc);
> > +	else
> > +		igt_assert_f(!enabled, "(fb_%dbpc <= output_%dbpc): Dither
> should be disabled\n",
> > +				fb_bpc, output_bpc);
> > +
> > +	igt_plane_set_fb(data->primary, NULL);
> > +	igt_output_set_pipe(output, PIPE_NONE);
> > +	igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC :
> COMMIT_LEGACY);
> 
> Insert a \n here.
> 
> > +	return;
> > +}
> > +
> > +/* Returns true if an output supports max bpc property. */
> > +static bool has_max_bpc(igt_output_t *output)
> > +{
> > +        return igt_output_has_prop(output, IGT_CONNECTOR_MAX_BPC) &&
> > +               igt_output_get_prop(output, IGT_CONNECTOR_MAX_BPC);
> > +}
> > +
> > +static void
> > +run_dither_test(data_t *data, int fb_bpc, int fb_format, int
> output_bpc,
> > +		uint32_t flags)
> > +{
> > +	igt_output_t *output;
> > +	igt_display_t *display = &data->display;
> > +	enum pipe pipe;
> > +	unsigned int max_bpc;
> > +	int valid_outputs = 0;
> > +
> > +	for_each_connected_output(display, output) {
> > +		if (!has_max_bpc(output))
> > +			continue;
> > +
> > +		max_bpc = get_output_bpc(data, output);
> > +		if(max_bpc < output_bpc)
> > +			continue;
> > +
> > +		igt_assert(igt_create_fb(data->drm_fd, 512, 512, fb_format,
> > +				LOCAL_DRM_FORMAT_MOD_NONE,
> > +				&data->fb)
> > +			  );
> > +		for_each_pipe(display, pipe) {
> > +			igt_dynamic_f("connector-%s-pipe-%s", output->name,
> kmstest_pipe_name(pipe)) {
> > +				if (!igt_pipe_connector_valid(pipe, output))
> > +					continue;
> > +				test_dithering(data, pipe, output, fb_bpc,
> output_bpc, flags);
> > +			}
> > +		}
> > +		igt_remove_fb(data->drm_fd, &data->fb);
> > +
> > +		valid_outputs++;
> > +	}
> > +
> > +	igt_require_f(valid_outputs, "No connector found with MAX BPC
> connector property. (or) "
> > +				     "No connector found with Max Panel BPC (%d) >=
> %d.\n",
> > +		      max_bpc, output_bpc);
> > +}
> > +
> > +igt_main
> > +{
> > +	struct {
> > +		int bpc;
> > +		int format;
> > +	} fb_formats[] = {
> > +		{ IGT_FRAME_BUFFER_BPC_8, DRM_FORMAT_RGB888 },
> > +		{ IGT_FRAME_BUFFER_BPC_10, DRM_FORMAT_XRGB2101010 },
> > +		{ IGT_FRAME_BUFFER_BPC_16, DRM_FORMAT_XRGB16161616F },
> > +	} > +	int output_bpc[] = {
> > +		IGT_CONNECTOR_BPC_6,
> > +		IGT_CONNECTOR_BPC_8,
> > +		IGT_CONNECTOR_BPC_10
> > +	};
> 
> Should these strucs be defined outside igt_main()?
[Bhanu] No other function is directly accessing these structs, I think this can be ok to keep inside the main().
> 
> > +	int i, j;
> > +	data_t data = { 0 };
> > +
> > +	igt_fixture {
> > +		data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
> > +		kmstest_set_vt_graphics_mode();
> > +
> > +		igt_display_require(&data.display, data.drm_fd);
> > +		igt_display_require_output(&data.display);
> > +	}
> > +
> > +	for (i = 0; i < ARRAY_SIZE(fb_formats); i++) {
> > +		for (j = 0; j < ARRAY_SIZE(output_bpc); j++) {
> > +			igt_describe_f("Framebuffer BPC:%d, Panel BPC:%d,
> Expected Dither:%s\n",
> > +				       fb_formats[i].bpc, output_bpc[j],
> > +				       (fb_formats[i].bpc > output_bpc[j]) ?
> "Enable": "Disable"); > +
> > +			igt_subtest_with_dynamic_f("FB-%dBPC-Vs-Panel-%dBPC",
> fb_formats[i].bpc, output_bpc[j])
> > +				run_dither_test(&data,
> > +						fb_formats[i].bpc,
> > +						fb_formats[i].format,
> > +						output_bpc[j],
> > +						TEST_NONE);
> > +		}
> > +	}
> > +
> > +	igt_fixture {
> > +		igt_display_fini(&data.display);
> > +	}
> > +}
> > diff --git a/tests/meson.build b/tests/meson.build
> > index cfe508c4..05a9cfb8 100644
> > --- a/tests/meson.build
> > +++ b/tests/meson.build
> > @@ -27,6 +27,7 @@ test_progs = [
> >   	'kms_cursor_crc',
> >   	'kms_cursor_edge_walk',
> >   	'kms_cursor_legacy',
> > +	'kms_dither',
> >   	'kms_dp_aux_dev',
> >   	'kms_dp_dsc',
> >   	'kms_dp_tiled_display',
> >
> Overall it looks good. However on CI tests are getting skipped.
> Can you please get IGT+Kernel patches tested together?
> 
> --
> ~Swati Sharma
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [igt-dev] ✗ GitLab.Pipeline: warning for Add new IGT test to validate crtc Dithering (rev3)
  2020-07-20 16:50 [igt-dev] [PATCH i-g-t] Add new IGT test to validate crtc Dithering Bhanuprakash Modem
                   ` (5 preceding siblings ...)
  2020-07-21 21:48 ` [igt-dev] [PATCH i-g-t] tests/kms_dither: Add new IGT test to validate crtc Dithering Bhanuprakash Modem
@ 2020-07-23 15:28 ` Patchwork
  2020-07-23 15:35 ` [igt-dev] ✗ Fi.CI.BAT: failure " Patchwork
                   ` (6 subsequent siblings)
  13 siblings, 0 replies; 26+ messages in thread
From: Patchwork @ 2020-07-23 15:28 UTC (permalink / raw)
  To: Bhanuprakash Modem; +Cc: igt-dev

== Series Details ==

Series: Add new IGT test to validate crtc Dithering (rev3)
URL   : https://patchwork.freedesktop.org/series/79661/
State : warning

== Summary ==

Did not get list of undocumented tests for this run, something is wrong!

Other than that, pipeline status: FAILED.

see https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/pipelines/181216 for the overview.

build:tests-fedora has failed (https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/jobs/3770125):
  Using Docker executor with image registry.freedesktop.org/gfx-ci/igt-ci-tags/build-fedora:commit-7c27fc9636dd5a6db464749cc9f32627b36d6a35 ...
  Authenticating with credentials from job payload (GitLab Registry)
  Pulling docker image registry.freedesktop.org/gfx-ci/igt-ci-tags/build-fedora:commit-7c27fc9636dd5a6db464749cc9f32627b36d6a35 ...
  Using docker image sha256:4b3054d89ef79f9be95501786fbbbe22857d02c867fff99693808cd80909939f for registry.freedesktop.org/gfx-ci/igt-ci-tags/build-fedora:commit-7c27fc9636dd5a6db464749cc9f32627b36d6a35 ...
  section_end:1595517314:prepare_executor
  section_start:1595517314:prepare_script
  Preparing environment
  Running on runner-z2cifdyy-project-3185-concurrent-0 via gst-htz-3...
  section_end:1595517314:prepare_script
  section_start:1595517314:get_sources
  Getting source from Git repository
  $ eval "$CI_PRE_CLONE_SCRIPT"
  Fetching changes...
  Initialized empty Git repository in /builds/gfx-ci/igt-ci-tags/.git/
  Created fresh repository.
  error: RPC failed; curl 92 HTTP/2 stream 0 was not closed cleanly: Unknown error code (err 1)
  fatal: the remote end hung up unexpectedly
  section_end:1595517379:get_sources
  ERROR: Job failed: exit code 1
  

build:tests-fedora-oldest-meson has failed (https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/jobs/3770127):
  Using Docker executor with image registry.freedesktop.org/gfx-ci/igt-ci-tags/build-fedora:commit-7c27fc9636dd5a6db464749cc9f32627b36d6a35 ...
  Authenticating with credentials from job payload (GitLab Registry)
  Pulling docker image registry.freedesktop.org/gfx-ci/igt-ci-tags/build-fedora:commit-7c27fc9636dd5a6db464749cc9f32627b36d6a35 ...
  Using docker image sha256:4b3054d89ef79f9be95501786fbbbe22857d02c867fff99693808cd80909939f for registry.freedesktop.org/gfx-ci/igt-ci-tags/build-fedora:commit-7c27fc9636dd5a6db464749cc9f32627b36d6a35 ...
  section_end:1595517338:prepare_executor
  section_start:1595517338:prepare_script
  Preparing environment
  Running on runner-z2cifdyy-project-3185-concurrent-1 via gst-htz-3...
  section_end:1595517340:prepare_script
  section_start:1595517340:get_sources
  Getting source from Git repository
  $ eval "$CI_PRE_CLONE_SCRIPT"
  Fetching changes...
  Initialized empty Git repository in /builds/gfx-ci/igt-ci-tags/.git/
  Created fresh repository.
  error: RPC failed; curl 92 HTTP/2 stream 0 was not closed cleanly: Unknown error code (err 1)
  fatal: the remote end hung up unexpectedly
  section_end:1595517402:get_sources
  ERROR: Job failed: exit code 1

== Logs ==

For more details see: https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/pipelines/181216
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [igt-dev] ✗ Fi.CI.BAT: failure for Add new IGT test to validate crtc Dithering (rev3)
  2020-07-20 16:50 [igt-dev] [PATCH i-g-t] Add new IGT test to validate crtc Dithering Bhanuprakash Modem
                   ` (6 preceding siblings ...)
  2020-07-23 15:28 ` [igt-dev] ✗ GitLab.Pipeline: warning for Add new IGT test to validate crtc Dithering (rev3) Patchwork
@ 2020-07-23 15:35 ` Patchwork
  2020-07-24  9:01   ` Petri Latvala
  2020-07-24 11:48 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork
                   ` (5 subsequent siblings)
  13 siblings, 1 reply; 26+ messages in thread
From: Patchwork @ 2020-07-23 15:35 UTC (permalink / raw)
  To: Bhanuprakash Modem; +Cc: igt-dev


[-- Attachment #1.1: Type: text/plain, Size: 8240 bytes --]

== Series Details ==

Series: Add new IGT test to validate crtc Dithering (rev3)
URL   : https://patchwork.freedesktop.org/series/79661/
State : failure

== Summary ==

CI Bug Log - changes from IGT_5746 -> IGTPW_4793
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_4793 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_4793, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/index.html

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in IGTPW_4793:

### IGT changes ###

#### Possible regressions ####

  * igt@i915_selftest@live@execlists:
    - fi-cml-s:           [PASS][1] -> [INCOMPLETE][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/fi-cml-s/igt@i915_selftest@live@execlists.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/fi-cml-s/igt@i915_selftest@live@execlists.html

  
Known issues
------------

  Here are the changes found in IGTPW_4793 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_suspend@basic-s3:
    - fi-tgl-u2:          [PASS][3] -> [FAIL][4] ([i915#1888])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/fi-tgl-u2/igt@gem_exec_suspend@basic-s3.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/fi-tgl-u2/igt@gem_exec_suspend@basic-s3.html

  * igt@gem_flink_basic@flink-lifetime:
    - fi-tgl-y:           [PASS][5] -> [DMESG-WARN][6] ([i915#402]) +1 similar issue
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/fi-tgl-y/igt@gem_flink_basic@flink-lifetime.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/fi-tgl-y/igt@gem_flink_basic@flink-lifetime.html

  * igt@i915_module_load@reload:
    - fi-bxt-dsi:         [PASS][7] -> [DMESG-WARN][8] ([i915#1635] / [i915#1982])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/fi-bxt-dsi/igt@i915_module_load@reload.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/fi-bxt-dsi/igt@i915_module_load@reload.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
    - fi-icl-u2:          [PASS][9] -> [DMESG-WARN][10] ([i915#1982]) +1 similar issue
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/fi-icl-u2/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/fi-icl-u2/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html

  
#### Possible fixes ####

  * igt@i915_pm_rpm@module-reload:
    - fi-bsw-kefka:       [DMESG-WARN][11] ([i915#1982]) -> [PASS][12]
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/fi-bsw-kefka/igt@i915_pm_rpm@module-reload.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/fi-bsw-kefka/igt@i915_pm_rpm@module-reload.html
    - fi-bsw-n3050:       [DMESG-WARN][13] ([i915#1982]) -> [PASS][14]
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/fi-bsw-n3050/igt@i915_pm_rpm@module-reload.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/fi-bsw-n3050/igt@i915_pm_rpm@module-reload.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
    - {fi-kbl-7560u}:     [DMESG-WARN][15] ([i915#1982]) -> [PASS][16]
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/fi-kbl-7560u/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/fi-kbl-7560u/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html

  * igt@kms_flip@basic-flip-vs-dpms@b-hdmi-a1:
    - fi-cml-s:           [DMESG-WARN][17] ([i915#1982]) -> [PASS][18]
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/fi-cml-s/igt@kms_flip@basic-flip-vs-dpms@b-hdmi-a1.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/fi-cml-s/igt@kms_flip@basic-flip-vs-dpms@b-hdmi-a1.html

  * igt@kms_flip@basic-flip-vs-wf_vblank@c-edp1:
    - fi-icl-u2:          [DMESG-WARN][19] ([i915#1982]) -> [PASS][20]
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/fi-icl-u2/igt@kms_flip@basic-flip-vs-wf_vblank@c-edp1.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/fi-icl-u2/igt@kms_flip@basic-flip-vs-wf_vblank@c-edp1.html

  * igt@kms_flip@basic-flip-vs-wf_vblank@c-hdmi-a2:
    - fi-skl-guc:         [DMESG-WARN][21] ([i915#2203]) -> [PASS][22]
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/fi-skl-guc/igt@kms_flip@basic-flip-vs-wf_vblank@c-hdmi-a2.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/fi-skl-guc/igt@kms_flip@basic-flip-vs-wf_vblank@c-hdmi-a2.html

  * igt@prime_self_import@basic-with_two_bos:
    - fi-tgl-y:           [DMESG-WARN][23] ([i915#402]) -> [PASS][24] +1 similar issue
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/fi-tgl-y/igt@prime_self_import@basic-with_two_bos.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/fi-tgl-y/igt@prime_self_import@basic-with_two_bos.html

  
#### Warnings ####

  * igt@gem_exec_suspend@basic-s0:
    - fi-kbl-x1275:       [DMESG-WARN][25] ([i915#1982] / [i915#62] / [i915#92] / [i915#95]) -> [DMESG-WARN][26] ([i915#62] / [i915#92] / [i915#95])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/fi-kbl-x1275/igt@gem_exec_suspend@basic-s0.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/fi-kbl-x1275/igt@gem_exec_suspend@basic-s0.html

  * igt@i915_pm_rpm@basic-pci-d3-state:
    - fi-kbl-x1275:       [DMESG-WARN][27] ([i915#62] / [i915#92] / [i915#95]) -> [DMESG-WARN][28] ([i915#62] / [i915#92]) +1 similar issue
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/fi-kbl-x1275/igt@i915_pm_rpm@basic-pci-d3-state.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/fi-kbl-x1275/igt@i915_pm_rpm@basic-pci-d3-state.html

  * igt@kms_cursor_legacy@basic-flip-after-cursor-legacy:
    - fi-kbl-x1275:       [DMESG-WARN][29] ([i915#62] / [i915#92]) -> [DMESG-WARN][30] ([i915#62] / [i915#92] / [i915#95]) +8 similar issues
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/fi-kbl-x1275/igt@kms_cursor_legacy@basic-flip-after-cursor-legacy.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/fi-kbl-x1275/igt@kms_cursor_legacy@basic-flip-after-cursor-legacy.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [i915#1635]: https://gitlab.freedesktop.org/drm/intel/issues/1635
  [i915#1888]: https://gitlab.freedesktop.org/drm/intel/issues/1888
  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [i915#2203]: https://gitlab.freedesktop.org/drm/intel/issues/2203
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
  [i915#62]: https://gitlab.freedesktop.org/drm/intel/issues/62
  [i915#92]: https://gitlab.freedesktop.org/drm/intel/issues/92
  [i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95


Participating hosts (47 -> 40)
------------------------------

  Missing    (7): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-byt-clapper fi-bdw-samus 


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_5746 -> IGTPW_4793

  CI-20190529: 20190529
  CI_DRM_8778: 5ead5989a42079951e6f0b7b6a072a690df0b985 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_4793: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/index.html
  IGT_5746: d818f0c54e5e781ba3fb372aab8f270cf153776c @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools



== Testlist changes ==

+igt@kms_dither@fb-8bpc-vs-panel-6bpc
+igt@kms_dither@fb-8bpc-vs-panel-8bpc
+igt@kms_dither@fb-8bpc-vs-panel-10bpc
+igt@kms_dither@fb-10bpc-vs-panel-6bpc
+igt@kms_dither@fb-10bpc-vs-panel-8bpc
+igt@kms_dither@fb-10bpc-vs-panel-10bpc
+igt@kms_dither@fb-16bpc-vs-panel-6bpc
+igt@kms_dither@fb-16bpc-vs-panel-8bpc
+igt@kms_dither@fb-16bpc-vs-panel-10bpc

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/index.html

[-- Attachment #1.2: Type: text/html, Size: 10646 bytes --]

[-- Attachment #2: Type: text/plain, Size: 154 bytes --]

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [igt-dev] [PATCH i-g-t] tests/kms_dither: New IGT to validate crtc Dithering
  2020-07-21 21:48 ` [igt-dev] [PATCH i-g-t] tests/kms_dither: Add new IGT test to validate crtc Dithering Bhanuprakash Modem
  2020-07-22 15:14   ` Sharma, Swati2
@ 2020-07-23 22:55   ` Bhanuprakash Modem
  2020-07-24  8:57     ` Petri Latvala
                       ` (2 more replies)
  1 sibling, 3 replies; 26+ messages in thread
From: Bhanuprakash Modem @ 2020-07-23 22:55 UTC (permalink / raw)
  To: bhanuprakash.modem, igt-dev; +Cc: Petri Latvala

Many of the display devices have color format support less than
the color format of the input data (Ex: 8-bit input data and 6-bit
display color depth). Then the input data will be either truncated
or rounded, but this approach usually causes loss of detail and also
produce large banded areas of a single color that significantly
differs from the original image.

Dithering is a technique used to enhance these colors by creating the
illusion of smoothness by adjusting the nearby pixel color.
For Eg: Converting 8-bit to 6-bit by modifying the pixel information.

Dithering should be enabled when a panel color depth is lower than the
color depth of the framebuffer.

Even though feature Dithering is there since legacy, there is no
specific IGT for this. This patch will create New IGT for Dithering.
And below is the truth table for CRTC Dithering.

|----------------|---------|-------------|
|  Frame buffer  |  Panel  |  Dithering  |
|----------------|---------|-------------|
|      8 BPC     |  6 BPC  |     Yes     |
|----------------|---------|-------------|
|      8 BPC     |  8 BPC  |     No      |
|----------------|---------|-------------|
|      8 BPC     | 10 BPC  |     No      |
|----------------|---------|-------------|
|     10 BPC     |  6 BPC  |     Yes     |
|----------------|---------|-------------|
|     10 BPC     |  8 BPC  |     Yes     |
|----------------|---------|-------------|
|     10 BPC     | 10 BPC  |     No      |
|----------------|---------|-------------|
|     16 BPC     |  6 BPC  |     Yes     |
|----------------|---------|-------------|
|     16 BPC     |  8 BPC  |     Yes     |
|----------------|---------|-------------|
|     16 BPC     | 10 BPC  |     Yes     |
|----------------|---------|-------------|

v2:
* Fix commit message (Karthik)
* Add file author (Karthik)
* Dynamic subtests for pipe-output combinations (Karthik)
* Update deprecated pipe name (Karthik)
* Remove redundant fb creation logic (Karthik)

v3:
* Use for_each_pipe_with_valid_output() to simplify the logic (Bhanu)
* Remove magic numbers to create fb (Karthik)
* Fix typos & comments (Swati)

Cc: Swati Sharma <swati2.sharma@intel.com>
Cc: Karthik B S <karthik.b.s@intel.com>
Cc: Uma Shankar <uma.shankar@intel.com>
Cc: Pankaj Bharadiya <pankaj.laxminarayan.bharadiya@intel.com>
Cc: Petri Latvala <petri.latvala@intel.com>
Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
---
 tests/Makefile.sources |   1 +
 tests/kms_dither.c     | 256 +++++++++++++++++++++++++++++++++++++++++
 tests/meson.build      |   1 +
 3 files changed, 258 insertions(+)
 create mode 100644 tests/kms_dither.c

diff --git a/tests/Makefile.sources b/tests/Makefile.sources
index 0653c3d3..e816037c 100644
--- a/tests/Makefile.sources
+++ b/tests/Makefile.sources
@@ -43,6 +43,7 @@ TESTS_progs = \
 	kms_cursor_crc \
 	kms_cursor_edge_walk \
 	kms_cursor_legacy \
+	kms_dither \
 	kms_dp_aux_dev \
 	kms_dp_dsc \
 	kms_dp_tiled_display \
diff --git a/tests/kms_dither.c b/tests/kms_dither.c
new file mode 100644
index 00000000..22d96d34
--- /dev/null
+++ b/tests/kms_dither.c
@@ -0,0 +1,256 @@
+/*
+ * Copyright © 2020 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ *     Bhanuprakash Modem <bhanuprakash.modem@intel.com>
+ *
+ */
+
+#include "igt.h"
+#include <fcntl.h>
+#include <termios.h>
+#include <unistd.h>
+
+IGT_TEST_DESCRIPTION("Test Dithering block status");
+
+/* Connector BPC */
+#define IGT_CONNECTOR_BPC_6		6
+#define IGT_CONNECTOR_BPC_8		8
+#define IGT_CONNECTOR_BPC_10		10
+#define IGT_CONNECTOR_BPC_12		12
+
+/* Framebuffer BPC */
+#define IGT_FRAME_BUFFER_BPC_8		8
+#define IGT_FRAME_BUFFER_BPC_10		10
+#define IGT_FRAME_BUFFER_BPC_16		16
+
+/* Test flags. */
+enum {
+	TEST_NONE = 1 << 0,
+	TEST_SUSPEND = 1 << 1,
+};
+
+/* Common test data. */
+typedef struct data {
+	igt_display_t display;
+	igt_plane_t *primary;
+	igt_output_t *output;
+	igt_pipe_t *pipe;
+	drmModeModeInfo *mode;
+	enum pipe pipe_id;
+	int drm_fd;
+	igt_fb_t fb;
+} data_t;
+
+/* Prepare test data. */
+static void prepare_test(data_t *data, igt_output_t *output, enum pipe pipe)
+{
+	igt_display_t *display = &data->display;
+
+	data->pipe_id = pipe;
+	data->pipe = &data->display.pipes[data->pipe_id];
+	igt_assert(data->pipe);
+
+	igt_display_reset(display);
+
+	data->output = output;
+	igt_assert(data->output);
+
+	data->mode = igt_output_get_mode(data->output);
+	igt_assert(data->mode);
+
+	data->primary =
+		igt_pipe_get_plane_type(data->pipe, DRM_PLANE_TYPE_PRIMARY);
+
+	igt_output_set_pipe(data->output, data->pipe_id);
+}
+
+/* Returns the current state of dithering from the crtc debugfs. */
+static bool get_dither_state(data_t *data)
+{
+	char buf[256];
+	char crtc_name[7];
+	char *start_loc;
+	int fd, res;
+	unsigned int status;
+
+	snprintf(crtc_name, 7, "crtc-%d", data->pipe_id);
+	fd = igt_debugfs_open(data->drm_fd, crtc_name, O_RDONLY);
+	igt_assert(fd >= 0);
+
+	res = igt_debugfs_simple_read(fd, "dither", buf, sizeof(buf));
+	igt_require(res > 0);
+	close(fd);
+
+	igt_assert(start_loc = strstr(buf, "Dither: "));
+	igt_assert_eq(sscanf(start_loc, "Dither: %u", &status), 1);
+
+	return !!status;
+}
+
+/* Returns the maximum bpc from the connector debugfs. */
+static unsigned int get_output_bpc(data_t *data, igt_output_t *output)
+{
+	char buf[256];
+	char *start_loc;
+	int fd, res;
+	unsigned int max_bpc;
+
+	fd = igt_debugfs_connector_dir(data->drm_fd, output->name, O_RDONLY);
+	igt_assert(fd >= 0);
+
+	res = igt_debugfs_simple_read(fd, "output_bpc", buf, sizeof(buf));
+
+	igt_require(res > 0);
+
+	close(fd);
+
+	igt_assert(start_loc = strstr(buf, "Maximum: "));
+	igt_assert_eq(sscanf(start_loc, "Maximum: %u", &max_bpc), 1);
+
+	return max_bpc;
+}
+
+static void test_dithering(data_t *data, enum pipe pipe,
+			   igt_output_t *output,
+			   int fb_bpc, int fb_format,
+			   int output_bpc, uint32_t flags)
+{
+	igt_display_t *display = &data->display;
+	bool enabled;
+
+	igt_info("Dithering test execution on %s PIPE_%s\n",
+			output->name, kmstest_pipe_name(pipe));
+	prepare_test(data, output, pipe);
+
+	igt_assert(igt_create_fb(data->drm_fd, data->mode->hdisplay,
+				 data->mode->vdisplay, fb_format,
+				 LOCAL_DRM_FORMAT_MOD_NONE, &data->fb));
+	igt_plane_set_fb(data->primary, &data->fb);
+	igt_plane_set_size(data->primary, data->mode->hdisplay, data->mode->vdisplay);
+	igt_output_set_prop_value(data->output, IGT_CONNECTOR_MAX_BPC, output_bpc);
+	igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
+
+	/* Check the status of Dithering block
+	 * If fb_bpc is greater than output_bpc, Dithering should be Enabled
+	 * else Disabled
+	 */
+	enabled = get_dither_state(data);
+	if (fb_bpc > output_bpc)
+		igt_assert_f(enabled, "(fb_%dbpc > output_%dbpc): Dither should be enabled\n",
+				fb_bpc, output_bpc);
+	else
+		igt_assert_f(!enabled, "(fb_%dbpc <= output_%dbpc): Dither should be disabled\n",
+				fb_bpc, output_bpc);
+
+	igt_plane_set_fb(data->primary, NULL);
+	igt_output_set_pipe(output, PIPE_NONE);
+	igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
+
+	igt_remove_fb(data->drm_fd, &data->fb);
+
+	return;
+}
+
+/* Returns true if an output supports max bpc property. */
+static bool has_max_bpc(igt_output_t *output)
+{
+        return igt_output_has_prop(output, IGT_CONNECTOR_MAX_BPC) &&
+               igt_output_get_prop(output, IGT_CONNECTOR_MAX_BPC);
+}
+
+static void
+run_dither_test(data_t *data, int fb_bpc, int fb_format, int output_bpc,
+		uint32_t flags)
+{
+	igt_output_t *output;
+	igt_display_t *display = &data->display;
+	enum pipe pipe;
+	unsigned int max_bpc;
+	int valid_outputs = 0;
+
+	for_each_pipe_with_valid_output(display, pipe, output) {
+		if (!has_max_bpc(output))
+			continue;
+
+		max_bpc = get_output_bpc(data, output);
+		if(max_bpc < output_bpc)
+			continue;
+
+		igt_dynamic_f("%s-on-pipe-%s", output->name, kmstest_pipe_name(pipe))
+			if (igt_pipe_connector_valid(pipe, output))
+				test_dithering(data, pipe, output, fb_bpc,
+					       fb_format, output_bpc, flags);
+
+		valid_outputs++;
+	}
+
+	igt_require_f(valid_outputs, "No connector found with MAX BPC connector property. (or) "
+				     "No connector found with Max Panel BPC (%d) >= %d.\n",
+		      max_bpc, output_bpc);
+}
+
+igt_main
+{
+	struct {
+		int bpc;
+		int format;
+	} fb_formats[] = {
+		{ IGT_FRAME_BUFFER_BPC_8, DRM_FORMAT_RGB888 },
+		{ IGT_FRAME_BUFFER_BPC_10, DRM_FORMAT_XRGB2101010 },
+		{ IGT_FRAME_BUFFER_BPC_16, DRM_FORMAT_XRGB16161616F },
+	};
+	int output_bpc[] = {
+		IGT_CONNECTOR_BPC_6,
+		IGT_CONNECTOR_BPC_8,
+		IGT_CONNECTOR_BPC_10
+	};
+	int i, j;
+	data_t data = { 0 };
+
+	igt_fixture {
+		data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
+		kmstest_set_vt_graphics_mode();
+
+		igt_display_require(&data.display, data.drm_fd);
+		igt_display_require_output(&data.display);
+	}
+
+	for (i = 0; i < ARRAY_SIZE(fb_formats); i++) {
+		for (j = 0; j < ARRAY_SIZE(output_bpc); j++) {
+			igt_describe_f("Framebuffer BPC:%d, Panel BPC:%d, Expected Dither:%s\n",
+				       fb_formats[i].bpc, output_bpc[j],
+				       (fb_formats[i].bpc > output_bpc[j]) ? "Enable": "Disable");
+
+			igt_subtest_with_dynamic_f("FB-%dBPC-Vs-Panel-%dBPC", fb_formats[i].bpc, output_bpc[j])
+				run_dither_test(&data,
+						fb_formats[i].bpc,
+						fb_formats[i].format,
+						output_bpc[j],
+						TEST_NONE);
+		}
+	}
+
+	igt_fixture {
+		igt_display_fini(&data.display);
+	}
+}
diff --git a/tests/meson.build b/tests/meson.build
index cfe508c4..05a9cfb8 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -27,6 +27,7 @@ test_progs = [
 	'kms_cursor_crc',
 	'kms_cursor_edge_walk',
 	'kms_cursor_legacy',
+	'kms_dither',
 	'kms_dp_aux_dev',
 	'kms_dp_dsc',
 	'kms_dp_tiled_display',
-- 
2.20.1

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* Re: [igt-dev] [PATCH i-g-t] tests/kms_dither: New IGT to validate crtc Dithering
  2020-07-23 22:55   ` [igt-dev] [PATCH i-g-t] tests/kms_dither: New IGT " Bhanuprakash Modem
@ 2020-07-24  8:57     ` Petri Latvala
  2020-07-24 11:10     ` Shankar, Uma
  2020-07-26 12:29     ` [igt-dev] [PATCH] " Bhanuprakash Modem
  2 siblings, 0 replies; 26+ messages in thread
From: Petri Latvala @ 2020-07-24  8:57 UTC (permalink / raw)
  To: Bhanuprakash Modem; +Cc: igt-dev

On Fri, Jul 24, 2020 at 04:25:12AM +0530, Bhanuprakash Modem wrote:
> Many of the display devices have color format support less than
> the color format of the input data (Ex: 8-bit input data and 6-bit
> display color depth). Then the input data will be either truncated
> or rounded, but this approach usually causes loss of detail and also
> produce large banded areas of a single color that significantly
> differs from the original image.
> 
> Dithering is a technique used to enhance these colors by creating the
> illusion of smoothness by adjusting the nearby pixel color.
> For Eg: Converting 8-bit to 6-bit by modifying the pixel information.
> 
> Dithering should be enabled when a panel color depth is lower than the
> color depth of the framebuffer.
> 
> Even though feature Dithering is there since legacy, there is no
> specific IGT for this. This patch will create New IGT for Dithering.
> And below is the truth table for CRTC Dithering.
> 
> |----------------|---------|-------------|
> |  Frame buffer  |  Panel  |  Dithering  |
> |----------------|---------|-------------|
> |      8 BPC     |  6 BPC  |     Yes     |
> |----------------|---------|-------------|
> |      8 BPC     |  8 BPC  |     No      |
> |----------------|---------|-------------|
> |      8 BPC     | 10 BPC  |     No      |
> |----------------|---------|-------------|
> |     10 BPC     |  6 BPC  |     Yes     |
> |----------------|---------|-------------|
> |     10 BPC     |  8 BPC  |     Yes     |
> |----------------|---------|-------------|
> |     10 BPC     | 10 BPC  |     No      |
> |----------------|---------|-------------|
> |     16 BPC     |  6 BPC  |     Yes     |
> |----------------|---------|-------------|
> |     16 BPC     |  8 BPC  |     Yes     |
> |----------------|---------|-------------|
> |     16 BPC     | 10 BPC  |     Yes     |
> |----------------|---------|-------------|
> 
> v2:
> * Fix commit message (Karthik)
> * Add file author (Karthik)
> * Dynamic subtests for pipe-output combinations (Karthik)
> * Update deprecated pipe name (Karthik)
> * Remove redundant fb creation logic (Karthik)
> 
> v3:
> * Use for_each_pipe_with_valid_output() to simplify the logic (Bhanu)
> * Remove magic numbers to create fb (Karthik)
> * Fix typos & comments (Swati)
> 
> Cc: Swati Sharma <swati2.sharma@intel.com>
> Cc: Karthik B S <karthik.b.s@intel.com>
> Cc: Uma Shankar <uma.shankar@intel.com>
> Cc: Pankaj Bharadiya <pankaj.laxminarayan.bharadiya@intel.com>
> Cc: Petri Latvala <petri.latvala@intel.com>
> Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
> ---
>  tests/Makefile.sources |   1 +
>  tests/kms_dither.c     | 256 +++++++++++++++++++++++++++++++++++++++++
>  tests/meson.build      |   1 +
>  3 files changed, 258 insertions(+)
>  create mode 100644 tests/kms_dither.c
> 
> diff --git a/tests/Makefile.sources b/tests/Makefile.sources
> index 0653c3d3..e816037c 100644
> --- a/tests/Makefile.sources
> +++ b/tests/Makefile.sources
> @@ -43,6 +43,7 @@ TESTS_progs = \
>  	kms_cursor_crc \
>  	kms_cursor_edge_walk \
>  	kms_cursor_legacy \
> +	kms_dither \
>  	kms_dp_aux_dev \
>  	kms_dp_dsc \
>  	kms_dp_tiled_display \
> diff --git a/tests/kms_dither.c b/tests/kms_dither.c
> new file mode 100644
> index 00000000..22d96d34
> --- /dev/null
> +++ b/tests/kms_dither.c
> @@ -0,0 +1,256 @@
> +/*
> + * Copyright © 2020 Intel Corporation
> + *
> + * Permission is hereby granted, free of charge, to any person obtaining a
> + * copy of this software and associated documentation files (the "Software"),
> + * to deal in the Software without restriction, including without limitation
> + * the rights to use, copy, modify, merge, publish, distribute, sublicense,
> + * and/or sell copies of the Software, and to permit persons to whom the
> + * Software is furnished to do so, subject to the following conditions:
> + *
> + * The above copyright notice and this permission notice (including the next
> + * paragraph) shall be included in all copies or substantial portions of the
> + * Software.
> + *
> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
> + * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
> + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
> + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
> + * OTHER DEALINGS IN THE SOFTWARE.
> + *
> + * Authors:
> + *     Bhanuprakash Modem <bhanuprakash.modem@intel.com>
> + *
> + */
> +
> +#include "igt.h"
> +#include <fcntl.h>
> +#include <termios.h>
> +#include <unistd.h>
> +
> +IGT_TEST_DESCRIPTION("Test Dithering block status");
> +
> +/* Connector BPC */
> +#define IGT_CONNECTOR_BPC_6		6
> +#define IGT_CONNECTOR_BPC_8		8
> +#define IGT_CONNECTOR_BPC_10		10
> +#define IGT_CONNECTOR_BPC_12		12
> +
> +/* Framebuffer BPC */
> +#define IGT_FRAME_BUFFER_BPC_8		8
> +#define IGT_FRAME_BUFFER_BPC_10		10
> +#define IGT_FRAME_BUFFER_BPC_16		16
> +
> +/* Test flags. */
> +enum {
> +	TEST_NONE = 1 << 0,
> +	TEST_SUSPEND = 1 << 1,
> +};
> +
> +/* Common test data. */
> +typedef struct data {
> +	igt_display_t display;
> +	igt_plane_t *primary;
> +	igt_output_t *output;
> +	igt_pipe_t *pipe;
> +	drmModeModeInfo *mode;
> +	enum pipe pipe_id;
> +	int drm_fd;
> +	igt_fb_t fb;
> +} data_t;
> +
> +/* Prepare test data. */
> +static void prepare_test(data_t *data, igt_output_t *output, enum pipe pipe)
> +{
> +	igt_display_t *display = &data->display;
> +
> +	data->pipe_id = pipe;
> +	data->pipe = &data->display.pipes[data->pipe_id];
> +	igt_assert(data->pipe);
> +
> +	igt_display_reset(display);
> +
> +	data->output = output;
> +	igt_assert(data->output);
> +
> +	data->mode = igt_output_get_mode(data->output);
> +	igt_assert(data->mode);
> +
> +	data->primary =
> +		igt_pipe_get_plane_type(data->pipe, DRM_PLANE_TYPE_PRIMARY);
> +
> +	igt_output_set_pipe(data->output, data->pipe_id);
> +}
> +
> +/* Returns the current state of dithering from the crtc debugfs. */
> +static bool get_dither_state(data_t *data)
> +{
> +	char buf[256];
> +	char crtc_name[7];
> +	char *start_loc;
> +	int fd, res;
> +	unsigned int status;
> +
> +	snprintf(crtc_name, 7, "crtc-%d", data->pipe_id);
> +	fd = igt_debugfs_open(data->drm_fd, crtc_name, O_RDONLY);
> +	igt_assert(fd >= 0);
> +
> +	res = igt_debugfs_simple_read(fd, "dither", buf, sizeof(buf));
> +	igt_require(res > 0);
> +	close(fd);
> +
> +	igt_assert(start_loc = strstr(buf, "Dither: "));
> +	igt_assert_eq(sscanf(start_loc, "Dither: %u", &status), 1);
> +
> +	return !!status;
> +}
> +
> +/* Returns the maximum bpc from the connector debugfs. */
> +static unsigned int get_output_bpc(data_t *data, igt_output_t *output)
> +{
> +	char buf[256];
> +	char *start_loc;
> +	int fd, res;
> +	unsigned int max_bpc;
> +
> +	fd = igt_debugfs_connector_dir(data->drm_fd, output->name, O_RDONLY);
> +	igt_assert(fd >= 0);
> +
> +	res = igt_debugfs_simple_read(fd, "output_bpc", buf, sizeof(buf));
> +
> +	igt_require(res > 0);
> +
> +	close(fd);
> +
> +	igt_assert(start_loc = strstr(buf, "Maximum: "));
> +	igt_assert_eq(sscanf(start_loc, "Maximum: %u", &max_bpc), 1);
> +
> +	return max_bpc;
> +}
> +
> +static void test_dithering(data_t *data, enum pipe pipe,
> +			   igt_output_t *output,
> +			   int fb_bpc, int fb_format,
> +			   int output_bpc, uint32_t flags)
> +{
> +	igt_display_t *display = &data->display;
> +	bool enabled;
> +
> +	igt_info("Dithering test execution on %s PIPE_%s\n",
> +			output->name, kmstest_pipe_name(pipe));
> +	prepare_test(data, output, pipe);
> +
> +	igt_assert(igt_create_fb(data->drm_fd, data->mode->hdisplay,
> +				 data->mode->vdisplay, fb_format,
> +				 LOCAL_DRM_FORMAT_MOD_NONE, &data->fb));
> +	igt_plane_set_fb(data->primary, &data->fb);
> +	igt_plane_set_size(data->primary, data->mode->hdisplay, data->mode->vdisplay);
> +	igt_output_set_prop_value(data->output, IGT_CONNECTOR_MAX_BPC, output_bpc);
> +	igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
> +
> +	/* Check the status of Dithering block
> +	 * If fb_bpc is greater than output_bpc, Dithering should be Enabled
> +	 * else Disabled
> +	 */
> +	enabled = get_dither_state(data);
> +	if (fb_bpc > output_bpc)
> +		igt_assert_f(enabled, "(fb_%dbpc > output_%dbpc): Dither should be enabled\n",
> +				fb_bpc, output_bpc);
> +	else
> +		igt_assert_f(!enabled, "(fb_%dbpc <= output_%dbpc): Dither should be disabled\n",
> +				fb_bpc, output_bpc);
> +
> +	igt_plane_set_fb(data->primary, NULL);
> +	igt_output_set_pipe(output, PIPE_NONE);
> +	igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
> +
> +	igt_remove_fb(data->drm_fd, &data->fb);
> +
> +	return;
> +}
> +
> +/* Returns true if an output supports max bpc property. */
> +static bool has_max_bpc(igt_output_t *output)
> +{
> +        return igt_output_has_prop(output, IGT_CONNECTOR_MAX_BPC) &&
> +               igt_output_get_prop(output, IGT_CONNECTOR_MAX_BPC);
> +}
> +
> +static void
> +run_dither_test(data_t *data, int fb_bpc, int fb_format, int output_bpc,
> +		uint32_t flags)
> +{
> +	igt_output_t *output;
> +	igt_display_t *display = &data->display;
> +	enum pipe pipe;
> +	unsigned int max_bpc;
> +	int valid_outputs = 0;
> +
> +	for_each_pipe_with_valid_output(display, pipe, output) {
> +		if (!has_max_bpc(output))
> +			continue;
> +
> +		max_bpc = get_output_bpc(data, output);
> +		if(max_bpc < output_bpc)
> +			continue;
> +
> +		igt_dynamic_f("%s-on-pipe-%s", output->name, kmstest_pipe_name(pipe))
> +			if (igt_pipe_connector_valid(pipe, output))
> +				test_dithering(data, pipe, output, fb_bpc,
> +					       fb_format, output_bpc, flags);
> +
> +		valid_outputs++;
> +	}
> +
> +	igt_require_f(valid_outputs, "No connector found with MAX BPC connector property. (or) "
> +				     "No connector found with Max Panel BPC (%d) >= %d.\n",
> +		      max_bpc, output_bpc);

You don't need to explicitly igt_require that valid outputs were
found. igt_subtest_with_dynamic automatically produces a skip if it
doesn't enter any igt_dynamic blocks.



-- 
Petri Latvala
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [igt-dev] ✗ Fi.CI.BAT: failure for Add new IGT test to validate crtc Dithering (rev3)
  2020-07-23 15:35 ` [igt-dev] ✗ Fi.CI.BAT: failure " Patchwork
@ 2020-07-24  9:01   ` Petri Latvala
  2020-07-24 12:09     ` Vudum, Lakshminarayana
  0 siblings, 1 reply; 26+ messages in thread
From: Petri Latvala @ 2020-07-24  9:01 UTC (permalink / raw)
  To: igt-dev, Lakshminarayana Vudum

On Thu, Jul 23, 2020 at 03:35:53PM +0000, Patchwork wrote:
> == Series Details ==
> 
> Series: Add new IGT test to validate crtc Dithering (rev3)
> URL   : https://patchwork.freedesktop.org/series/79661/
> State : failure
> 
> == Summary ==
> 
> CI Bug Log - changes from IGT_5746 -> IGTPW_4793
> ====================================================
> 
> Summary
> -------
> 
>   **FAILURE**
> 
>   Serious unknown changes coming with IGTPW_4793 absolutely need to be
>   verified manually.
>   
>   If you think the reported changes have nothing to do with the changes
>   introduced in IGTPW_4793, please notify your bug team to allow them
>   to document this new failure mode, which will reduce false positives in CI.
> 
>   External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/index.html
> 
> Possible new issues
> -------------------
> 
>   Here are the unknown changes that may have been introduced in IGTPW_4793:
> 
> ### IGT changes ###
> 
> #### Possible regressions ####
> 
>   * igt@i915_selftest@live@execlists:
>     - fi-cml-s:           [PASS][1] -> [INCOMPLETE][2]
>    [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/fi-cml-s/igt@i915_selftest@live@execlists.html
>    [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/fi-cml-s/igt@i915_selftest@live@execlists.html
> 

Lakshmi, false positive here.


-- 
Petri Latvala
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [igt-dev] [PATCH i-g-t] tests/kms_dither: New IGT to validate crtc Dithering
  2020-07-23 22:55   ` [igt-dev] [PATCH i-g-t] tests/kms_dither: New IGT " Bhanuprakash Modem
  2020-07-24  8:57     ` Petri Latvala
@ 2020-07-24 11:10     ` Shankar, Uma
  2020-07-24 12:56       ` Modem, Bhanuprakash
  2020-07-26 12:29     ` [igt-dev] [PATCH] " Bhanuprakash Modem
  2 siblings, 1 reply; 26+ messages in thread
From: Shankar, Uma @ 2020-07-24 11:10 UTC (permalink / raw)
  To: Modem, Bhanuprakash, igt-dev; +Cc: Latvala, Petri



> -----Original Message-----
> From: Modem, Bhanuprakash <bhanuprakash.modem@intel.com>
> Sent: Friday, July 24, 2020 4:25 AM
> To: Modem, Bhanuprakash <bhanuprakash.modem@intel.com>; igt-
> dev@lists.freedesktop.org
> Cc: Sharma, Swati2 <swati2.sharma@intel.com>; B S, Karthik
> <karthik.b.s@intel.com>; Shankar, Uma <uma.shankar@intel.com>;
> Laxminarayan Bharadiya, Pankaj <pankaj.laxminarayan.bharadiya@intel.com>;
> Latvala, Petri <petri.latvala@intel.com>; Hiler, Arkadiusz
> <arkadiusz.hiler@intel.com>
> Subject: [PATCH i-g-t] tests/kms_dither: New IGT to validate crtc Dithering
> 
> Many of the display devices have color format support less than the color format
> of the input data (Ex: 8-bit input data and 6-bit display color depth). Then the
> input data will be either truncated or rounded, but this approach usually causes
> loss of detail and also produce large banded areas of a single color that
> significantly differs from the original image.
> 
> Dithering is a technique used to enhance these colors by creating the illusion of
> smoothness by adjusting the nearby pixel color.
> For Eg: Converting 8-bit to 6-bit by modifying the pixel information.
> 
> Dithering should be enabled when a panel color depth is lower than the color
> depth of the framebuffer.
> 
> Even though feature Dithering is there since legacy, there is no specific IGT for
> this. This patch will create New IGT for Dithering.
> And below is the truth table for CRTC Dithering.
> 
> |----------------|---------|-------------|
> |  Frame buffer  |  Panel  |  Dithering  |
> |----------------|---------|-------------|
> |      8 BPC     |  6 BPC  |     Yes     |
> |----------------|---------|-------------|
> |      8 BPC     |  8 BPC  |     No      |
> |----------------|---------|-------------|
> |      8 BPC     | 10 BPC  |     No      |
> |----------------|---------|-------------|
> |     10 BPC     |  6 BPC  |     Yes     |
> |----------------|---------|-------------|
> |     10 BPC     |  8 BPC  |     Yes     |
> |----------------|---------|-------------|
> |     10 BPC     | 10 BPC  |     No      |
> |----------------|---------|-------------|
> |     16 BPC     |  6 BPC  |     Yes     |
> |----------------|---------|-------------|
> |     16 BPC     |  8 BPC  |     Yes     |
> |----------------|---------|-------------|
> |     16 BPC     | 10 BPC  |     Yes     |
> |----------------|---------|-------------|
> 
> v2:
> * Fix commit message (Karthik)
> * Add file author (Karthik)
> * Dynamic subtests for pipe-output combinations (Karthik)
> * Update deprecated pipe name (Karthik)
> * Remove redundant fb creation logic (Karthik)
> 
> v3:
> * Use for_each_pipe_with_valid_output() to simplify the logic (Bhanu)
> * Remove magic numbers to create fb (Karthik)
> * Fix typos & comments (Swati)
> 
> Cc: Swati Sharma <swati2.sharma@intel.com>
> Cc: Karthik B S <karthik.b.s@intel.com>
> Cc: Uma Shankar <uma.shankar@intel.com>
> Cc: Pankaj Bharadiya <pankaj.laxminarayan.bharadiya@intel.com>
> Cc: Petri Latvala <petri.latvala@intel.com>
> Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
> ---
>  tests/Makefile.sources |   1 +
>  tests/kms_dither.c     | 256 +++++++++++++++++++++++++++++++++++++++++
>  tests/meson.build      |   1 +
>  3 files changed, 258 insertions(+)
>  create mode 100644 tests/kms_dither.c
> 
> diff --git a/tests/Makefile.sources b/tests/Makefile.sources index
> 0653c3d3..e816037c 100644
> --- a/tests/Makefile.sources
> +++ b/tests/Makefile.sources
> @@ -43,6 +43,7 @@ TESTS_progs = \
>  	kms_cursor_crc \
>  	kms_cursor_edge_walk \
>  	kms_cursor_legacy \
> +	kms_dither \
>  	kms_dp_aux_dev \
>  	kms_dp_dsc \
>  	kms_dp_tiled_display \
> diff --git a/tests/kms_dither.c b/tests/kms_dither.c new file mode 100644 index
> 00000000..22d96d34
> --- /dev/null
> +++ b/tests/kms_dither.c
> @@ -0,0 +1,256 @@
> +/*
> + * Copyright © 2020 Intel Corporation
> + *
> + * Permission is hereby granted, free of charge, to any person
> +obtaining a
> + * copy of this software and associated documentation files (the
> +"Software"),
> + * to deal in the Software without restriction, including without
> +limitation
> + * the rights to use, copy, modify, merge, publish, distribute,
> +sublicense,
> + * and/or sell copies of the Software, and to permit persons to whom
> +the
> + * Software is furnished to do so, subject to the following conditions:
> + *
> + * The above copyright notice and this permission notice (including the
> +next
> + * paragraph) shall be included in all copies or substantial portions
> +of the
> + * Software.
> + *
> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> +EXPRESS OR
> + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
> +MERCHANTABILITY,
> + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT
> +SHALL
> + * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM,
> +DAMAGES OR
> + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
> +OTHERWISE,
> + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
> USE
> +OR
> + * OTHER DEALINGS IN THE SOFTWARE.
> + *
> + * Authors:
> + *     Bhanuprakash Modem <bhanuprakash.modem@intel.com>
> + *
> + */
> +
> +#include "igt.h"
> +#include <fcntl.h>
> +#include <termios.h>
> +#include <unistd.h>
> +
> +IGT_TEST_DESCRIPTION("Test Dithering block status");
> +
> +/* Connector BPC */
> +#define IGT_CONNECTOR_BPC_6		6
> +#define IGT_CONNECTOR_BPC_8		8
> +#define IGT_CONNECTOR_BPC_10		10
> +#define IGT_CONNECTOR_BPC_12		12
> +
> +/* Framebuffer BPC */
> +#define IGT_FRAME_BUFFER_BPC_8		8
> +#define IGT_FRAME_BUFFER_BPC_10		10
> +#define IGT_FRAME_BUFFER_BPC_16		16
> +
> +/* Test flags. */
> +enum {
> +	TEST_NONE = 1 << 0,
> +	TEST_SUSPEND = 1 << 1,
> +};
> +
> +/* Common test data. */
> +typedef struct data {
> +	igt_display_t display;
> +	igt_plane_t *primary;
> +	igt_output_t *output;
> +	igt_pipe_t *pipe;
> +	drmModeModeInfo *mode;
> +	enum pipe pipe_id;
> +	int drm_fd;
> +	igt_fb_t fb;
> +} data_t;
> +
> +/* Prepare test data. */
> +static void prepare_test(data_t *data, igt_output_t *output, enum pipe
> +pipe) {
> +	igt_display_t *display = &data->display;
> +
> +	data->pipe_id = pipe;
> +	data->pipe = &data->display.pipes[data->pipe_id];
> +	igt_assert(data->pipe);
> +
> +	igt_display_reset(display);
> +
> +	data->output = output;
> +	igt_assert(data->output);
> +
> +	data->mode = igt_output_get_mode(data->output);
> +	igt_assert(data->mode);
> +
> +	data->primary =
> +		igt_pipe_get_plane_type(data->pipe,
> DRM_PLANE_TYPE_PRIMARY);
> +
> +	igt_output_set_pipe(data->output, data->pipe_id); }
> +
> +/* Returns the current state of dithering from the crtc debugfs. */
> +static bool get_dither_state(data_t *data) {
> +	char buf[256];
> +	char crtc_name[7];
> +	char *start_loc;
> +	int fd, res;
> +	unsigned int status;
> +
> +	snprintf(crtc_name, 7, "crtc-%d", data->pipe_id);
> +	fd = igt_debugfs_open(data->drm_fd, crtc_name, O_RDONLY);
> +	igt_assert(fd >= 0);
> +
> +	res = igt_debugfs_simple_read(fd, "dither", buf, sizeof(buf));
> +	igt_require(res > 0);
> +	close(fd);
> +
> +	igt_assert(start_loc = strstr(buf, "Dither: "));
> +	igt_assert_eq(sscanf(start_loc, "Dither: %u", &status), 1);
> +
> +	return !!status;
> +}
> +
> +/* Returns the maximum bpc from the connector debugfs. */ static
> +unsigned int get_output_bpc(data_t *data, igt_output_t *output) {
> +	char buf[256];
> +	char *start_loc;
> +	int fd, res;
> +	unsigned int max_bpc;
> +
> +	fd = igt_debugfs_connector_dir(data->drm_fd, output->name,
> O_RDONLY);
> +	igt_assert(fd >= 0);
> +
> +	res = igt_debugfs_simple_read(fd, "output_bpc", buf, sizeof(buf));
> +
> +	igt_require(res > 0);
> +

Drop the extra line.

> +	close(fd);
> +
> +	igt_assert(start_loc = strstr(buf, "Maximum: "));
> +	igt_assert_eq(sscanf(start_loc, "Maximum: %u", &max_bpc), 1);
> +
> +	return max_bpc;
> +}
> +
> +static void test_dithering(data_t *data, enum pipe pipe,
> +			   igt_output_t *output,
> +			   int fb_bpc, int fb_format,
> +			   int output_bpc, uint32_t flags)
> +{
> +	igt_display_t *display = &data->display;
> +	bool enabled;
> +
> +	igt_info("Dithering test execution on %s PIPE_%s\n",
> +			output->name, kmstest_pipe_name(pipe));
> +	prepare_test(data, output, pipe);
> +
> +	igt_assert(igt_create_fb(data->drm_fd, data->mode->hdisplay,
> +				 data->mode->vdisplay, fb_format,
> +				 LOCAL_DRM_FORMAT_MOD_NONE, &data->fb));
> +	igt_plane_set_fb(data->primary, &data->fb);
> +	igt_plane_set_size(data->primary, data->mode->hdisplay, data->mode-
> >vdisplay);
> +	igt_output_set_prop_value(data->output, IGT_CONNECTOR_MAX_BPC,
> output_bpc);
> +	igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC :
> +COMMIT_LEGACY);
> +
> +	/* Check the status of Dithering block

Adopt proper multi line comment style.

> +	 * If fb_bpc is greater than output_bpc, Dithering should be Enabled
> +	 * else Disabled
> +	 */
> +	enabled = get_dither_state(data);
> +	if (fb_bpc > output_bpc)
> +		igt_assert_f(enabled, "(fb_%dbpc > output_%dbpc): Dither
> should be enabled\n",
> +				fb_bpc, output_bpc);
> +	else
> +		igt_assert_f(!enabled, "(fb_%dbpc <= output_%dbpc): Dither
> should be disabled\n",
> +				fb_bpc, output_bpc);

This looks good to validate whether driver returned the right status.
For features like these, I feel we also should try to see the effectiveness
of dithering. I would propose to have some kind of reference images and compare them
with the output what we get. A chamelium based test can be planned to see the really
effectiveness of dithering. We can have reference golden image and do a crc check with
the output grabbed from sink (through Chamelium).

> +	igt_plane_set_fb(data->primary, NULL);
> +	igt_output_set_pipe(output, PIPE_NONE);
> +	igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC :
> +COMMIT_LEGACY);
> +
> +	igt_remove_fb(data->drm_fd, &data->fb);
> +
> +	return;
> +}
> +
> +/* Returns true if an output supports max bpc property. */ static bool
> +has_max_bpc(igt_output_t *output) {
> +        return igt_output_has_prop(output, IGT_CONNECTOR_MAX_BPC) &&
> +               igt_output_get_prop(output, IGT_CONNECTOR_MAX_BPC); }
> +
> +static void
> +run_dither_test(data_t *data, int fb_bpc, int fb_format, int output_bpc,
> +		uint32_t flags)
> +{
> +	igt_output_t *output;
> +	igt_display_t *display = &data->display;
> +	enum pipe pipe;
> +	unsigned int max_bpc;
> +	int valid_outputs = 0;
> +
> +	for_each_pipe_with_valid_output(display, pipe, output) {

Not sure if we should test on so many combinations, it may be overkill I believe
and waste CI execution time. May be we can limit it to just 1 pipe as we have done for
plane. Generally the same logic is applied on all pipes so if it works on 1 pipe, should work
on others as well.

> +		if (!has_max_bpc(output))
> +			continue;
> +
> +		max_bpc = get_output_bpc(data, output);
> +		if(max_bpc < output_bpc)
> +			continue;
> +
> +		igt_dynamic_f("%s-on-pipe-%s", output->name,
> kmstest_pipe_name(pipe))
> +			if (igt_pipe_connector_valid(pipe, output))
> +				test_dithering(data, pipe, output, fb_bpc,
> +					       fb_format, output_bpc, flags);
> +
> +		valid_outputs++;
> +	}
> +
> +	igt_require_f(valid_outputs, "No connector found with MAX BPC
> connector property. (or) "
> +				     "No connector found with Max Panel BPC (%d)
> >= %d.\n",
> +		      max_bpc, output_bpc);
> +}
> +
> +igt_main
> +{
> +	struct {
> +		int bpc;
> +		int format;
> +	} fb_formats[] = {
> +		{ IGT_FRAME_BUFFER_BPC_8, DRM_FORMAT_RGB888 },
> +		{ IGT_FRAME_BUFFER_BPC_10, DRM_FORMAT_XRGB2101010 },
> +		{ IGT_FRAME_BUFFER_BPC_16, DRM_FORMAT_XRGB16161616F },
> +	};
> +	int output_bpc[] = {
> +		IGT_CONNECTOR_BPC_6,
> +		IGT_CONNECTOR_BPC_8,
> +		IGT_CONNECTOR_BPC_10
> +	};

I think you can keep these out of main and have them defined as static. 

Also, please test this out on real monitors and check the behavior.

> +	int i, j;
> +	data_t data = { 0 };
> +
> +	igt_fixture {
> +		data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
> +		kmstest_set_vt_graphics_mode();
> +
> +		igt_display_require(&data.display, data.drm_fd);
> +		igt_display_require_output(&data.display);
> +	}
> +
> +	for (i = 0; i < ARRAY_SIZE(fb_formats); i++) {
> +		for (j = 0; j < ARRAY_SIZE(output_bpc); j++) {
> +			igt_describe_f("Framebuffer BPC:%d, Panel BPC:%d,
> Expected Dither:%s\n",
> +				       fb_formats[i].bpc, output_bpc[j],
> +				       (fb_formats[i].bpc > output_bpc[j]) ?
> "Enable": "Disable");
> +
> +			igt_subtest_with_dynamic_f("FB-%dBPC-Vs-Panel-
> %dBPC", fb_formats[i].bpc, output_bpc[j])
> +				run_dither_test(&data,
> +						fb_formats[i].bpc,
> +						fb_formats[i].format,
> +						output_bpc[j],
> +						TEST_NONE);
> +		}
> +	}
> +
> +	igt_fixture {
> +		igt_display_fini(&data.display);
> +	}
> +}
> diff --git a/tests/meson.build b/tests/meson.build index cfe508c4..05a9cfb8
> 100644
> --- a/tests/meson.build
> +++ b/tests/meson.build
> @@ -27,6 +27,7 @@ test_progs = [
>  	'kms_cursor_crc',
>  	'kms_cursor_edge_walk',
>  	'kms_cursor_legacy',
> +	'kms_dither',
>  	'kms_dp_aux_dev',
>  	'kms_dp_dsc',
>  	'kms_dp_tiled_display',
> --
> 2.20.1

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [igt-dev] ✓ Fi.CI.BAT: success for Add new IGT test to validate crtc Dithering (rev3)
  2020-07-20 16:50 [igt-dev] [PATCH i-g-t] Add new IGT test to validate crtc Dithering Bhanuprakash Modem
                   ` (7 preceding siblings ...)
  2020-07-23 15:35 ` [igt-dev] ✗ Fi.CI.BAT: failure " Patchwork
@ 2020-07-24 11:48 ` Patchwork
  2020-07-24 13:27 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
                   ` (4 subsequent siblings)
  13 siblings, 0 replies; 26+ messages in thread
From: Patchwork @ 2020-07-24 11:48 UTC (permalink / raw)
  To: Bhanuprakash Modem; +Cc: igt-dev


[-- Attachment #1.1: Type: text/plain, Size: 7857 bytes --]

== Series Details ==

Series: Add new IGT test to validate crtc Dithering (rev3)
URL   : https://patchwork.freedesktop.org/series/79661/
State : success

== Summary ==

CI Bug Log - changes from IGT_5746 -> IGTPW_4793
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/index.html

Known issues
------------

  Here are the changes found in IGTPW_4793 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_suspend@basic-s3:
    - fi-tgl-u2:          [PASS][1] -> [FAIL][2] ([i915#1888])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/fi-tgl-u2/igt@gem_exec_suspend@basic-s3.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/fi-tgl-u2/igt@gem_exec_suspend@basic-s3.html

  * igt@gem_flink_basic@flink-lifetime:
    - fi-tgl-y:           [PASS][3] -> [DMESG-WARN][4] ([i915#402]) +1 similar issue
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/fi-tgl-y/igt@gem_flink_basic@flink-lifetime.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/fi-tgl-y/igt@gem_flink_basic@flink-lifetime.html

  * igt@i915_module_load@reload:
    - fi-bxt-dsi:         [PASS][5] -> [DMESG-WARN][6] ([i915#1635] / [i915#1982])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/fi-bxt-dsi/igt@i915_module_load@reload.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/fi-bxt-dsi/igt@i915_module_load@reload.html

  * igt@i915_selftest@live@execlists:
    - fi-cml-s:           [PASS][7] -> [INCOMPLETE][8] ([i915#2120])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/fi-cml-s/igt@i915_selftest@live@execlists.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/fi-cml-s/igt@i915_selftest@live@execlists.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
    - fi-icl-u2:          [PASS][9] -> [DMESG-WARN][10] ([i915#1982]) +1 similar issue
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/fi-icl-u2/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/fi-icl-u2/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html

  
#### Possible fixes ####

  * igt@i915_pm_rpm@module-reload:
    - fi-bsw-kefka:       [DMESG-WARN][11] ([i915#1982]) -> [PASS][12]
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/fi-bsw-kefka/igt@i915_pm_rpm@module-reload.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/fi-bsw-kefka/igt@i915_pm_rpm@module-reload.html
    - fi-bsw-n3050:       [DMESG-WARN][13] ([i915#1982]) -> [PASS][14]
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/fi-bsw-n3050/igt@i915_pm_rpm@module-reload.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/fi-bsw-n3050/igt@i915_pm_rpm@module-reload.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
    - {fi-kbl-7560u}:     [DMESG-WARN][15] ([i915#1982]) -> [PASS][16]
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/fi-kbl-7560u/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/fi-kbl-7560u/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html

  * igt@kms_flip@basic-flip-vs-dpms@b-hdmi-a1:
    - fi-cml-s:           [DMESG-WARN][17] ([i915#1982]) -> [PASS][18]
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/fi-cml-s/igt@kms_flip@basic-flip-vs-dpms@b-hdmi-a1.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/fi-cml-s/igt@kms_flip@basic-flip-vs-dpms@b-hdmi-a1.html

  * igt@kms_flip@basic-flip-vs-wf_vblank@c-edp1:
    - fi-icl-u2:          [DMESG-WARN][19] ([i915#1982]) -> [PASS][20]
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/fi-icl-u2/igt@kms_flip@basic-flip-vs-wf_vblank@c-edp1.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/fi-icl-u2/igt@kms_flip@basic-flip-vs-wf_vblank@c-edp1.html

  * igt@kms_flip@basic-flip-vs-wf_vblank@c-hdmi-a2:
    - fi-skl-guc:         [DMESG-WARN][21] ([i915#2203]) -> [PASS][22]
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/fi-skl-guc/igt@kms_flip@basic-flip-vs-wf_vblank@c-hdmi-a2.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/fi-skl-guc/igt@kms_flip@basic-flip-vs-wf_vblank@c-hdmi-a2.html

  * igt@prime_self_import@basic-with_two_bos:
    - fi-tgl-y:           [DMESG-WARN][23] ([i915#402]) -> [PASS][24] +1 similar issue
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/fi-tgl-y/igt@prime_self_import@basic-with_two_bos.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/fi-tgl-y/igt@prime_self_import@basic-with_two_bos.html

  
#### Warnings ####

  * igt@gem_exec_suspend@basic-s0:
    - fi-kbl-x1275:       [DMESG-WARN][25] ([i915#1982] / [i915#62] / [i915#92] / [i915#95]) -> [DMESG-WARN][26] ([i915#62] / [i915#92] / [i915#95])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/fi-kbl-x1275/igt@gem_exec_suspend@basic-s0.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/fi-kbl-x1275/igt@gem_exec_suspend@basic-s0.html

  * igt@i915_pm_rpm@basic-pci-d3-state:
    - fi-kbl-x1275:       [DMESG-WARN][27] ([i915#62] / [i915#92] / [i915#95]) -> [DMESG-WARN][28] ([i915#62] / [i915#92]) +1 similar issue
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/fi-kbl-x1275/igt@i915_pm_rpm@basic-pci-d3-state.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/fi-kbl-x1275/igt@i915_pm_rpm@basic-pci-d3-state.html

  * igt@kms_cursor_legacy@basic-flip-after-cursor-legacy:
    - fi-kbl-x1275:       [DMESG-WARN][29] ([i915#62] / [i915#92]) -> [DMESG-WARN][30] ([i915#62] / [i915#92] / [i915#95]) +8 similar issues
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/fi-kbl-x1275/igt@kms_cursor_legacy@basic-flip-after-cursor-legacy.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/fi-kbl-x1275/igt@kms_cursor_legacy@basic-flip-after-cursor-legacy.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [i915#1635]: https://gitlab.freedesktop.org/drm/intel/issues/1635
  [i915#1888]: https://gitlab.freedesktop.org/drm/intel/issues/1888
  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [i915#2120]: https://gitlab.freedesktop.org/drm/intel/issues/2120
  [i915#2203]: https://gitlab.freedesktop.org/drm/intel/issues/2203
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
  [i915#62]: https://gitlab.freedesktop.org/drm/intel/issues/62
  [i915#92]: https://gitlab.freedesktop.org/drm/intel/issues/92
  [i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95


Participating hosts (47 -> 40)
------------------------------

  Missing    (7): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-byt-clapper fi-bdw-samus 


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_5746 -> IGTPW_4793

  CI-20190529: 20190529
  CI_DRM_8778: 5ead5989a42079951e6f0b7b6a072a690df0b985 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_4793: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/index.html
  IGT_5746: d818f0c54e5e781ba3fb372aab8f270cf153776c @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools



== Testlist changes ==

+igt@kms_dither@fb-8bpc-vs-panel-6bpc
+igt@kms_dither@fb-8bpc-vs-panel-8bpc
+igt@kms_dither@fb-8bpc-vs-panel-10bpc
+igt@kms_dither@fb-10bpc-vs-panel-6bpc
+igt@kms_dither@fb-10bpc-vs-panel-8bpc
+igt@kms_dither@fb-10bpc-vs-panel-10bpc
+igt@kms_dither@fb-16bpc-vs-panel-6bpc
+igt@kms_dither@fb-16bpc-vs-panel-8bpc
+igt@kms_dither@fb-16bpc-vs-panel-10bpc

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/index.html

[-- Attachment #1.2: Type: text/html, Size: 10251 bytes --]

[-- Attachment #2: Type: text/plain, Size: 154 bytes --]

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [igt-dev] ✗ Fi.CI.BAT: failure for Add new IGT test to validate crtc Dithering (rev3)
  2020-07-24  9:01   ` Petri Latvala
@ 2020-07-24 12:09     ` Vudum, Lakshminarayana
  0 siblings, 0 replies; 26+ messages in thread
From: Vudum, Lakshminarayana @ 2020-07-24 12:09 UTC (permalink / raw)
  To: Latvala, Petri, igt-dev

Re-reported.

-----Original Message-----
From: Latvala, Petri <petri.latvala@intel.com> 
Sent: Friday, July 24, 2020 2:01 AM
To: igt-dev@lists.freedesktop.org; Vudum, Lakshminarayana <lakshminarayana.vudum@intel.com>
Cc: Modem, Bhanuprakash <bhanuprakash.modem@intel.com>
Subject: Re: [igt-dev] ✗ Fi.CI.BAT: failure for Add new IGT test to validate crtc Dithering (rev3)

On Thu, Jul 23, 2020 at 03:35:53PM +0000, Patchwork wrote:
> == Series Details ==
> 
> Series: Add new IGT test to validate crtc Dithering (rev3)
> URL   : https://patchwork.freedesktop.org/series/79661/
> State : failure
> 
> == Summary ==
> 
> CI Bug Log - changes from IGT_5746 -> IGTPW_4793 
> ====================================================
> 
> Summary
> -------
> 
>   **FAILURE**
> 
>   Serious unknown changes coming with IGTPW_4793 absolutely need to be
>   verified manually.
>   
>   If you think the reported changes have nothing to do with the changes
>   introduced in IGTPW_4793, please notify your bug team to allow them
>   to document this new failure mode, which will reduce false positives in CI.
> 
>   External URL: 
> https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/index.html
> 
> Possible new issues
> -------------------
> 
>   Here are the unknown changes that may have been introduced in IGTPW_4793:
> 
> ### IGT changes ###
> 
> #### Possible regressions ####
> 
>   * igt@i915_selftest@live@execlists:
>     - fi-cml-s:           [PASS][1] -> [INCOMPLETE][2]
>    [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/fi-cml-s/igt@i915_selftest@live@execlists.html
>    [2]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/fi-cml-s/igt@i915_
> selftest@live@execlists.html
> 

Lakshmi, false positive here.


--
Petri Latvala
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [igt-dev] [PATCH i-g-t] tests/kms_dither: New IGT to validate crtc Dithering
  2020-07-24 11:10     ` Shankar, Uma
@ 2020-07-24 12:56       ` Modem, Bhanuprakash
  0 siblings, 0 replies; 26+ messages in thread
From: Modem, Bhanuprakash @ 2020-07-24 12:56 UTC (permalink / raw)
  To: Shankar, Uma, igt-dev; +Cc: Latvala, Petri

> -----Original Message-----
> From: Shankar, Uma <uma.shankar@intel.com>
> Sent: Friday, July 24, 2020 4:41 PM
> To: Modem, Bhanuprakash <bhanuprakash.modem@intel.com>; igt-
> dev@lists.freedesktop.org
> Cc: Sharma, Swati2 <swati2.sharma@intel.com>; B S, Karthik
> <karthik.b.s@intel.com>; Laxminarayan Bharadiya, Pankaj
> <pankaj.laxminarayan.bharadiya@intel.com>; Latvala, Petri
> <petri.latvala@intel.com>; Hiler, Arkadiusz <arkadiusz.hiler@intel.com>
> Subject: RE: [PATCH i-g-t] tests/kms_dither: New IGT to validate crtc
> Dithering
> 
> 
> 
> > -----Original Message-----
> > From: Modem, Bhanuprakash <bhanuprakash.modem@intel.com>
> > Sent: Friday, July 24, 2020 4:25 AM
> > To: Modem, Bhanuprakash <bhanuprakash.modem@intel.com>; igt-
> > dev@lists.freedesktop.org
> > Cc: Sharma, Swati2 <swati2.sharma@intel.com>; B S, Karthik
> > <karthik.b.s@intel.com>; Shankar, Uma <uma.shankar@intel.com>;
> > Laxminarayan Bharadiya, Pankaj
> <pankaj.laxminarayan.bharadiya@intel.com>;
> > Latvala, Petri <petri.latvala@intel.com>; Hiler, Arkadiusz
> > <arkadiusz.hiler@intel.com>
> > Subject: [PATCH i-g-t] tests/kms_dither: New IGT to validate crtc
> Dithering
> >
> > Many of the display devices have color format support less than the
> color format
> > of the input data (Ex: 8-bit input data and 6-bit display color depth).
> Then the
> > input data will be either truncated or rounded, but this approach
> usually causes
> > loss of detail and also produce large banded areas of a single color
> that
> > significantly differs from the original image.
> >
> > Dithering is a technique used to enhance these colors by creating the
> illusion of
> > smoothness by adjusting the nearby pixel color.
> > For Eg: Converting 8-bit to 6-bit by modifying the pixel information.
> >
> > Dithering should be enabled when a panel color depth is lower than the
> color
> > depth of the framebuffer.
> >
> > Even though feature Dithering is there since legacy, there is no
> specific IGT for
> > this. This patch will create New IGT for Dithering.
> > And below is the truth table for CRTC Dithering.
> >
> > |----------------|---------|-------------|
> > |  Frame buffer  |  Panel  |  Dithering  |
> > |----------------|---------|-------------|
> > |      8 BPC     |  6 BPC  |     Yes     |
> > |----------------|---------|-------------|
> > |      8 BPC     |  8 BPC  |     No      |
> > |----------------|---------|-------------|
> > |      8 BPC     | 10 BPC  |     No      |
> > |----------------|---------|-------------|
> > |     10 BPC     |  6 BPC  |     Yes     |
> > |----------------|---------|-------------|
> > |     10 BPC     |  8 BPC  |     Yes     |
> > |----------------|---------|-------------|
> > |     10 BPC     | 10 BPC  |     No      |
> > |----------------|---------|-------------|
> > |     16 BPC     |  6 BPC  |     Yes     |
> > |----------------|---------|-------------|
> > |     16 BPC     |  8 BPC  |     Yes     |
> > |----------------|---------|-------------|
> > |     16 BPC     | 10 BPC  |     Yes     |
> > |----------------|---------|-------------|
> >
> > v2:
> > * Fix commit message (Karthik)
> > * Add file author (Karthik)
> > * Dynamic subtests for pipe-output combinations (Karthik)
> > * Update deprecated pipe name (Karthik)
> > * Remove redundant fb creation logic (Karthik)
> >
> > v3:
> > * Use for_each_pipe_with_valid_output() to simplify the logic (Bhanu)
> > * Remove magic numbers to create fb (Karthik)
> > * Fix typos & comments (Swati)
> >
> > Cc: Swati Sharma <swati2.sharma@intel.com>
> > Cc: Karthik B S <karthik.b.s@intel.com>
> > Cc: Uma Shankar <uma.shankar@intel.com>
> > Cc: Pankaj Bharadiya <pankaj.laxminarayan.bharadiya@intel.com>
> > Cc: Petri Latvala <petri.latvala@intel.com>
> > Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
> > Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
> > ---
> >  tests/Makefile.sources |   1 +
> >  tests/kms_dither.c     | 256 +++++++++++++++++++++++++++++++++++++++++
> >  tests/meson.build      |   1 +
> >  3 files changed, 258 insertions(+)
> >  create mode 100644 tests/kms_dither.c
> >
> > diff --git a/tests/Makefile.sources b/tests/Makefile.sources index
> > 0653c3d3..e816037c 100644
> > --- a/tests/Makefile.sources
> > +++ b/tests/Makefile.sources
> > @@ -43,6 +43,7 @@ TESTS_progs = \
> >  	kms_cursor_crc \
> >  	kms_cursor_edge_walk \
> >  	kms_cursor_legacy \
> > +	kms_dither \
> >  	kms_dp_aux_dev \
> >  	kms_dp_dsc \
> >  	kms_dp_tiled_display \
> > diff --git a/tests/kms_dither.c b/tests/kms_dither.c new file mode
> 100644 index
> > 00000000..22d96d34
> > --- /dev/null
> > +++ b/tests/kms_dither.c
> > @@ -0,0 +1,256 @@
> > +/*
> > + * Copyright © 2020 Intel Corporation
> > + *
> > + * Permission is hereby granted, free of charge, to any person
> > +obtaining a
> > + * copy of this software and associated documentation files (the
> > +"Software"),
> > + * to deal in the Software without restriction, including without
> > +limitation
> > + * the rights to use, copy, modify, merge, publish, distribute,
> > +sublicense,
> > + * and/or sell copies of the Software, and to permit persons to whom
> > +the
> > + * Software is furnished to do so, subject to the following conditions:
> > + *
> > + * The above copyright notice and this permission notice (including the
> > +next
> > + * paragraph) shall be included in all copies or substantial portions
> > +of the
> > + * Software.
> > + *
> > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> > +EXPRESS OR
> > + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
> > +MERCHANTABILITY,
> > + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT
> > +SHALL
> > + * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM,
> > +DAMAGES OR
> > + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
> > +OTHERWISE,
> > + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
> > USE
> > +OR
> > + * OTHER DEALINGS IN THE SOFTWARE.
> > + *
> > + * Authors:
> > + *     Bhanuprakash Modem <bhanuprakash.modem@intel.com>
> > + *
> > + */
> > +
> > +#include "igt.h"
> > +#include <fcntl.h>
> > +#include <termios.h>
> > +#include <unistd.h>
> > +
> > +IGT_TEST_DESCRIPTION("Test Dithering block status");
> > +
> > +/* Connector BPC */
> > +#define IGT_CONNECTOR_BPC_6		6
> > +#define IGT_CONNECTOR_BPC_8		8
> > +#define IGT_CONNECTOR_BPC_10		10
> > +#define IGT_CONNECTOR_BPC_12		12
> > +
> > +/* Framebuffer BPC */
> > +#define IGT_FRAME_BUFFER_BPC_8		8
> > +#define IGT_FRAME_BUFFER_BPC_10		10
> > +#define IGT_FRAME_BUFFER_BPC_16		16
> > +
> > +/* Test flags. */
> > +enum {
> > +	TEST_NONE = 1 << 0,
> > +	TEST_SUSPEND = 1 << 1,
> > +};
> > +
> > +/* Common test data. */
> > +typedef struct data {
> > +	igt_display_t display;
> > +	igt_plane_t *primary;
> > +	igt_output_t *output;
> > +	igt_pipe_t *pipe;
> > +	drmModeModeInfo *mode;
> > +	enum pipe pipe_id;
> > +	int drm_fd;
> > +	igt_fb_t fb;
> > +} data_t;
> > +
> > +/* Prepare test data. */
> > +static void prepare_test(data_t *data, igt_output_t *output, enum pipe
> > +pipe) {
> > +	igt_display_t *display = &data->display;
> > +
> > +	data->pipe_id = pipe;
> > +	data->pipe = &data->display.pipes[data->pipe_id];
> > +	igt_assert(data->pipe);
> > +
> > +	igt_display_reset(display);
> > +
> > +	data->output = output;
> > +	igt_assert(data->output);
> > +
> > +	data->mode = igt_output_get_mode(data->output);
> > +	igt_assert(data->mode);
> > +
> > +	data->primary =
> > +		igt_pipe_get_plane_type(data->pipe,
> > DRM_PLANE_TYPE_PRIMARY);
> > +
> > +	igt_output_set_pipe(data->output, data->pipe_id); }
> > +
> > +/* Returns the current state of dithering from the crtc debugfs. */
> > +static bool get_dither_state(data_t *data) {
> > +	char buf[256];
> > +	char crtc_name[7];
> > +	char *start_loc;
> > +	int fd, res;
> > +	unsigned int status;
> > +
> > +	snprintf(crtc_name, 7, "crtc-%d", data->pipe_id);
> > +	fd = igt_debugfs_open(data->drm_fd, crtc_name, O_RDONLY);
> > +	igt_assert(fd >= 0);
> > +
> > +	res = igt_debugfs_simple_read(fd, "dither", buf, sizeof(buf));
> > +	igt_require(res > 0);
> > +	close(fd);
> > +
> > +	igt_assert(start_loc = strstr(buf, "Dither: "));
> > +	igt_assert_eq(sscanf(start_loc, "Dither: %u", &status), 1);
> > +
> > +	return !!status;
> > +}
> > +
> > +/* Returns the maximum bpc from the connector debugfs. */ static
> > +unsigned int get_output_bpc(data_t *data, igt_output_t *output) {
> > +	char buf[256];
> > +	char *start_loc;
> > +	int fd, res;
> > +	unsigned int max_bpc;
> > +
> > +	fd = igt_debugfs_connector_dir(data->drm_fd, output->name,
> > O_RDONLY);
> > +	igt_assert(fd >= 0);
> > +
> > +	res = igt_debugfs_simple_read(fd, "output_bpc", buf, sizeof(buf));
> > +
> > +	igt_require(res > 0);
> > +
> 
> Drop the extra line.
> 
> > +	close(fd);
> > +
> > +	igt_assert(start_loc = strstr(buf, "Maximum: "));
> > +	igt_assert_eq(sscanf(start_loc, "Maximum: %u", &max_bpc), 1);
> > +
> > +	return max_bpc;
> > +}
> > +
> > +static void test_dithering(data_t *data, enum pipe pipe,
> > +			   igt_output_t *output,
> > +			   int fb_bpc, int fb_format,
> > +			   int output_bpc, uint32_t flags)
> > +{
> > +	igt_display_t *display = &data->display;
> > +	bool enabled;
> > +
> > +	igt_info("Dithering test execution on %s PIPE_%s\n",
> > +			output->name, kmstest_pipe_name(pipe));
> > +	prepare_test(data, output, pipe);
> > +
> > +	igt_assert(igt_create_fb(data->drm_fd, data->mode->hdisplay,
> > +				 data->mode->vdisplay, fb_format,
> > +				 LOCAL_DRM_FORMAT_MOD_NONE, &data->fb));
> > +	igt_plane_set_fb(data->primary, &data->fb);
> > +	igt_plane_set_size(data->primary, data->mode->hdisplay, data->mode-
> > >vdisplay);
> > +	igt_output_set_prop_value(data->output, IGT_CONNECTOR_MAX_BPC,
> > output_bpc);
> > +	igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC :
> > +COMMIT_LEGACY);
> > +
> > +	/* Check the status of Dithering block
> 
> Adopt proper multi line comment style.
> 
> > +	 * If fb_bpc is greater than output_bpc, Dithering should be Enabled
> > +	 * else Disabled
> > +	 */
> > +	enabled = get_dither_state(data);
> > +	if (fb_bpc > output_bpc)
> > +		igt_assert_f(enabled, "(fb_%dbpc > output_%dbpc): Dither
> > should be enabled\n",
> > +				fb_bpc, output_bpc);
> > +	else
> > +		igt_assert_f(!enabled, "(fb_%dbpc <= output_%dbpc): Dither
> > should be disabled\n",
> > +				fb_bpc, output_bpc);
> 
> This looks good to validate whether driver returned the right status.
> For features like these, I feel we also should try to see the
> effectiveness of dithering.
[Bhanu] May be we can do this as part of manual E2E testing.
>
> I would propose to have some kind of reference images and
> compare them
> with the output what we get. A chamelium based test can be planned to see
> the really
> effectiveness of dithering. We can have reference golden image and do a
> crc check with
> the output grabbed from sink (through Chamelium).
[Bhanu] I think it is very difficult to maintain the same reference images all over the ci machines.
Yeah, we can do this exercise with our local env.
> 
> > +	igt_plane_set_fb(data->primary, NULL);
> > +	igt_output_set_pipe(output, PIPE_NONE);
> > +	igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC :
> > +COMMIT_LEGACY);
> > +
> > +	igt_remove_fb(data->drm_fd, &data->fb);
> > +
> > +	return;
> > +}
> > +
> > +/* Returns true if an output supports max bpc property. */ static bool
> > +has_max_bpc(igt_output_t *output) {
> > +        return igt_output_has_prop(output, IGT_CONNECTOR_MAX_BPC) &&
> > +               igt_output_get_prop(output, IGT_CONNECTOR_MAX_BPC); }
> > +
> > +static void
> > +run_dither_test(data_t *data, int fb_bpc, int fb_format, int
> output_bpc,
> > +		uint32_t flags)
> > +{
> > +	igt_output_t *output;
> > +	igt_display_t *display = &data->display;
> > +	enum pipe pipe;
> > +	unsigned int max_bpc;
> > +	int valid_outputs = 0;
> > +
> > +	for_each_pipe_with_valid_output(display, pipe, output) {
> 
> Not sure if we should test on so many combinations, it may be overkill I
> believe
> and waste CI execution time. May be we can limit it to just 1 pipe as we
> have done for
> plane. Generally the same logic is applied on all pipes so if it works on
> 1 pipe, should work
> on others as well.
[Bhanu] I'll limit the execution to single pipe.
> 
> > +		if (!has_max_bpc(output))
> > +			continue;
> > +
> > +		max_bpc = get_output_bpc(data, output);
> > +		if(max_bpc < output_bpc)
> > +			continue;
> > +
> > +		igt_dynamic_f("%s-on-pipe-%s", output->name,
> > kmstest_pipe_name(pipe))
> > +			if (igt_pipe_connector_valid(pipe, output))
> > +				test_dithering(data, pipe, output, fb_bpc,
> > +					       fb_format, output_bpc, flags);
> > +
> > +		valid_outputs++;
> > +	}
> > +
> > +	igt_require_f(valid_outputs, "No connector found with MAX BPC
> > connector property. (or) "
> > +				     "No connector found with Max Panel BPC (%d)
> > >= %d.\n",
> > +		      max_bpc, output_bpc);
> > +}
> > +
> > +igt_main
> > +{
> > +	struct {
> > +		int bpc;
> > +		int format;
> > +	} fb_formats[] = {
> > +		{ IGT_FRAME_BUFFER_BPC_8, DRM_FORMAT_RGB888 },
> > +		{ IGT_FRAME_BUFFER_BPC_10, DRM_FORMAT_XRGB2101010 },
> > +		{ IGT_FRAME_BUFFER_BPC_16, DRM_FORMAT_XRGB16161616F },
> > +	};
> > +	int output_bpc[] = {
> > +		IGT_CONNECTOR_BPC_6,
> > +		IGT_CONNECTOR_BPC_8,
> > +		IGT_CONNECTOR_BPC_10
> > +	};
> 
> I think you can keep these out of main and have them defined as static.
[Bhanu] No other function is directly accessing these structs, I think it can be ok to keep inside the main().
> 
> Also, please test this out on real monitors and check the behavior.
[Bhanu] I'll run the CI on this patch along with kernel patches (IGT+kernel), 
Meanwhile, can you please review the kernel patches as well?
https://patchwork.freedesktop.org/series/79664/ 
> 
> > +	int i, j;
> > +	data_t data = { 0 };
> > +
> > +	igt_fixture {
> > +		data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
> > +		kmstest_set_vt_graphics_mode();
> > +
> > +		igt_display_require(&data.display, data.drm_fd);
> > +		igt_display_require_output(&data.display);
> > +	}
> > +
> > +	for (i = 0; i < ARRAY_SIZE(fb_formats); i++) {
> > +		for (j = 0; j < ARRAY_SIZE(output_bpc); j++) {
> > +			igt_describe_f("Framebuffer BPC:%d, Panel BPC:%d,
> > Expected Dither:%s\n",
> > +				       fb_formats[i].bpc, output_bpc[j],
> > +				       (fb_formats[i].bpc > output_bpc[j]) ?
> > "Enable": "Disable");
> > +
> > +			igt_subtest_with_dynamic_f("FB-%dBPC-Vs-Panel-
> > %dBPC", fb_formats[i].bpc, output_bpc[j])
> > +				run_dither_test(&data,
> > +						fb_formats[i].bpc,
> > +						fb_formats[i].format,
> > +						output_bpc[j],
> > +						TEST_NONE);
> > +		}
> > +	}
> > +
> > +	igt_fixture {
> > +		igt_display_fini(&data.display);
> > +	}
> > +}
> > diff --git a/tests/meson.build b/tests/meson.build index
> cfe508c4..05a9cfb8
> > 100644
> > --- a/tests/meson.build
> > +++ b/tests/meson.build
> > @@ -27,6 +27,7 @@ test_progs = [
> >  	'kms_cursor_crc',
> >  	'kms_cursor_edge_walk',
> >  	'kms_cursor_legacy',
> > +	'kms_dither',
> >  	'kms_dp_aux_dev',
> >  	'kms_dp_dsc',
> >  	'kms_dp_tiled_display',
> > --
> > 2.20.1
> 

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [igt-dev] ✓ Fi.CI.IGT: success for Add new IGT test to validate crtc Dithering (rev3)
  2020-07-20 16:50 [igt-dev] [PATCH i-g-t] Add new IGT test to validate crtc Dithering Bhanuprakash Modem
                   ` (8 preceding siblings ...)
  2020-07-24 11:48 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork
@ 2020-07-24 13:27 ` Patchwork
  2020-07-26  5:02 ` [igt-dev] ✓ Fi.CI.BAT: success for Add new IGT test to validate crtc Dithering (rev4) Patchwork
                   ` (3 subsequent siblings)
  13 siblings, 0 replies; 26+ messages in thread
From: Patchwork @ 2020-07-24 13:27 UTC (permalink / raw)
  To: Bhanuprakash Modem; +Cc: igt-dev


[-- Attachment #1.1: Type: text/plain, Size: 20972 bytes --]

== Series Details ==

Series: Add new IGT test to validate crtc Dithering (rev3)
URL   : https://patchwork.freedesktop.org/series/79661/
State : success

== Summary ==

CI Bug Log - changes from IGT_5746_full -> IGTPW_4793_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/index.html

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in IGTPW_4793_full:

### IGT changes ###

#### Possible regressions ####

  * {igt@kms_dither@fb-8bpc-vs-panel-6bpc} (NEW):
    - shard-iclb:         NOTRUN -> [SKIP][1] +8 similar issues
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-iclb5/igt@kms_dither@fb-8bpc-vs-panel-6bpc.html

  * {igt@kms_dither@fb-8bpc-vs-panel-8bpc} (NEW):
    - shard-tglb:         NOTRUN -> [SKIP][2] +8 similar issues
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-tglb3/igt@kms_dither@fb-8bpc-vs-panel-8bpc.html

  
New tests
---------

  New tests have been introduced between IGT_5746_full and IGTPW_4793_full:

### New IGT tests (9) ###

  * igt@kms_dither@fb-10bpc-vs-panel-10bpc:
    - Statuses : 7 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_dither@fb-10bpc-vs-panel-6bpc:
    - Statuses : 7 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_dither@fb-10bpc-vs-panel-8bpc:
    - Statuses : 7 skip(s)
    - Exec time: [0.0] s

  * igt@kms_dither@fb-16bpc-vs-panel-10bpc:
    - Statuses : 7 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_dither@fb-16bpc-vs-panel-6bpc:
    - Statuses : 7 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_dither@fb-16bpc-vs-panel-8bpc:
    - Statuses : 7 skip(s)
    - Exec time: [0.0] s

  * igt@kms_dither@fb-8bpc-vs-panel-10bpc:
    - Statuses : 7 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_dither@fb-8bpc-vs-panel-6bpc:
    - Statuses : 7 skip(s)
    - Exec time: [0.0] s

  * igt@kms_dither@fb-8bpc-vs-panel-8bpc:
    - Statuses : 7 skip(s)
    - Exec time: [0.0, 0.00] s

  

Known issues
------------

  Here are the changes found in IGTPW_4793_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_balancer@bonded-early:
    - shard-kbl:          [PASS][3] -> [FAIL][4] ([i915#2079])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/shard-kbl3/igt@gem_exec_balancer@bonded-early.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-kbl1/igt@gem_exec_balancer@bonded-early.html

  * igt@gem_exec_fence@syncobj-repeat:
    - shard-hsw:          [PASS][5] -> [TIMEOUT][6] ([i915#1958] / [i915#2119]) +3 similar issues
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/shard-hsw6/igt@gem_exec_fence@syncobj-repeat.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-hsw8/igt@gem_exec_fence@syncobj-repeat.html

  * igt@i915_module_load@reload-with-fault-injection:
    - shard-tglb:         [PASS][7] -> [DMESG-WARN][8] ([i915#402]) +1 similar issue
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/shard-tglb5/igt@i915_module_load@reload-with-fault-injection.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-tglb5/igt@i915_module_load@reload-with-fault-injection.html

  * igt@i915_pm_rc6_residency@rc6-idle:
    - shard-iclb:         [PASS][9] -> [WARN][10] ([i915#1515])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/shard-iclb4/igt@i915_pm_rc6_residency@rc6-idle.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-iclb1/igt@i915_pm_rc6_residency@rc6-idle.html

  * igt@i915_suspend@forcewake:
    - shard-kbl:          [PASS][11] -> [INCOMPLETE][12] ([i915#155] / [i915#636])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/shard-kbl4/igt@i915_suspend@forcewake.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-kbl4/igt@i915_suspend@forcewake.html

  * igt@kms_big_fb@y-tiled-64bpp-rotate-0:
    - shard-glk:          [PASS][13] -> [DMESG-FAIL][14] ([i915#118] / [i915#95])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/shard-glk7/igt@kms_big_fb@y-tiled-64bpp-rotate-0.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-glk8/igt@kms_big_fb@y-tiled-64bpp-rotate-0.html

  * igt@kms_cursor_legacy@cursora-vs-flipa-varying-size:
    - shard-apl:          [PASS][15] -> [DMESG-WARN][16] ([i915#1635] / [i915#1982]) +1 similar issue
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/shard-apl7/igt@kms_cursor_legacy@cursora-vs-flipa-varying-size.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-apl3/igt@kms_cursor_legacy@cursora-vs-flipa-varying-size.html

  * igt@kms_flip@flip-vs-suspend@c-dp1:
    - shard-kbl:          [PASS][17] -> [DMESG-WARN][18] ([i915#180]) +4 similar issues
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/shard-kbl7/igt@kms_flip@flip-vs-suspend@c-dp1.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-kbl6/igt@kms_flip@flip-vs-suspend@c-dp1.html

  * igt@kms_flip@flip-vs-suspend@c-hdmi-a1:
    - shard-hsw:          [PASS][19] -> [INCOMPLETE][20] ([i915#2055])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/shard-hsw1/igt@kms_flip@flip-vs-suspend@c-hdmi-a1.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-hsw8/igt@kms_flip@flip-vs-suspend@c-hdmi-a1.html

  * igt@kms_flip@plain-flip-ts-check-interruptible@a-edp1:
    - shard-tglb:         [PASS][21] -> [DMESG-WARN][22] ([i915#1982]) +3 similar issues
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/shard-tglb6/igt@kms_flip@plain-flip-ts-check-interruptible@a-edp1.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-tglb2/igt@kms_flip@plain-flip-ts-check-interruptible@a-edp1.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-onoff:
    - shard-kbl:          [PASS][23] -> [DMESG-WARN][24] ([i915#1982])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/shard-kbl6/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-onoff.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-kbl3/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-cur-indfb-onoff.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-pwrite:
    - shard-glk:          [PASS][25] -> [FAIL][26] ([i915#49])
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/shard-glk5/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-pwrite.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-glk8/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-pwrite.html

  * igt@kms_getfb@getfb-handle-closed:
    - shard-snb:          [PASS][27] -> [TIMEOUT][28] ([i915#1958] / [i915#2119]) +3 similar issues
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/shard-snb4/igt@kms_getfb@getfb-handle-closed.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-snb2/igt@kms_getfb@getfb-handle-closed.html

  * igt@kms_psr@psr2_primary_page_flip:
    - shard-iclb:         [PASS][29] -> [SKIP][30] ([fdo#109441]) +3 similar issues
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/shard-iclb2/igt@kms_psr@psr2_primary_page_flip.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-iclb6/igt@kms_psr@psr2_primary_page_flip.html

  * igt@kms_vblank@pipe-b-ts-continuation-suspend:
    - shard-tglb:         [PASS][31] -> [INCOMPLETE][32] ([i915#1798] / [i915#456])
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/shard-tglb6/igt@kms_vblank@pipe-b-ts-continuation-suspend.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-tglb5/igt@kms_vblank@pipe-b-ts-continuation-suspend.html

  
#### Possible fixes ####

  * igt@gem_exec_whisper@basic-contexts-priority-all:
    - shard-glk:          [DMESG-WARN][33] ([i915#118] / [i915#95]) -> [PASS][34]
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/shard-glk9/igt@gem_exec_whisper@basic-contexts-priority-all.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-glk2/igt@gem_exec_whisper@basic-contexts-priority-all.html

  * igt@gem_fenced_exec_thrash@2-spare-fences:
    - shard-hsw:          [TIMEOUT][35] ([i915#1958] / [i915#2119]) -> [PASS][36] +3 similar issues
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/shard-hsw4/igt@gem_fenced_exec_thrash@2-spare-fences.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-hsw6/igt@gem_fenced_exec_thrash@2-spare-fences.html
    - shard-snb:          [TIMEOUT][37] ([i915#1958] / [i915#2119]) -> [PASS][38] +2 similar issues
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/shard-snb5/igt@gem_fenced_exec_thrash@2-spare-fences.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-snb1/igt@gem_fenced_exec_thrash@2-spare-fences.html

  * {igt@gem_huc_copy@huc-copy}:
    - shard-tglb:         [SKIP][39] ([i915#2190]) -> [PASS][40]
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/shard-tglb6/igt@gem_huc_copy@huc-copy.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-tglb8/igt@gem_huc_copy@huc-copy.html

  * igt@gen9_exec_parse@allowed-all:
    - shard-apl:          [DMESG-WARN][41] ([i915#1436] / [i915#1635] / [i915#716]) -> [PASS][42]
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/shard-apl4/igt@gen9_exec_parse@allowed-all.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-apl6/igt@gen9_exec_parse@allowed-all.html

  * igt@i915_module_load@reload:
    - shard-tglb:         [DMESG-WARN][43] ([i915#402]) -> [PASS][44] +2 similar issues
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/shard-tglb1/igt@i915_module_load@reload.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-tglb8/igt@i915_module_load@reload.html

  * igt@i915_pm_dc@dc6-psr:
    - shard-iclb:         [FAIL][45] ([i915#454]) -> [PASS][46]
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/shard-iclb6/igt@i915_pm_dc@dc6-psr.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-iclb5/igt@i915_pm_dc@dc6-psr.html

  * igt@i915_pm_rc6_residency@rc6-fence:
    - shard-hsw:          [WARN][47] ([i915#1519]) -> [PASS][48]
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/shard-hsw1/igt@i915_pm_rc6_residency@rc6-fence.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-hsw5/igt@i915_pm_rc6_residency@rc6-fence.html

  * igt@kms_big_fb@x-tiled-8bpp-rotate-180:
    - shard-apl:          [DMESG-WARN][49] ([i915#1635] / [i915#1982]) -> [PASS][50] +1 similar issue
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/shard-apl6/igt@kms_big_fb@x-tiled-8bpp-rotate-180.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-apl2/igt@kms_big_fb@x-tiled-8bpp-rotate-180.html

  * igt@kms_big_fb@y-tiled-64bpp-rotate-0:
    - shard-iclb:         [FAIL][51] ([i915#1119]) -> [PASS][52]
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/shard-iclb2/igt@kms_big_fb@y-tiled-64bpp-rotate-0.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-iclb1/igt@kms_big_fb@y-tiled-64bpp-rotate-0.html

  * igt@kms_cursor_crc@pipe-c-cursor-dpms:
    - shard-glk:          [FAIL][53] ([i915#54]) -> [PASS][54]
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/shard-glk5/igt@kms_cursor_crc@pipe-c-cursor-dpms.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-glk5/igt@kms_cursor_crc@pipe-c-cursor-dpms.html
    - shard-apl:          [FAIL][55] ([i915#1635] / [i915#54]) -> [PASS][56]
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/shard-apl1/igt@kms_cursor_crc@pipe-c-cursor-dpms.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-apl7/igt@kms_cursor_crc@pipe-c-cursor-dpms.html
    - shard-kbl:          [FAIL][57] ([i915#54]) -> [PASS][58]
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/shard-kbl2/igt@kms_cursor_crc@pipe-c-cursor-dpms.html
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-kbl3/igt@kms_cursor_crc@pipe-c-cursor-dpms.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible@a-hdmi-a2:
    - shard-glk:          [FAIL][59] ([i915#79]) -> [PASS][60]
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/shard-glk7/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-hdmi-a2.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-glk9/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-hdmi-a2.html

  * igt@kms_flip@flip-vs-suspend-interruptible@a-dp1:
    - shard-kbl:          [DMESG-WARN][61] ([i915#180]) -> [PASS][62] +4 similar issues
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/shard-kbl4/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-kbl6/igt@kms_flip@flip-vs-suspend-interruptible@a-dp1.html

  * igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-blt:
    - shard-tglb:         [DMESG-WARN][63] ([i915#1982]) -> [PASS][64] +5 similar issues
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/shard-tglb5/igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-blt.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-tglb2/igt@kms_frontbuffer_tracking@psr-1p-offscren-pri-indfb-draw-blt.html

  * igt@kms_hdmi_inject@inject-audio:
    - shard-tglb:         [SKIP][65] ([i915#433]) -> [PASS][66]
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/shard-tglb1/igt@kms_hdmi_inject@inject-audio.html
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-tglb8/igt@kms_hdmi_inject@inject-audio.html

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes:
    - shard-glk:          [DMESG-WARN][67] ([i915#1982]) -> [PASS][68] +1 similar issue
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/shard-glk8/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes.html
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-glk8/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes.html

  * igt@kms_psr@psr2_cursor_plane_move:
    - shard-iclb:         [SKIP][69] ([fdo#109441]) -> [PASS][70] +1 similar issue
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/shard-iclb1/igt@kms_psr@psr2_cursor_plane_move.html
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-iclb2/igt@kms_psr@psr2_cursor_plane_move.html

  * igt@kms_setmode@basic:
    - shard-apl:          [FAIL][71] ([i915#1635] / [i915#31]) -> [PASS][72]
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/shard-apl6/igt@kms_setmode@basic.html
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-apl1/igt@kms_setmode@basic.html

  * igt@kms_vblank@pipe-c-wait-idle:
    - shard-kbl:          [DMESG-WARN][73] ([i915#1982]) -> [PASS][74]
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/shard-kbl7/igt@kms_vblank@pipe-c-wait-idle.html
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-kbl2/igt@kms_vblank@pipe-c-wait-idle.html

  * igt@perf@blocking-parameterized:
    - shard-iclb:         [FAIL][75] ([i915#1542]) -> [PASS][76]
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/shard-iclb8/igt@perf@blocking-parameterized.html
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-iclb1/igt@perf@blocking-parameterized.html

  * igt@sysfs_preempt_timeout@timeout@vecs0:
    - shard-apl:          [FAIL][77] ([i915#1635]) -> [PASS][78]
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/shard-apl3/igt@sysfs_preempt_timeout@timeout@vecs0.html
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-apl6/igt@sysfs_preempt_timeout@timeout@vecs0.html

  
#### Warnings ####

  * igt@gem_ctx_persistence@engines-hang:
    - shard-hsw:          [TIMEOUT][79] ([i915#1958] / [i915#2119]) -> [SKIP][80] ([fdo#109271] / [i915#1099])
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/shard-hsw4/igt@gem_ctx_persistence@engines-hang.html
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-hsw1/igt@gem_ctx_persistence@engines-hang.html
    - shard-snb:          [TIMEOUT][81] ([i915#1958] / [i915#2119]) -> [SKIP][82] ([fdo#109271] / [i915#1099])
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/shard-snb5/igt@gem_ctx_persistence@engines-hang.html
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-snb6/igt@gem_ctx_persistence@engines-hang.html

  * igt@kms_big_fb@yf-tiled-64bpp-rotate-90:
    - shard-hsw:          [SKIP][83] ([fdo#109271]) -> [TIMEOUT][84] ([i915#1958] / [i915#2119])
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/shard-hsw1/igt@kms_big_fb@yf-tiled-64bpp-rotate-90.html
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-hsw8/igt@kms_big_fb@yf-tiled-64bpp-rotate-90.html

  * igt@kms_flip@2x-flip-vs-panning-interruptible:
    - shard-snb:          [SKIP][85] ([fdo#109271]) -> [TIMEOUT][86] ([i915#1958] / [i915#2119]) +1 similar issue
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/shard-snb2/igt@kms_flip@2x-flip-vs-panning-interruptible.html
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-snb2/igt@kms_flip@2x-flip-vs-panning-interruptible.html

  * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-mmap-cpu:
    - shard-hsw:          [TIMEOUT][87] ([i915#1958] / [i915#2119]) -> [SKIP][88] ([fdo#109271])
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/shard-hsw4/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-mmap-cpu.html
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-hsw1/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-mmap-cpu.html

  * igt@kms_universal_plane@universal-plane-pipe-c-functional:
    - shard-snb:          [TIMEOUT][89] ([i915#1958] / [i915#2119]) -> [SKIP][90] ([fdo#109271]) +1 similar issue
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5746/shard-snb5/igt@kms_universal_plane@universal-plane-pipe-c-functional.html
   [90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/shard-snb4/igt@kms_universal_plane@universal-plane-pipe-c-functional.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [i915#1099]: https://gitlab.freedesktop.org/drm/intel/issues/1099
  [i915#1119]: https://gitlab.freedesktop.org/drm/intel/issues/1119
  [i915#118]: https://gitlab.freedesktop.org/drm/intel/issues/118
  [i915#1436]: https://gitlab.freedesktop.org/drm/intel/issues/1436
  [i915#1515]: https://gitlab.freedesktop.org/drm/intel/issues/1515
  [i915#1519]: https://gitlab.freedesktop.org/drm/intel/issues/1519
  [i915#1542]: https://gitlab.freedesktop.org/drm/intel/issues/1542
  [i915#155]: https://gitlab.freedesktop.org/drm/intel/issues/155
  [i915#1635]: https://gitlab.freedesktop.org/drm/intel/issues/1635
  [i915#1798]: https://gitlab.freedesktop.org/drm/intel/issues/1798
  [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
  [i915#1958]: https://gitlab.freedesktop.org/drm/intel/issues/1958
  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [i915#2055]: https://gitlab.freedesktop.org/drm/intel/issues/2055
  [i915#2079]: https://gitlab.freedesktop.org/drm/intel/issues/2079
  [i915#2119]: https://gitlab.freedesktop.org/drm/intel/issues/2119
  [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [i915#31]: https://gitlab.freedesktop.org/drm/intel/issues/31
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
  [i915#433]: https://gitlab.freedesktop.org/drm/intel/issues/433
  [i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454
  [i915#456]: https://gitlab.freedesktop.org/drm/intel/issues/456
  [i915#49]: https://gitlab.freedesktop.org/drm/intel/issues/49
  [i915#54]: https://gitlab.freedesktop.org/drm/intel/issues/54
  [i915#636]: https://gitlab.freedesktop.org/drm/intel/issues/636
  [i915#716]: https://gitlab.freedesktop.org/drm/intel/issues/716
  [i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
  [i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95


Participating hosts (8 -> 8)
------------------------------

  No changes in participating hosts


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_5746 -> IGTPW_4793

  CI-20190529: 20190529
  CI_DRM_8778: 5ead5989a42079951e6f0b7b6a072a690df0b985 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_4793: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/index.html
  IGT_5746: d818f0c54e5e781ba3fb372aab8f270cf153776c @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4793/index.html

[-- Attachment #1.2: Type: text/html, Size: 25752 bytes --]

[-- Attachment #2: Type: text/plain, Size: 154 bytes --]

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [igt-dev] ✓ Fi.CI.BAT: success for Add new IGT test to validate crtc Dithering (rev4)
  2020-07-20 16:50 [igt-dev] [PATCH i-g-t] Add new IGT test to validate crtc Dithering Bhanuprakash Modem
                   ` (9 preceding siblings ...)
  2020-07-24 13:27 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
@ 2020-07-26  5:02 ` Patchwork
  2020-07-26  6:05 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
                   ` (2 subsequent siblings)
  13 siblings, 0 replies; 26+ messages in thread
From: Patchwork @ 2020-07-26  5:02 UTC (permalink / raw)
  To: Bhanuprakash Modem; +Cc: igt-dev


[-- Attachment #1.1: Type: text/plain, Size: 6775 bytes --]

== Series Details ==

Series: Add new IGT test to validate crtc Dithering (rev4)
URL   : https://patchwork.freedesktop.org/series/79661/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_8786 -> IGTPW_4803
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/index.html

Known issues
------------

  Here are the changes found in IGTPW_4803 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@i915_module_load@reload:
    - fi-bsw-kefka:       [PASS][1] -> [DMESG-WARN][2] ([i915#1982])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8786/fi-bsw-kefka/igt@i915_module_load@reload.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/fi-bsw-kefka/igt@i915_module_load@reload.html

  * igt@i915_pm_rpm@basic-pci-d3-state:
    - fi-byt-j1900:       [PASS][3] -> [DMESG-WARN][4] ([i915#1982])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8786/fi-byt-j1900/igt@i915_pm_rpm@basic-pci-d3-state.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/fi-byt-j1900/igt@i915_pm_rpm@basic-pci-d3-state.html

  * igt@i915_pm_rpm@module-reload:
    - fi-apl-guc:         [PASS][5] -> [DMESG-WARN][6] ([i915#1635] / [i915#1982])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8786/fi-apl-guc/igt@i915_pm_rpm@module-reload.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/fi-apl-guc/igt@i915_pm_rpm@module-reload.html

  * igt@kms_addfb_basic@bad-pitch-63:
    - fi-tgl-y:           [PASS][7] -> [DMESG-WARN][8] ([i915#402]) +1 similar issue
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8786/fi-tgl-y/igt@kms_addfb_basic@bad-pitch-63.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/fi-tgl-y/igt@kms_addfb_basic@bad-pitch-63.html

  * igt@kms_busy@basic@flip:
    - fi-kbl-x1275:       [PASS][9] -> [DMESG-WARN][10] ([i915#62] / [i915#92] / [i915#95])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8786/fi-kbl-x1275/igt@kms_busy@basic@flip.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/fi-kbl-x1275/igt@kms_busy@basic@flip.html

  
#### Possible fixes ####

  * igt@gem_exec_suspend@basic-s3:
    - fi-tgl-u2:          [FAIL][11] ([i915#1888]) -> [PASS][12] +1 similar issue
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8786/fi-tgl-u2/igt@gem_exec_suspend@basic-s3.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/fi-tgl-u2/igt@gem_exec_suspend@basic-s3.html

  * igt@i915_pm_rpm@module-reload:
    - fi-bsw-kefka:       [DMESG-WARN][13] ([i915#1982]) -> [PASS][14]
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8786/fi-bsw-kefka/igt@i915_pm_rpm@module-reload.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/fi-bsw-kefka/igt@i915_pm_rpm@module-reload.html

  * igt@kms_addfb_basic@bad-pitch-0:
    - fi-tgl-y:           [DMESG-WARN][15] ([i915#402]) -> [PASS][16]
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8786/fi-tgl-y/igt@kms_addfb_basic@bad-pitch-0.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/fi-tgl-y/igt@kms_addfb_basic@bad-pitch-0.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
    - {fi-kbl-7560u}:     [DMESG-WARN][17] ([i915#1982]) -> [PASS][18]
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8786/fi-kbl-7560u/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/fi-kbl-7560u/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic.html

  
#### Warnings ####

  * igt@i915_pm_rpm@basic-rte:
    - fi-kbl-guc:         [SKIP][19] ([fdo#109271]) -> [DMESG-FAIL][20] ([i915#2203])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8786/fi-kbl-guc/igt@i915_pm_rpm@basic-rte.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/fi-kbl-guc/igt@i915_pm_rpm@basic-rte.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
    - fi-kbl-x1275:       [DMESG-WARN][21] ([i915#62] / [i915#92]) -> [DMESG-WARN][22] ([i915#62] / [i915#92] / [i915#95]) +3 similar issues
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8786/fi-kbl-x1275/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/fi-kbl-x1275/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html

  * igt@kms_cursor_legacy@basic-flip-before-cursor-atomic:
    - fi-kbl-x1275:       [DMESG-WARN][23] ([i915#62] / [i915#92] / [i915#95]) -> [DMESG-WARN][24] ([i915#62] / [i915#92]) +2 similar issues
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8786/fi-kbl-x1275/igt@kms_cursor_legacy@basic-flip-before-cursor-atomic.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/fi-kbl-x1275/igt@kms_cursor_legacy@basic-flip-before-cursor-atomic.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [i915#1635]: https://gitlab.freedesktop.org/drm/intel/issues/1635
  [i915#1888]: https://gitlab.freedesktop.org/drm/intel/issues/1888
  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [i915#2203]: https://gitlab.freedesktop.org/drm/intel/issues/2203
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
  [i915#62]: https://gitlab.freedesktop.org/drm/intel/issues/62
  [i915#92]: https://gitlab.freedesktop.org/drm/intel/issues/92
  [i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95


Participating hosts (47 -> 36)
------------------------------

  Missing    (11): fi-cml-u2 fi-ilk-m540 fi-cml-s fi-hsw-4200u fi-byt-squawks fi-icl-u2 fi-bsw-cyan fi-ctg-p8600 fi-byt-clapper fi-bdw-samus fi-kbl-r 


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_5747 -> IGTPW_4803

  CI-20190529: 20190529
  CI_DRM_8786: e9ecbe8de4e7e7c08363c1ecaaee9270b9c6f2ec @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_4803: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/index.html
  IGT_5747: 6980775bcadec862cd5e5affd65928ef79e5b580 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools



== Testlist changes ==

+igt@kms_dither@fb-8bpc-vs-panel-6bpc
+igt@kms_dither@fb-8bpc-vs-panel-8bpc
+igt@kms_dither@fb-8bpc-vs-panel-10bpc
+igt@kms_dither@fb-10bpc-vs-panel-6bpc
+igt@kms_dither@fb-10bpc-vs-panel-8bpc
+igt@kms_dither@fb-10bpc-vs-panel-10bpc
+igt@kms_dither@fb-16bpc-vs-panel-6bpc
+igt@kms_dither@fb-16bpc-vs-panel-8bpc
+igt@kms_dither@fb-16bpc-vs-panel-10bpc

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/index.html

[-- Attachment #1.2: Type: text/html, Size: 8706 bytes --]

[-- Attachment #2: Type: text/plain, Size: 154 bytes --]

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [igt-dev] ✓ Fi.CI.IGT: success for Add new IGT test to validate crtc Dithering (rev4)
  2020-07-20 16:50 [igt-dev] [PATCH i-g-t] Add new IGT test to validate crtc Dithering Bhanuprakash Modem
                   ` (10 preceding siblings ...)
  2020-07-26  5:02 ` [igt-dev] ✓ Fi.CI.BAT: success for Add new IGT test to validate crtc Dithering (rev4) Patchwork
@ 2020-07-26  6:05 ` Patchwork
  2020-07-30 10:49 ` [igt-dev] ✓ Fi.CI.BAT: success for Add new IGT test to validate crtc Dithering (rev6) Patchwork
  2020-07-30 12:28 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
  13 siblings, 0 replies; 26+ messages in thread
From: Patchwork @ 2020-07-26  6:05 UTC (permalink / raw)
  To: Bhanuprakash Modem; +Cc: igt-dev


[-- Attachment #1.1: Type: text/plain, Size: 15003 bytes --]

== Series Details ==

Series: Add new IGT test to validate crtc Dithering (rev4)
URL   : https://patchwork.freedesktop.org/series/79661/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_8786_full -> IGTPW_4803_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/index.html

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in IGTPW_4803_full:

### IGT changes ###

#### Possible regressions ####

  * {igt@kms_dither@fb-8bpc-vs-panel-6bpc} (NEW):
    - shard-iclb:         NOTRUN -> [SKIP][1] +8 similar issues
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/shard-iclb4/igt@kms_dither@fb-8bpc-vs-panel-6bpc.html

  * {igt@kms_dither@fb-8bpc-vs-panel-8bpc} (NEW):
    - shard-tglb:         NOTRUN -> [SKIP][2] +8 similar issues
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/shard-tglb3/igt@kms_dither@fb-8bpc-vs-panel-8bpc.html

  
New tests
---------

  New tests have been introduced between CI_DRM_8786_full and IGTPW_4803_full:

### New IGT tests (9) ###

  * igt@kms_dither@fb-10bpc-vs-panel-10bpc:
    - Statuses : 7 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_dither@fb-10bpc-vs-panel-6bpc:
    - Statuses : 7 skip(s)
    - Exec time: [0.0] s

  * igt@kms_dither@fb-10bpc-vs-panel-8bpc:
    - Statuses : 7 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_dither@fb-16bpc-vs-panel-10bpc:
    - Statuses : 7 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_dither@fb-16bpc-vs-panel-6bpc:
    - Statuses : 7 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_dither@fb-16bpc-vs-panel-8bpc:
    - Statuses : 7 skip(s)
    - Exec time: [0.0] s

  * igt@kms_dither@fb-8bpc-vs-panel-10bpc:
    - Statuses : 7 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_dither@fb-8bpc-vs-panel-6bpc:
    - Statuses : 7 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_dither@fb-8bpc-vs-panel-8bpc:
    - Statuses : 7 skip(s)
    - Exec time: [0.0, 0.00] s

  

Known issues
------------

  Here are the changes found in IGTPW_4803_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_flush@basic-uc-prw-default:
    - shard-tglb:         [PASS][3] -> [DMESG-WARN][4] ([i915#402])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8786/shard-tglb8/igt@gem_exec_flush@basic-uc-prw-default.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/shard-tglb1/igt@gem_exec_flush@basic-uc-prw-default.html

  * igt@i915_pm_rc6_residency@rc6-idle:
    - shard-hsw:          [PASS][5] -> [WARN][6] ([i915#1519])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8786/shard-hsw2/igt@i915_pm_rc6_residency@rc6-idle.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/shard-hsw4/igt@i915_pm_rc6_residency@rc6-idle.html

  * igt@kms_cursor_crc@pipe-c-cursor-suspend:
    - shard-kbl:          [PASS][7] -> [DMESG-WARN][8] ([i915#180]) +7 similar issues
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8786/shard-kbl1/igt@kms_cursor_crc@pipe-c-cursor-suspend.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/shard-kbl6/igt@kms_cursor_crc@pipe-c-cursor-suspend.html

  * igt@kms_flip@2x-flip-vs-expired-vblank@ac-hdmi-a1-hdmi-a2:
    - shard-glk:          [PASS][9] -> [FAIL][10] ([i915#79])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8786/shard-glk8/igt@kms_flip@2x-flip-vs-expired-vblank@ac-hdmi-a1-hdmi-a2.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/shard-glk1/igt@kms_flip@2x-flip-vs-expired-vblank@ac-hdmi-a1-hdmi-a2.html

  * igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-blt:
    - shard-kbl:          [PASS][11] -> [DMESG-WARN][12] ([i915#1982])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8786/shard-kbl2/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-blt.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/shard-kbl3/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-blt:
    - shard-tglb:         [PASS][13] -> [DMESG-WARN][14] ([i915#1982]) +2 similar issues
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8786/shard-tglb3/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-blt.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/shard-tglb5/igt@kms_frontbuffer_tracking@psr-1p-primscrn-spr-indfb-draw-blt.html

  * igt@kms_psr@psr2_cursor_plane_move:
    - shard-iclb:         [PASS][15] -> [SKIP][16] ([fdo#109441]) +3 similar issues
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8786/shard-iclb2/igt@kms_psr@psr2_cursor_plane_move.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/shard-iclb6/igt@kms_psr@psr2_cursor_plane_move.html

  * igt@kms_vblank@pipe-b-wait-busy:
    - shard-apl:          [PASS][17] -> [DMESG-WARN][18] ([i915#1635] / [i915#1982])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8786/shard-apl4/igt@kms_vblank@pipe-b-wait-busy.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/shard-apl3/igt@kms_vblank@pipe-b-wait-busy.html

  * igt@kms_vblank@pipe-b-wait-idle-hang:
    - shard-hsw:          [PASS][19] -> [TIMEOUT][20] ([i915#1958] / [i915#2119])
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8786/shard-hsw1/igt@kms_vblank@pipe-b-wait-idle-hang.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/shard-hsw2/igt@kms_vblank@pipe-b-wait-idle-hang.html
    - shard-snb:          [PASS][21] -> [TIMEOUT][22] ([i915#1958] / [i915#2119])
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8786/shard-snb1/igt@kms_vblank@pipe-b-wait-idle-hang.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/shard-snb1/igt@kms_vblank@pipe-b-wait-idle-hang.html

  * igt@perf@blocking-parameterized:
    - shard-iclb:         [PASS][23] -> [FAIL][24] ([i915#1542])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8786/shard-iclb1/igt@perf@blocking-parameterized.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/shard-iclb6/igt@perf@blocking-parameterized.html

  
#### Possible fixes ####

  * igt@gem_exec_gttfill@engines@bcs0:
    - shard-tglb:         [INCOMPLETE][25] -> [PASS][26]
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8786/shard-tglb8/igt@gem_exec_gttfill@engines@bcs0.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/shard-tglb1/igt@gem_exec_gttfill@engines@bcs0.html

  * igt@gem_exec_whisper@basic-fds-forked:
    - shard-glk:          [DMESG-WARN][27] ([i915#118] / [i915#95]) -> [PASS][28]
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8786/shard-glk3/igt@gem_exec_whisper@basic-fds-forked.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/shard-glk5/igt@gem_exec_whisper@basic-fds-forked.html

  * igt@i915_getparams_basic@basic-subslice-total:
    - shard-hsw:          [TIMEOUT][29] ([i915#1958] / [i915#2119]) -> [PASS][30] +1 similar issue
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8786/shard-hsw6/igt@i915_getparams_basic@basic-subslice-total.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/shard-hsw6/igt@i915_getparams_basic@basic-subslice-total.html

  * igt@i915_module_load@reload-with-fault-injection:
    - shard-tglb:         [DMESG-WARN][31] ([i915#402]) -> [PASS][32] +2 similar issues
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8786/shard-tglb1/igt@i915_module_load@reload-with-fault-injection.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/shard-tglb2/igt@i915_module_load@reload-with-fault-injection.html

  * igt@i915_pm_dc@dc6-psr:
    - shard-iclb:         [FAIL][33] ([i915#454]) -> [PASS][34]
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8786/shard-iclb2/igt@i915_pm_dc@dc6-psr.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/shard-iclb6/igt@i915_pm_dc@dc6-psr.html

  * igt@kms_big_fb@y-tiled-64bpp-rotate-180:
    - shard-glk:          [DMESG-FAIL][35] ([i915#118] / [i915#95]) -> [PASS][36]
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8786/shard-glk8/igt@kms_big_fb@y-tiled-64bpp-rotate-180.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/shard-glk1/igt@kms_big_fb@y-tiled-64bpp-rotate-180.html

  * igt@kms_cursor_edge_walk@pipe-b-256x256-bottom-edge:
    - shard-glk:          [DMESG-WARN][37] ([i915#1982]) -> [PASS][38] +1 similar issue
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8786/shard-glk4/igt@kms_cursor_edge_walk@pipe-b-256x256-bottom-edge.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/shard-glk3/igt@kms_cursor_edge_walk@pipe-b-256x256-bottom-edge.html

  * igt@kms_cursor_legacy@flip-vs-cursor-crc-atomic:
    - shard-glk:          [FAIL][39] ([i915#1566]) -> [PASS][40]
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8786/shard-glk9/igt@kms_cursor_legacy@flip-vs-cursor-crc-atomic.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/shard-glk7/igt@kms_cursor_legacy@flip-vs-cursor-crc-atomic.html

  * igt@kms_draw_crc@draw-method-xrgb2101010-pwrite-xtiled:
    - shard-kbl:          [DMESG-WARN][41] ([i915#1982]) -> [PASS][42] +1 similar issue
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8786/shard-kbl6/igt@kms_draw_crc@draw-method-xrgb2101010-pwrite-xtiled.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/shard-kbl6/igt@kms_draw_crc@draw-method-xrgb2101010-pwrite-xtiled.html

  * igt@kms_flip@flip-vs-suspend@c-hdmi-a1:
    - shard-hsw:          [INCOMPLETE][43] ([i915#2055]) -> [PASS][44]
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8786/shard-hsw4/igt@kms_flip@flip-vs-suspend@c-hdmi-a1.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/shard-hsw6/igt@kms_flip@flip-vs-suspend@c-hdmi-a1.html

  * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
    - shard-kbl:          [DMESG-WARN][45] ([i915#180]) -> [PASS][46] +4 similar issues
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8786/shard-kbl3/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/shard-kbl3/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html

  * igt@kms_psr@psr2_sprite_plane_move:
    - shard-iclb:         [SKIP][47] ([fdo#109441]) -> [PASS][48] +1 similar issue
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8786/shard-iclb1/igt@kms_psr@psr2_sprite_plane_move.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/shard-iclb2/igt@kms_psr@psr2_sprite_plane_move.html

  * igt@perf@polling-parameterized:
    - shard-iclb:         [FAIL][49] ([i915#1542]) -> [PASS][50]
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8786/shard-iclb7/igt@perf@polling-parameterized.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/shard-iclb5/igt@perf@polling-parameterized.html

  * igt@perf_pmu@module-unload:
    - shard-tglb:         [DMESG-WARN][51] ([i915#1982]) -> [PASS][52] +3 similar issues
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8786/shard-tglb2/igt@perf_pmu@module-unload.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/shard-tglb1/igt@perf_pmu@module-unload.html

  
#### Warnings ####

  * igt@gem_exec_reloc@basic-concurrent16:
    - shard-snb:          [FAIL][53] ([i915#1930]) -> [TIMEOUT][54] ([i915#1958] / [i915#2119])
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8786/shard-snb2/igt@gem_exec_reloc@basic-concurrent16.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/shard-snb1/igt@gem_exec_reloc@basic-concurrent16.html

  * igt@kms_big_fb@y-tiled-32bpp-rotate-90:
    - shard-hsw:          [TIMEOUT][55] ([i915#1958] / [i915#2119]) -> [SKIP][56] ([fdo#109271]) +1 similar issue
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8786/shard-hsw6/igt@kms_big_fb@y-tiled-32bpp-rotate-90.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/shard-hsw4/igt@kms_big_fb@y-tiled-32bpp-rotate-90.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-render:
    - shard-hsw:          [SKIP][57] ([fdo#109271]) -> [TIMEOUT][58] ([i915#1958] / [i915#2119]) +2 similar issues
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8786/shard-hsw8/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-render.html
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/shard-hsw2/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-render.html

  * igt@kms_psr@psr2_no_drrs:
    - shard-snb:          [SKIP][59] ([fdo#109271]) -> [TIMEOUT][60] ([i915#1958] / [i915#2119]) +4 similar issues
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8786/shard-snb4/igt@kms_psr@psr2_no_drrs.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/shard-snb1/igt@kms_psr@psr2_no_drrs.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [i915#118]: https://gitlab.freedesktop.org/drm/intel/issues/118
  [i915#1519]: https://gitlab.freedesktop.org/drm/intel/issues/1519
  [i915#1542]: https://gitlab.freedesktop.org/drm/intel/issues/1542
  [i915#1566]: https://gitlab.freedesktop.org/drm/intel/issues/1566
  [i915#1635]: https://gitlab.freedesktop.org/drm/intel/issues/1635
  [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
  [i915#1930]: https://gitlab.freedesktop.org/drm/intel/issues/1930
  [i915#1958]: https://gitlab.freedesktop.org/drm/intel/issues/1958
  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [i915#2055]: https://gitlab.freedesktop.org/drm/intel/issues/2055
  [i915#2119]: https://gitlab.freedesktop.org/drm/intel/issues/2119
  [i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
  [i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454
  [i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
  [i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95


Participating hosts (11 -> 8)
------------------------------

  Missing    (3): pig-skl-6260u pig-glk-j5005 pig-icl-1065g7 


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_5747 -> IGTPW_4803
  * Piglit: piglit_4509 -> None

  CI-20190529: 20190529
  CI_DRM_8786: e9ecbe8de4e7e7c08363c1ecaaee9270b9c6f2ec @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_4803: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/index.html
  IGT_5747: 6980775bcadec862cd5e5affd65928ef79e5b580 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4803/index.html

[-- Attachment #1.2: Type: text/html, Size: 18334 bytes --]

[-- Attachment #2: Type: text/plain, Size: 154 bytes --]

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [igt-dev] [PATCH] tests/kms_dither: New IGT to validate crtc Dithering
  2020-07-23 22:55   ` [igt-dev] [PATCH i-g-t] tests/kms_dither: New IGT " Bhanuprakash Modem
  2020-07-24  8:57     ` Petri Latvala
  2020-07-24 11:10     ` Shankar, Uma
@ 2020-07-26 12:29     ` Bhanuprakash Modem
  2020-07-29 18:41       ` Bhanuprakash Modem
  2 siblings, 1 reply; 26+ messages in thread
From: Bhanuprakash Modem @ 2020-07-26 12:29 UTC (permalink / raw)
  To: bhanuprakash.modem, igt-dev; +Cc: Petri Latvala

Many of the display devices have color format support less than
the color format of the input data (Ex: 8-bit input data and 6-bit
display color depth). Then the input data will be either truncated
or rounded, but this approach usually causes loss of detail and also
produce large banded areas of a single color that significantly
differs from the original image.

Dithering is a technique used to enhance these colors by creating the
illusion of smoothness by adjusting the nearby pixel color.
For Eg: Converting 8-bit to 6-bit by modifying the pixel information.

Dithering should be enabled when a panel color depth is lower than the
color depth of the framebuffer.

Even though feature Dithering is there since legacy, there is no
specific IGT for this. This patch will create New IGT for Dithering.
And below is the truth table for CRTC Dithering.

|----------------|---------|-------------|
|  Frame buffer  |  Panel  |  Dithering  |
|----------------|---------|-------------|
|      8 BPC     |  6 BPC  |     Yes     |
|----------------|---------|-------------|
|      8 BPC     |  8 BPC  |     No      |
|----------------|---------|-------------|
|      8 BPC     | 10 BPC  |     No      |
|----------------|---------|-------------|
|     10 BPC     |  6 BPC  |     Yes     |
|----------------|---------|-------------|
|     10 BPC     |  8 BPC  |     Yes     |
|----------------|---------|-------------|
|     10 BPC     | 10 BPC  |     No      |
|----------------|---------|-------------|
|     16 BPC     |  6 BPC  |     Yes     |
|----------------|---------|-------------|
|     16 BPC     |  8 BPC  |     Yes     |
|----------------|---------|-------------|
|     16 BPC     | 10 BPC  |     Yes     |
|----------------|---------|-------------|

v2:
* Fix commit message (Karthik)
* Add file author (Karthik)
* Dynamic subtests for pipe-output combinations (Karthik)
* Update deprecated pipe name (Karthik)
* Remove redundant fb creation logic (Karthik)

v3:
* Use for_each_pipe_with_valid_output() to simplify the logic (Bhanu)
* Remove magic numbers to create fb (Karthik)
* Fix typos & comments (Swati)

v4:
* Remove explicit igt_require for a valid output found,
  igt_subtest_with_dynamic will handle the SKIP (Petri)
* Limit the execution to a single pipe (Uma)

Cc: Swati Sharma <swati2.sharma@intel.com>
Cc: Karthik B S <karthik.b.s@intel.com>
Cc: Uma Shankar <uma.shankar@intel.com>
Cc: Pankaj Bharadiya <pankaj.laxminarayan.bharadiya@intel.com>
Cc: Petri Latvala <petri.latvala@intel.com>
Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
---
 tests/Makefile.sources |   1 +
 tests/kms_dither.c     | 249 +++++++++++++++++++++++++++++++++++++++++
 tests/meson.build      |   1 +
 3 files changed, 251 insertions(+)
 create mode 100644 tests/kms_dither.c

diff --git a/tests/Makefile.sources b/tests/Makefile.sources
index 93d7768c..f22b3f33 100644
--- a/tests/Makefile.sources
+++ b/tests/Makefile.sources
@@ -44,6 +44,7 @@ TESTS_progs = \
 	kms_cursor_crc \
 	kms_cursor_edge_walk \
 	kms_cursor_legacy \
+	kms_dither \
 	kms_dp_aux_dev \
 	kms_dp_dsc \
 	kms_dp_tiled_display \
diff --git a/tests/kms_dither.c b/tests/kms_dither.c
new file mode 100644
index 00000000..dd62f21c
--- /dev/null
+++ b/tests/kms_dither.c
@@ -0,0 +1,249 @@
+/*
+ * Copyright © 2020 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ *     Bhanuprakash Modem <bhanuprakash.modem@intel.com>
+ *
+ */
+
+#include "igt.h"
+#include <fcntl.h>
+#include <termios.h>
+#include <unistd.h>
+
+IGT_TEST_DESCRIPTION("Test Dithering block status");
+
+/* Connector BPC */
+#define IGT_CONNECTOR_BPC_6		6
+#define IGT_CONNECTOR_BPC_8		8
+#define IGT_CONNECTOR_BPC_10		10
+#define IGT_CONNECTOR_BPC_12		12
+
+/* Framebuffer BPC */
+#define IGT_FRAME_BUFFER_BPC_8		8
+#define IGT_FRAME_BUFFER_BPC_10		10
+#define IGT_FRAME_BUFFER_BPC_16		16
+
+/* Test flags. */
+enum {
+	TEST_NONE = 1 << 0,
+	TEST_SUSPEND = 1 << 1,
+};
+
+/* Common test data. */
+typedef struct data {
+	igt_display_t display;
+	igt_plane_t *primary;
+	igt_output_t *output;
+	igt_pipe_t *pipe;
+	drmModeModeInfo *mode;
+	enum pipe pipe_id;
+	int drm_fd;
+	igt_fb_t fb;
+} data_t;
+
+/* Prepare test data. */
+static void prepare_test(data_t *data, igt_output_t *output, enum pipe pipe)
+{
+	igt_display_t *display = &data->display;
+
+	data->pipe_id = pipe;
+	data->pipe = &data->display.pipes[data->pipe_id];
+	igt_assert(data->pipe);
+
+	igt_display_reset(display);
+
+	data->output = output;
+	igt_assert(data->output);
+
+	data->mode = igt_output_get_mode(data->output);
+	igt_assert(data->mode);
+
+	data->primary =
+		igt_pipe_get_plane_type(data->pipe, DRM_PLANE_TYPE_PRIMARY);
+
+	igt_output_set_pipe(data->output, data->pipe_id);
+}
+
+/* Returns the current state of dithering from the crtc debugfs. */
+static bool get_dither_state(data_t *data)
+{
+	char buf[256];
+	char crtc_name[7];
+	char *start_loc;
+	int fd, res;
+	unsigned int status;
+
+	snprintf(crtc_name, 7, "crtc-%d", data->pipe_id);
+	fd = igt_debugfs_open(data->drm_fd, crtc_name, O_RDONLY);
+	igt_assert(fd >= 0);
+
+	res = igt_debugfs_simple_read(fd, "dither", buf, sizeof(buf));
+	igt_require(res > 0);
+	close(fd);
+
+	igt_assert(start_loc = strstr(buf, "Dither: "));
+	igt_assert_eq(sscanf(start_loc, "Dither: %u", &status), 1);
+
+	return !!status;
+}
+
+/* Returns the maximum bpc from the connector debugfs. */
+static unsigned int get_output_bpc(data_t *data, igt_output_t *output)
+{
+	char buf[256];
+	char *start_loc;
+	int fd, res;
+	unsigned int max_bpc;
+
+	fd = igt_debugfs_connector_dir(data->drm_fd, output->name, O_RDONLY);
+	igt_assert(fd >= 0);
+
+	res = igt_debugfs_simple_read(fd, "output_bpc", buf, sizeof(buf));
+	igt_require(res > 0);
+	close(fd);
+
+	igt_assert(start_loc = strstr(buf, "Maximum: "));
+	igt_assert_eq(sscanf(start_loc, "Maximum: %u", &max_bpc), 1);
+
+	return max_bpc;
+}
+
+static void test_dithering(data_t *data, enum pipe pipe,
+			   igt_output_t *output,
+			   int fb_bpc, int fb_format,
+			   int output_bpc, uint32_t flags)
+{
+	igt_display_t *display = &data->display;
+	bool enabled;
+
+	igt_info("Dithering test execution on %s PIPE_%s\n",
+			output->name, kmstest_pipe_name(pipe));
+	prepare_test(data, output, pipe);
+
+	igt_assert(igt_create_fb(data->drm_fd, data->mode->hdisplay,
+				 data->mode->vdisplay, fb_format,
+				 LOCAL_DRM_FORMAT_MOD_NONE, &data->fb));
+	igt_plane_set_fb(data->primary, &data->fb);
+	igt_plane_set_size(data->primary, data->mode->hdisplay, data->mode->vdisplay);
+	igt_output_set_prop_value(data->output, IGT_CONNECTOR_MAX_BPC, output_bpc);
+	igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
+
+	/*
+	 * Check the status of Dithering block:
+	 * If fb_bpc is greater than output_bpc, Dithering should be enabled
+	 * Else disabled
+	 */
+	enabled = get_dither_state(data);
+	if (fb_bpc > output_bpc)
+		igt_assert_f(enabled, "(fb_%dbpc > output_%dbpc): Dither should be enabled\n",
+				fb_bpc, output_bpc);
+	else
+		igt_assert_f(!enabled, "(fb_%dbpc <= output_%dbpc): Dither should be disabled\n",
+				fb_bpc, output_bpc);
+
+	igt_plane_set_fb(data->primary, NULL);
+	igt_output_set_pipe(output, PIPE_NONE);
+	igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
+
+	igt_remove_fb(data->drm_fd, &data->fb);
+
+	return;
+}
+
+/* Returns true if an output supports max bpc property. */
+static bool has_max_bpc(igt_output_t *output)
+{
+        return igt_output_has_prop(output, IGT_CONNECTOR_MAX_BPC) &&
+               igt_output_get_prop(output, IGT_CONNECTOR_MAX_BPC);
+}
+
+static void
+run_dither_test(data_t *data, int fb_bpc, int fb_format, int output_bpc,
+		uint32_t flags)
+{
+	igt_output_t *output;
+	igt_display_t *display = &data->display;
+	enum pipe pipe;
+
+	for_each_pipe_with_valid_output(display, pipe, output) {
+		if (!has_max_bpc(output))
+			continue;
+
+		if (get_output_bpc(data, output) < output_bpc)
+			continue;
+
+		igt_dynamic_f("%s-pipe-%s", output->name, kmstest_pipe_name(pipe))
+			if (igt_pipe_connector_valid(pipe, output))
+				test_dithering(data, pipe, output, fb_bpc,
+					       fb_format, output_bpc, flags);
+
+		/* One is enough */
+		return;
+	}
+}
+
+igt_main
+{
+	struct {
+		int bpc;
+		int format;
+	} fb_formats[] = {
+		{ IGT_FRAME_BUFFER_BPC_8, DRM_FORMAT_RGB888 },
+		{ IGT_FRAME_BUFFER_BPC_10, DRM_FORMAT_XRGB2101010 },
+		{ IGT_FRAME_BUFFER_BPC_16, DRM_FORMAT_XRGB16161616F },
+	};
+	int output_bpc[] = {
+		IGT_CONNECTOR_BPC_6,
+		IGT_CONNECTOR_BPC_8,
+		IGT_CONNECTOR_BPC_10
+	};
+	int i, j;
+	data_t data = { 0 };
+
+	igt_fixture {
+		data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
+		kmstest_set_vt_graphics_mode();
+
+		igt_display_require(&data.display, data.drm_fd);
+		igt_display_require_output(&data.display);
+	}
+
+	for (i = 0; i < ARRAY_SIZE(fb_formats); i++) {
+		for (j = 0; j < ARRAY_SIZE(output_bpc); j++) {
+			igt_describe_f("Framebuffer BPC:%d, Panel BPC:%d, Expected Dither:%s\n",
+				       fb_formats[i].bpc, output_bpc[j],
+				       (fb_formats[i].bpc > output_bpc[j]) ? "Enable": "Disable");
+
+			igt_subtest_with_dynamic_f("FB-%dBPC-Vs-Panel-%dBPC", fb_formats[i].bpc, output_bpc[j])
+				run_dither_test(&data,
+						fb_formats[i].bpc,
+						fb_formats[i].format,
+						output_bpc[j],
+						TEST_NONE);
+		}
+	}
+
+	igt_fixture {
+		igt_display_fini(&data.display);
+	}
+}
diff --git a/tests/meson.build b/tests/meson.build
index ca792ed8..e50ff7e4 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -28,6 +28,7 @@ test_progs = [
 	'kms_cursor_crc',
 	'kms_cursor_edge_walk',
 	'kms_cursor_legacy',
+	'kms_dither',
 	'kms_dp_aux_dev',
 	'kms_dp_dsc',
 	'kms_dp_tiled_display',
-- 
2.20.1

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [igt-dev] [PATCH] tests/kms_dither: New IGT to validate crtc Dithering
  2020-07-26 12:29     ` [igt-dev] [PATCH] " Bhanuprakash Modem
@ 2020-07-29 18:41       ` Bhanuprakash Modem
  0 siblings, 0 replies; 26+ messages in thread
From: Bhanuprakash Modem @ 2020-07-29 18:41 UTC (permalink / raw)
  To: bhanuprakash.modem, igt-dev; +Cc: Petri Latvala

Many of the display devices have color format support less than
the color format of the input data (Ex: 8-bit input data and 6-bit
display color depth). Then the input data will be either truncated
or rounded, but this approach usually causes loss of detail and also
produce large banded areas of a single color that significantly
differs from the original image.

Dithering is a technique used to enhance these colors by creating the
illusion of smoothness by adjusting the nearby pixel color.
For Eg: Converting 8-bit to 6-bit by modifying the pixel information.

Dithering should be enabled when a panel color depth is lower than the
color depth of the framebuffer.

Even though feature Dithering is there since legacy, there is no
specific IGT for this. This patch will create New IGT for Dithering.
And below is the truth table for CRTC Dithering.

|----------------|---------|-------------|
|  Frame buffer  |  Panel  |  Dithering  |
|----------------|---------|-------------|
|      8 BPC     |  6 BPC  |     Yes     |
|----------------|---------|-------------|
|      8 BPC     |  8 BPC  |     No      |
|----------------|---------|-------------|
|      8 BPC     | 10 BPC  |     No      |
|----------------|---------|-------------|
|     10 BPC     |  6 BPC  |     Yes     |
|----------------|---------|-------------|
|     10 BPC     |  8 BPC  |     Yes     |
|----------------|---------|-------------|
|     10 BPC     | 10 BPC  |     No      |
|----------------|---------|-------------|
|     16 BPC     |  6 BPC  |     Yes     |
|----------------|---------|-------------|
|     16 BPC     |  8 BPC  |     Yes     |
|----------------|---------|-------------|
|     16 BPC     | 10 BPC  |     Yes     |
|----------------|---------|-------------|

v2:
* Fix commit message (Karthik)
* Add file author (Karthik)
* Dynamic subtests for pipe-output combinations (Karthik)
* Update deprecated pipe name (Karthik)
* Remove redundant fb creation logic (Karthik)

v3:
* Use for_each_pipe_with_valid_output() to simplify the logic (Bhanu)
* Remove magic numbers to create fb (Karthik)
* Fix typos & comments (Swati)

v4:
* Remove explicit igt_require for a valid output found,
  igt_subtest_with_dynamic will handle the SKIP (Petri)
* Limit the execution to a single pipe (Uma)

v5:
* SKIP subtest for HDMI with 6 BPC (Bhanu)
* Fix the usage of valid format to create 8 BPC Framebuffer (Bhanu)
* Add support for suspend/resume tests (Bhanu)
* Add few debug prints (Bhanu)

Cc: Swati Sharma <swati2.sharma@intel.com>
Cc: Karthik B S <karthik.b.s@intel.com>
Cc: Uma Shankar <uma.shankar@intel.com>
Cc: Pankaj Bharadiya <pankaj.laxminarayan.bharadiya@intel.com>
Cc: Petri Latvala <petri.latvala@intel.com>
Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
---
 tests/Makefile.sources |   1 +
 tests/kms_dither.c     | 273 +++++++++++++++++++++++++++++++++++++++++
 tests/meson.build      |   1 +
 3 files changed, 275 insertions(+)
 create mode 100644 tests/kms_dither.c

diff --git a/tests/Makefile.sources b/tests/Makefile.sources
index 93d7768c..f22b3f33 100644
--- a/tests/Makefile.sources
+++ b/tests/Makefile.sources
@@ -44,6 +44,7 @@ TESTS_progs = \
 	kms_cursor_crc \
 	kms_cursor_edge_walk \
 	kms_cursor_legacy \
+	kms_dither \
 	kms_dp_aux_dev \
 	kms_dp_dsc \
 	kms_dp_tiled_display \
diff --git a/tests/kms_dither.c b/tests/kms_dither.c
new file mode 100644
index 00000000..0ff50035
--- /dev/null
+++ b/tests/kms_dither.c
@@ -0,0 +1,273 @@
+/*
+ * Copyright © 2020 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ *     Bhanuprakash Modem <bhanuprakash.modem@intel.com>
+ *
+ */
+
+#include "igt.h"
+#include <fcntl.h>
+#include <termios.h>
+#include <unistd.h>
+
+IGT_TEST_DESCRIPTION("Test Dithering block status");
+
+/* Connector BPC */
+#define IGT_CONNECTOR_BPC_6		6
+#define IGT_CONNECTOR_BPC_8		8
+#define IGT_CONNECTOR_BPC_10		10
+#define IGT_CONNECTOR_BPC_12		12
+
+/* Framebuffer BPC */
+#define IGT_FRAME_BUFFER_BPC_8		8
+#define IGT_FRAME_BUFFER_BPC_10		10
+#define IGT_FRAME_BUFFER_BPC_16		16
+
+/* Test flags. */
+enum {
+	TEST_NONE = 1 << 0,
+	TEST_SUSPEND = 1 << 1,
+};
+
+/* Common test data. */
+typedef struct data {
+	igt_display_t display;
+	igt_plane_t *primary;
+	igt_output_t *output;
+	igt_pipe_t *pipe;
+	drmModeModeInfo *mode;
+	enum pipe pipe_id;
+	int drm_fd;
+	igt_fb_t fb;
+} data_t;
+
+/* Prepare test data. */
+static void prepare_test(data_t *data, igt_output_t *output, enum pipe pipe)
+{
+	igt_display_t *display = &data->display;
+
+	data->pipe_id = pipe;
+	data->pipe = &data->display.pipes[data->pipe_id];
+	igt_assert(data->pipe);
+
+	igt_display_reset(display);
+
+	data->output = output;
+	igt_assert(data->output);
+
+	data->mode = igt_output_get_mode(data->output);
+	igt_assert(data->mode);
+
+	data->primary =
+		igt_pipe_get_plane_type(data->pipe, DRM_PLANE_TYPE_PRIMARY);
+
+	igt_output_set_pipe(data->output, data->pipe_id);
+}
+
+/* Returns the current state of dithering from the crtc debugfs. */
+static bool get_dither_state(data_t *data)
+{
+	char buf[256];
+	char crtc_name[7];
+	char *start_loc;
+	int fd, res;
+	unsigned int status;
+
+	snprintf(crtc_name, 7, "crtc-%d", data->pipe_id);
+	fd = igt_debugfs_open(data->drm_fd, crtc_name, O_RDONLY);
+	igt_assert(fd >= 0);
+
+	res = igt_debugfs_simple_read(fd, "dither", buf, sizeof(buf));
+	igt_require(res > 0);
+	close(fd);
+
+	igt_assert(start_loc = strstr(buf, "Dither: "));
+	igt_assert_eq(sscanf(start_loc, "Dither: %u", &status), 1);
+
+	return !!status;
+}
+
+/* Returns the maximum bpc from the connector debugfs. */
+static unsigned int get_output_bpc(data_t *data, igt_output_t *output)
+{
+	char buf[256];
+	char *start_loc;
+	int fd, res;
+	unsigned int max_bpc;
+
+	fd = igt_debugfs_connector_dir(data->drm_fd, output->name, O_RDONLY);
+	igt_assert(fd >= 0);
+
+	res = igt_debugfs_simple_read(fd, "output_bpc", buf, sizeof(buf));
+	igt_require(res > 0);
+	close(fd);
+
+	igt_assert(start_loc = strstr(buf, "Maximum: "));
+	igt_assert_eq(sscanf(start_loc, "Maximum: %u", &max_bpc), 1);
+
+	return max_bpc;
+}
+
+static void test_dithering(data_t *data, enum pipe pipe,
+			   igt_output_t *output,
+			   int fb_bpc, int fb_format,
+			   int output_bpc, uint32_t flags)
+{
+	igt_display_t *display = &data->display;
+	bool enabled;
+
+	igt_info("Dithering test execution on %s PIPE_%s\n",
+			output->name, kmstest_pipe_name(pipe));
+	prepare_test(data, output, pipe);
+
+	igt_assert(igt_create_fb(data->drm_fd, data->mode->hdisplay,
+				 data->mode->vdisplay, fb_format,
+				 LOCAL_DRM_FORMAT_MOD_NONE, &data->fb));
+	igt_plane_set_fb(data->primary, &data->fb);
+	igt_plane_set_size(data->primary, data->mode->hdisplay, data->mode->vdisplay);
+
+	igt_output_set_prop_value(data->output, IGT_CONNECTOR_MAX_BPC, output_bpc);
+	igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
+
+	if (flags & TEST_SUSPEND)
+		igt_system_suspend_autoresume(SUSPEND_STATE_MEM,
+					      SUSPEND_TEST_NONE);
+
+	/*
+	 * Check the status of Dithering block:
+	 * If fb_bpc is greater than output_bpc, Dithering should be enabled
+	 * Else disabled
+	 */
+	enabled = get_dither_state(data);
+
+	igt_debug("FB BPC:%d, Panel BPC:%d, Expected Dither:%s, Actual result:%s\n",
+		  fb_bpc, output_bpc,
+		  (fb_bpc > output_bpc) ? "Enable": "Disable",
+		  enabled ? "Enable": "Disable");
+
+	if (fb_bpc > output_bpc)
+		igt_assert_f(enabled, "(fb_%dbpc > output_%dbpc): Dither should be enabled\n",
+				fb_bpc, output_bpc);
+	else
+		igt_assert_f(!enabled, "(fb_%dbpc <= output_%dbpc): Dither should be disabled\n",
+				fb_bpc, output_bpc);
+
+	igt_plane_set_fb(data->primary, NULL);
+	igt_output_set_pipe(output, PIPE_NONE);
+	igt_display_commit2(display, display->is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
+
+	igt_remove_fb(data->drm_fd, &data->fb);
+
+	return;
+}
+
+/* Returns true if an output supports max bpc property. */
+static bool has_max_bpc(igt_output_t *output)
+{
+        return igt_output_has_prop(output, IGT_CONNECTOR_MAX_BPC) &&
+               igt_output_get_prop(output, IGT_CONNECTOR_MAX_BPC);
+}
+
+static void
+run_dither_test(data_t *data, int fb_bpc, int fb_format, int output_bpc,
+		uint32_t flags)
+{
+	igt_output_t *output;
+	igt_display_t *display = &data->display;
+	enum pipe pipe;
+
+	for_each_pipe_with_valid_output(display, pipe, output) {
+		if (!has_max_bpc(output))
+			continue;
+
+		if (get_output_bpc(data, output) < output_bpc)
+			continue;
+
+		if ((strstr(output->name, "HDMI") != NULL) &&
+		    (output_bpc == IGT_CONNECTOR_BPC_6))
+			continue;
+
+		igt_dynamic_f("%s-pipe-%s", output->name, kmstest_pipe_name(pipe))
+			if (igt_pipe_connector_valid(pipe, output))
+				test_dithering(data, pipe, output, fb_bpc,
+					       fb_format, output_bpc, flags);
+
+		/* One is enough */
+		return;
+	}
+}
+
+igt_main
+{
+	struct {
+		int bpc;
+		int format;
+	} fb_formats[] = {
+		{ IGT_FRAME_BUFFER_BPC_8, DRM_FORMAT_XRGB8888 },
+		{ IGT_FRAME_BUFFER_BPC_10, DRM_FORMAT_XRGB2101010 },
+		{ IGT_FRAME_BUFFER_BPC_16, DRM_FORMAT_XRGB16161616F },
+	};
+	int output_bpc[] = {
+		IGT_CONNECTOR_BPC_6,
+		IGT_CONNECTOR_BPC_8,
+		IGT_CONNECTOR_BPC_10
+	};
+	int i, j;
+	data_t data = { 0 };
+
+	igt_fixture {
+		data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
+		kmstest_set_vt_graphics_mode();
+
+		igt_display_require(&data.display, data.drm_fd);
+		igt_display_require_output(&data.display);
+	}
+
+	for (i = 0; i < ARRAY_SIZE(fb_formats); i++) {
+		for (j = 0; j < ARRAY_SIZE(output_bpc); j++) {
+			igt_describe_f("Framebuffer BPC:%d, Panel BPC:%d, Expected Dither:%s\n",
+				       fb_formats[i].bpc, output_bpc[j],
+				       (fb_formats[i].bpc > output_bpc[j]) ? "Enable": "Disable");
+
+			igt_subtest_with_dynamic_f("FB-%dBPC-Vs-Panel-%dBPC",
+						   fb_formats[i].bpc, output_bpc[j])
+				run_dither_test(&data,
+						fb_formats[i].bpc,
+						fb_formats[i].format,
+						output_bpc[j],
+						TEST_NONE);
+
+			igt_subtest_with_dynamic_f("FB-%dBPC-Vs-Panel-%dBPC-suspend",
+						   fb_formats[i].bpc, output_bpc[j])
+				run_dither_test(&data,
+						fb_formats[i].bpc,
+						fb_formats[i].format,
+						output_bpc[j],
+						TEST_SUSPEND);
+		}
+	}
+
+	igt_fixture {
+		igt_display_fini(&data.display);
+	}
+}
diff --git a/tests/meson.build b/tests/meson.build
index ca792ed8..e50ff7e4 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -28,6 +28,7 @@ test_progs = [
 	'kms_cursor_crc',
 	'kms_cursor_edge_walk',
 	'kms_cursor_legacy',
+	'kms_dither',
 	'kms_dp_aux_dev',
 	'kms_dp_dsc',
 	'kms_dp_tiled_display',
-- 
2.20.1

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [igt-dev] ✓ Fi.CI.BAT: success for Add new IGT test to validate crtc Dithering (rev6)
  2020-07-20 16:50 [igt-dev] [PATCH i-g-t] Add new IGT test to validate crtc Dithering Bhanuprakash Modem
                   ` (11 preceding siblings ...)
  2020-07-26  6:05 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
@ 2020-07-30 10:49 ` Patchwork
  2020-07-30 12:28 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
  13 siblings, 0 replies; 26+ messages in thread
From: Patchwork @ 2020-07-30 10:49 UTC (permalink / raw)
  To: Bhanuprakash Modem; +Cc: igt-dev


[-- Attachment #1.1: Type: text/plain, Size: 5922 bytes --]

== Series Details ==

Series: Add new IGT test to validate crtc Dithering (rev6)
URL   : https://patchwork.freedesktop.org/series/79661/
State : success

== Summary ==

CI Bug Log - changes from IGT_5752 -> IGTPW_4826
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/index.html

Known issues
------------

  Here are the changes found in IGTPW_4826 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@i915_module_load@reload:
    - fi-bsw-kefka:       [PASS][1] -> [DMESG-WARN][2] ([i915#1982])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/fi-bsw-kefka/igt@i915_module_load@reload.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/fi-bsw-kefka/igt@i915_module_load@reload.html

  
#### Possible fixes ####

  * igt@gem_exec_suspend@basic-s3:
    - fi-tgl-u2:          [FAIL][3] ([i915#1888]) -> [PASS][4] +1 similar issue
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/fi-tgl-u2/igt@gem_exec_suspend@basic-s3.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/fi-tgl-u2/igt@gem_exec_suspend@basic-s3.html

  * igt@i915_pm_rpm@basic-pci-d3-state:
    - fi-byt-j1900:       [DMESG-WARN][5] ([i915#1982]) -> [PASS][6]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/fi-byt-j1900/igt@i915_pm_rpm@basic-pci-d3-state.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/fi-byt-j1900/igt@i915_pm_rpm@basic-pci-d3-state.html

  * igt@i915_pm_rpm@module-reload:
    - {fi-kbl-7560u}:     [WARN][7] -> [PASS][8]
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/fi-kbl-7560u/igt@i915_pm_rpm@module-reload.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/fi-kbl-7560u/igt@i915_pm_rpm@module-reload.html

  * igt@i915_selftest@live@gt_lrc:
    - fi-tgl-u2:          [DMESG-FAIL][9] ([i915#1233]) -> [PASS][10]
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/fi-tgl-u2/igt@i915_selftest@live@gt_lrc.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/fi-tgl-u2/igt@i915_selftest@live@gt_lrc.html

  * igt@kms_setmode@basic-clone-single-crtc:
    - {fi-kbl-7560u}:     [WARN][11] ([i915#2100]) -> [PASS][12]
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/fi-kbl-7560u/igt@kms_setmode@basic-clone-single-crtc.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/fi-kbl-7560u/igt@kms_setmode@basic-clone-single-crtc.html

  
#### Warnings ####

  * igt@gem_exec_suspend@basic-s0:
    - fi-kbl-x1275:       [DMESG-WARN][13] ([i915#62] / [i915#92] / [i915#95]) -> [DMESG-WARN][14] ([i915#1982] / [i915#62] / [i915#92] / [i915#95])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/fi-kbl-x1275/igt@gem_exec_suspend@basic-s0.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/fi-kbl-x1275/igt@gem_exec_suspend@basic-s0.html

  * igt@kms_cursor_legacy@basic-flip-after-cursor-legacy:
    - fi-kbl-x1275:       [DMESG-WARN][15] ([i915#62] / [i915#92] / [i915#95]) -> [DMESG-WARN][16] ([i915#62] / [i915#92]) +2 similar issues
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/fi-kbl-x1275/igt@kms_cursor_legacy@basic-flip-after-cursor-legacy.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/fi-kbl-x1275/igt@kms_cursor_legacy@basic-flip-after-cursor-legacy.html

  * igt@kms_force_connector_basic@force-edid:
    - fi-kbl-x1275:       [DMESG-WARN][17] ([i915#62] / [i915#92]) -> [DMESG-WARN][18] ([i915#62] / [i915#92] / [i915#95]) +2 similar issues
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/fi-kbl-x1275/igt@kms_force_connector_basic@force-edid.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/fi-kbl-x1275/igt@kms_force_connector_basic@force-edid.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [i915#1233]: https://gitlab.freedesktop.org/drm/intel/issues/1233
  [i915#1888]: https://gitlab.freedesktop.org/drm/intel/issues/1888
  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [i915#2100]: https://gitlab.freedesktop.org/drm/intel/issues/2100
  [i915#62]: https://gitlab.freedesktop.org/drm/intel/issues/62
  [i915#92]: https://gitlab.freedesktop.org/drm/intel/issues/92
  [i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95


Participating hosts (43 -> 36)
------------------------------

  Missing    (7): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-byt-clapper fi-bdw-samus 


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_5752 -> IGTPW_4826

  CI-20190529: 20190529
  CI_DRM_8815: 521846d50ed323d4dcb0ffafa63e34528b0a4996 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_4826: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/index.html
  IGT_5752: 3ecf9d88803a686354394ea60164551646235273 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools



== Testlist changes ==

+igt@kms_dither@fb-8bpc-vs-panel-6bpc
+igt@kms_dither@fb-8bpc-vs-panel-6bpc-suspend
+igt@kms_dither@fb-8bpc-vs-panel-8bpc
+igt@kms_dither@fb-8bpc-vs-panel-8bpc-suspend
+igt@kms_dither@fb-8bpc-vs-panel-10bpc
+igt@kms_dither@fb-8bpc-vs-panel-10bpc-suspend
+igt@kms_dither@fb-10bpc-vs-panel-6bpc
+igt@kms_dither@fb-10bpc-vs-panel-6bpc-suspend
+igt@kms_dither@fb-10bpc-vs-panel-8bpc
+igt@kms_dither@fb-10bpc-vs-panel-8bpc-suspend
+igt@kms_dither@fb-10bpc-vs-panel-10bpc
+igt@kms_dither@fb-10bpc-vs-panel-10bpc-suspend
+igt@kms_dither@fb-16bpc-vs-panel-6bpc
+igt@kms_dither@fb-16bpc-vs-panel-6bpc-suspend
+igt@kms_dither@fb-16bpc-vs-panel-8bpc
+igt@kms_dither@fb-16bpc-vs-panel-8bpc-suspend
+igt@kms_dither@fb-16bpc-vs-panel-10bpc
+igt@kms_dither@fb-16bpc-vs-panel-10bpc-suspend

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/index.html

[-- Attachment #1.2: Type: text/html, Size: 7815 bytes --]

[-- Attachment #2: Type: text/plain, Size: 154 bytes --]

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [igt-dev] ✗ Fi.CI.IGT: failure for Add new IGT test to validate crtc Dithering (rev6)
  2020-07-20 16:50 [igt-dev] [PATCH i-g-t] Add new IGT test to validate crtc Dithering Bhanuprakash Modem
                   ` (12 preceding siblings ...)
  2020-07-30 10:49 ` [igt-dev] ✓ Fi.CI.BAT: success for Add new IGT test to validate crtc Dithering (rev6) Patchwork
@ 2020-07-30 12:28 ` Patchwork
  13 siblings, 0 replies; 26+ messages in thread
From: Patchwork @ 2020-07-30 12:28 UTC (permalink / raw)
  To: Bhanuprakash Modem; +Cc: igt-dev


[-- Attachment #1.1: Type: text/plain, Size: 21046 bytes --]

== Series Details ==

Series: Add new IGT test to validate crtc Dithering (rev6)
URL   : https://patchwork.freedesktop.org/series/79661/
State : failure

== Summary ==

CI Bug Log - changes from IGT_5752_full -> IGTPW_4826_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_4826_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_4826_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/index.html

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in IGTPW_4826_full:

### IGT changes ###

#### Possible regressions ####

  * igt@gem_exec_parallel@contexts@bcs0:
    - shard-kbl:          [PASS][1] -> [INCOMPLETE][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/shard-kbl4/igt@gem_exec_parallel@contexts@bcs0.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/shard-kbl7/igt@gem_exec_parallel@contexts@bcs0.html

  * {igt@kms_dither@fb-8bpc-vs-panel-6bpc} (NEW):
    - shard-iclb:         NOTRUN -> [SKIP][3] +16 similar issues
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/shard-iclb1/igt@kms_dither@fb-8bpc-vs-panel-6bpc.html

  * {igt@kms_dither@fb-8bpc-vs-panel-6bpc-suspend} (NEW):
    - shard-tglb:         NOTRUN -> [SKIP][4] +16 similar issues
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/shard-tglb8/igt@kms_dither@fb-8bpc-vs-panel-6bpc-suspend.html

  * igt@kms_flip@2x-flip-vs-fences@bc-vga1-hdmi-a1:
    - shard-hsw:          [PASS][5] -> [INCOMPLETE][6]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/shard-hsw6/igt@kms_flip@2x-flip-vs-fences@bc-vga1-hdmi-a1.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/shard-hsw8/igt@kms_flip@2x-flip-vs-fences@bc-vga1-hdmi-a1.html

  
New tests
---------

  New tests have been introduced between IGT_5752_full and IGTPW_4826_full:

### New IGT tests (18) ###

  * igt@kms_dither@fb-10bpc-vs-panel-10bpc:
    - Statuses : 7 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_dither@fb-10bpc-vs-panel-10bpc-suspend:
    - Statuses : 7 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_dither@fb-10bpc-vs-panel-6bpc:
    - Statuses :
    - Exec time: [None] s

  * igt@kms_dither@fb-10bpc-vs-panel-6bpc-suspend:
    - Statuses : 7 skip(s)
    - Exec time: [0.0] s

  * igt@kms_dither@fb-10bpc-vs-panel-8bpc:
    - Statuses : 7 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_dither@fb-10bpc-vs-panel-8bpc-suspend:
    - Statuses : 7 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_dither@fb-16bpc-vs-panel-10bpc:
    - Statuses : 7 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_dither@fb-16bpc-vs-panel-10bpc-suspend:
    - Statuses : 7 skip(s)
    - Exec time: [0.0] s

  * igt@kms_dither@fb-16bpc-vs-panel-6bpc:
    - Statuses : 7 skip(s)
    - Exec time: [0.0] s

  * igt@kms_dither@fb-16bpc-vs-panel-6bpc-suspend:
    - Statuses : 7 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_dither@fb-16bpc-vs-panel-8bpc:
    - Statuses : 7 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_dither@fb-16bpc-vs-panel-8bpc-suspend:
    - Statuses : 5 skip(s)
    - Exec time: [0.0] s

  * igt@kms_dither@fb-8bpc-vs-panel-10bpc:
    - Statuses : 7 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_dither@fb-8bpc-vs-panel-10bpc-suspend:
    - Statuses : 6 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_dither@fb-8bpc-vs-panel-6bpc:
    - Statuses : 7 skip(s)
    - Exec time: [0.0] s

  * igt@kms_dither@fb-8bpc-vs-panel-6bpc-suspend:
    - Statuses : 7 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_dither@fb-8bpc-vs-panel-8bpc:
    - Statuses : 7 skip(s)
    - Exec time: [0.0, 0.00] s

  * igt@kms_dither@fb-8bpc-vs-panel-8bpc-suspend:
    - Statuses : 7 skip(s)
    - Exec time: [0.0, 0.00] s

  

Known issues
------------

  Here are the changes found in IGTPW_4826_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_reloc@basic-concurrent0:
    - shard-glk:          [PASS][7] -> [FAIL][8] ([i915#1930])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/shard-glk6/igt@gem_exec_reloc@basic-concurrent0.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/shard-glk1/igt@gem_exec_reloc@basic-concurrent0.html

  * igt@gen9_exec_parse@allowed-all:
    - shard-apl:          [PASS][9] -> [DMESG-WARN][10] ([i915#1436] / [i915#1635] / [i915#716])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/shard-apl8/igt@gen9_exec_parse@allowed-all.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/shard-apl1/igt@gen9_exec_parse@allowed-all.html
    - shard-kbl:          [PASS][11] -> [DMESG-WARN][12] ([i915#1436] / [i915#716])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/shard-kbl2/igt@gen9_exec_parse@allowed-all.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/shard-kbl2/igt@gen9_exec_parse@allowed-all.html

  * igt@i915_pm_dc@dc6-psr:
    - shard-iclb:         [PASS][13] -> [FAIL][14] ([i915#454])
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/shard-iclb6/igt@i915_pm_dc@dc6-psr.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/shard-iclb2/igt@i915_pm_dc@dc6-psr.html

  * igt@kms_cursor_edge_walk@pipe-c-128x128-top-edge:
    - shard-glk:          [PASS][15] -> [DMESG-WARN][16] ([i915#1982])
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/shard-glk3/igt@kms_cursor_edge_walk@pipe-c-128x128-top-edge.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/shard-glk1/igt@kms_cursor_edge_walk@pipe-c-128x128-top-edge.html

  * igt@kms_flip@2x-modeset-vs-vblank-race-interruptible@ab-vga1-hdmi-a1:
    - shard-hsw:          [PASS][17] -> [DMESG-WARN][18] ([i915#1982])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/shard-hsw4/igt@kms_flip@2x-modeset-vs-vblank-race-interruptible@ab-vga1-hdmi-a1.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/shard-hsw6/igt@kms_flip@2x-modeset-vs-vblank-race-interruptible@ab-vga1-hdmi-a1.html

  * igt@kms_flip@modeset-vs-vblank-race-interruptible@a-dp1:
    - shard-kbl:          [PASS][19] -> [DMESG-WARN][20] ([i915#1982]) +1 similar issue
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/shard-kbl1/igt@kms_flip@modeset-vs-vblank-race-interruptible@a-dp1.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/shard-kbl1/igt@kms_flip@modeset-vs-vblank-race-interruptible@a-dp1.html

  * igt@kms_frontbuffer_tracking@fbc-suspend:
    - shard-kbl:          [PASS][21] -> [DMESG-WARN][22] ([i915#180]) +2 similar issues
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/shard-kbl1/igt@kms_frontbuffer_tracking@fbc-suspend.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/shard-kbl3/igt@kms_frontbuffer_tracking@fbc-suspend.html

  * igt@kms_frontbuffer_tracking@psr-rgb565-draw-mmap-wc:
    - shard-tglb:         [PASS][23] -> [DMESG-WARN][24] ([i915#1982]) +4 similar issues
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/shard-tglb3/igt@kms_frontbuffer_tracking@psr-rgb565-draw-mmap-wc.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/shard-tglb5/igt@kms_frontbuffer_tracking@psr-rgb565-draw-mmap-wc.html

  * igt@kms_plane_scaling@pipe-a-scaler-with-clipping-clamping:
    - shard-iclb:         [PASS][25] -> [DMESG-WARN][26] ([i915#1982]) +2 similar issues
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/shard-iclb7/igt@kms_plane_scaling@pipe-a-scaler-with-clipping-clamping.html
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/shard-iclb3/igt@kms_plane_scaling@pipe-a-scaler-with-clipping-clamping.html

  * igt@kms_prop_blob@blob-prop-validate:
    - shard-snb:          [PASS][27] -> [TIMEOUT][28] ([i915#1958] / [i915#2119])
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/shard-snb5/igt@kms_prop_blob@blob-prop-validate.html
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/shard-snb6/igt@kms_prop_blob@blob-prop-validate.html

  * igt@kms_psr@psr2_cursor_plane_onoff:
    - shard-iclb:         [PASS][29] -> [SKIP][30] ([fdo#109441]) +2 similar issues
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/shard-iclb2/igt@kms_psr@psr2_cursor_plane_onoff.html
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/shard-iclb8/igt@kms_psr@psr2_cursor_plane_onoff.html

  
#### Possible fixes ####

  * igt@core_setmaster@master-drop-set-user:
    - shard-iclb:         [FAIL][31] -> [PASS][32]
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/shard-iclb5/igt@core_setmaster@master-drop-set-user.html
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/shard-iclb2/igt@core_setmaster@master-drop-set-user.html
    - shard-kbl:          [FAIL][33] -> [PASS][34]
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/shard-kbl2/igt@core_setmaster@master-drop-set-user.html
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/shard-kbl1/igt@core_setmaster@master-drop-set-user.html
    - shard-snb:          [FAIL][35] -> [PASS][36]
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/shard-snb6/igt@core_setmaster@master-drop-set-user.html
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/shard-snb5/igt@core_setmaster@master-drop-set-user.html
    - shard-tglb:         [FAIL][37] -> [PASS][38]
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/shard-tglb5/igt@core_setmaster@master-drop-set-user.html
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/shard-tglb5/igt@core_setmaster@master-drop-set-user.html
    - shard-apl:          [FAIL][39] ([i915#1635]) -> [PASS][40]
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/shard-apl4/igt@core_setmaster@master-drop-set-user.html
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/shard-apl2/igt@core_setmaster@master-drop-set-user.html
    - shard-glk:          [FAIL][41] -> [PASS][42]
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/shard-glk5/igt@core_setmaster@master-drop-set-user.html
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/shard-glk3/igt@core_setmaster@master-drop-set-user.html
    - shard-hsw:          [FAIL][43] -> [PASS][44]
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/shard-hsw6/igt@core_setmaster@master-drop-set-user.html
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/shard-hsw2/igt@core_setmaster@master-drop-set-user.html

  * igt@gem_ctx_isolation@preservation-s3@vcs0:
    - shard-kbl:          [DMESG-WARN][45] ([i915#180]) -> [PASS][46] +3 similar issues
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/shard-kbl1/igt@gem_ctx_isolation@preservation-s3@vcs0.html
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/shard-kbl1/igt@gem_ctx_isolation@preservation-s3@vcs0.html

  * igt@gem_exec_whisper@basic-queues-priority-all:
    - shard-glk:          [DMESG-WARN][47] ([i915#118] / [i915#95]) -> [PASS][48]
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/shard-glk4/igt@gem_exec_whisper@basic-queues-priority-all.html
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/shard-glk2/igt@gem_exec_whisper@basic-queues-priority-all.html

  * igt@kms_addfb_basic@bo-too-small:
    - shard-hsw:          [TIMEOUT][49] ([i915#1958] / [i915#2119]) -> [PASS][50] +2 similar issues
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/shard-hsw1/igt@kms_addfb_basic@bo-too-small.html
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/shard-hsw4/igt@kms_addfb_basic@bo-too-small.html

  * igt@kms_cursor_edge_walk@pipe-b-128x128-left-edge:
    - shard-glk:          [DMESG-WARN][51] ([i915#1982]) -> [PASS][52]
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/shard-glk6/igt@kms_cursor_edge_walk@pipe-b-128x128-left-edge.html
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/shard-glk2/igt@kms_cursor_edge_walk@pipe-b-128x128-left-edge.html

  * igt@kms_cursor_edge_walk@pipe-b-256x256-top-edge:
    - shard-snb:          [TIMEOUT][53] ([i915#1958] / [i915#2119]) -> [PASS][54] +3 similar issues
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/shard-snb5/igt@kms_cursor_edge_walk@pipe-b-256x256-top-edge.html
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/shard-snb2/igt@kms_cursor_edge_walk@pipe-b-256x256-top-edge.html

  * igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible@ab-vga1-hdmi-a1:
    - shard-hsw:          [DMESG-WARN][55] ([i915#1982]) -> [PASS][56]
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/shard-hsw6/igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible@ab-vga1-hdmi-a1.html
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/shard-hsw4/igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible@ab-vga1-hdmi-a1.html

  * igt@kms_flip@flip-vs-suspend-interruptible@b-hdmi-a1:
    - shard-hsw:          [INCOMPLETE][57] ([i915#2055]) -> [PASS][58]
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/shard-hsw1/igt@kms_flip@flip-vs-suspend-interruptible@b-hdmi-a1.html
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/shard-hsw1/igt@kms_flip@flip-vs-suspend-interruptible@b-hdmi-a1.html

  * igt@kms_frontbuffer_tracking@fbc-modesetfrombusy:
    - shard-kbl:          [DMESG-WARN][59] ([i915#1982]) -> [PASS][60]
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/shard-kbl6/igt@kms_frontbuffer_tracking@fbc-modesetfrombusy.html
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/shard-kbl6/igt@kms_frontbuffer_tracking@fbc-modesetfrombusy.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-render:
    - shard-tglb:         [DMESG-WARN][61] ([i915#1982]) -> [PASS][62] +3 similar issues
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/shard-tglb5/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-render.html
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/shard-tglb1/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-render.html
    - shard-iclb:         [DMESG-WARN][63] ([i915#1982]) -> [PASS][64]
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/shard-iclb8/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-render.html
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/shard-iclb3/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-render.html

  * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
    - shard-kbl:          [INCOMPLETE][65] ([i915#155]) -> [PASS][66] +1 similar issue
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/shard-kbl3/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/shard-kbl6/igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a.html

  * igt@kms_psr2_su@page_flip:
    - shard-iclb:         [SKIP][67] ([fdo#109642] / [fdo#111068]) -> [PASS][68]
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/shard-iclb4/igt@kms_psr2_su@page_flip.html
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/shard-iclb2/igt@kms_psr2_su@page_flip.html

  * igt@kms_psr@psr2_primary_page_flip:
    - shard-iclb:         [SKIP][69] ([fdo#109441]) -> [PASS][70]
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/shard-iclb5/igt@kms_psr@psr2_primary_page_flip.html
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/shard-iclb2/igt@kms_psr@psr2_primary_page_flip.html

  * igt@kms_vblank@pipe-c-query-forked-busy:
    - shard-apl:          [DMESG-WARN][71] ([i915#1635] / [i915#1982]) -> [PASS][72] +1 similar issue
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/shard-apl3/igt@kms_vblank@pipe-c-query-forked-busy.html
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/shard-apl7/igt@kms_vblank@pipe-c-query-forked-busy.html

  * igt@perf@blocking-parameterized:
    - shard-iclb:         [FAIL][73] ([i915#1542]) -> [PASS][74]
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/shard-iclb2/igt@perf@blocking-parameterized.html
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/shard-iclb2/igt@perf@blocking-parameterized.html

  
#### Warnings ####

  * igt@gem_ctx_persistence@engines-mixed-process:
    - shard-snb:          [SKIP][75] ([fdo#109271] / [i915#1099]) -> [TIMEOUT][76] ([i915#1958] / [i915#2119])
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/shard-snb5/igt@gem_ctx_persistence@engines-mixed-process.html
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/shard-snb6/igt@gem_ctx_persistence@engines-mixed-process.html

  * igt@kms_content_protection@atomic:
    - shard-kbl:          [TIMEOUT][77] ([i915#1319] / [i915#2119]) -> [TIMEOUT][78] ([i915#1319] / [i915#1958] / [i915#2119])
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/shard-kbl1/igt@kms_content_protection@atomic.html
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/shard-kbl4/igt@kms_content_protection@atomic.html

  * igt@kms_cursor_crc@pipe-c-cursor-512x512-random:
    - shard-snb:          [TIMEOUT][79] ([i915#1958] / [i915#2119]) -> [SKIP][80] ([fdo#109271])
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/shard-snb5/igt@kms_cursor_crc@pipe-c-cursor-512x512-random.html
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/shard-snb5/igt@kms_cursor_crc@pipe-c-cursor-512x512-random.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-shrfb-pgflip-blt:
    - shard-hsw:          [TIMEOUT][81] ([i915#1958] / [i915#2119]) -> [SKIP][82] ([fdo#109271]) +1 similar issue
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/shard-hsw1/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-shrfb-pgflip-blt.html
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/shard-hsw4/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-shrfb-pgflip-blt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-blt:
    - shard-hsw:          [SKIP][83] ([fdo#109271]) -> [TIMEOUT][84] ([i915#1958] / [i915#2119]) +3 similar issues
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/shard-hsw8/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-blt.html
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/shard-hsw1/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-blt.html

  * igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-wc:
    - shard-snb:          [SKIP][85] ([fdo#109271]) -> [TIMEOUT][86] ([i915#1958] / [i915#2119]) +3 similar issues
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5752/shard-snb4/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-wc.html
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/shard-snb6/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-wc.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
  [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
  [i915#1099]: https://gitlab.freedesktop.org/drm/intel/issues/1099
  [i915#118]: https://gitlab.freedesktop.org/drm/intel/issues/118
  [i915#1319]: https://gitlab.freedesktop.org/drm/intel/issues/1319
  [i915#1436]: https://gitlab.freedesktop.org/drm/intel/issues/1436
  [i915#1542]: https://gitlab.freedesktop.org/drm/intel/issues/1542
  [i915#155]: https://gitlab.freedesktop.org/drm/intel/issues/155
  [i915#1635]: https://gitlab.freedesktop.org/drm/intel/issues/1635
  [i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
  [i915#1930]: https://gitlab.freedesktop.org/drm/intel/issues/1930
  [i915#1958]: https://gitlab.freedesktop.org/drm/intel/issues/1958
  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [i915#2055]: https://gitlab.freedesktop.org/drm/intel/issues/2055
  [i915#2119]: https://gitlab.freedesktop.org/drm/intel/issues/2119
  [i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454
  [i915#716]: https://gitlab.freedesktop.org/drm/intel/issues/716
  [i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95


Participating hosts (8 -> 8)
------------------------------

  No changes in participating hosts


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_5752 -> IGTPW_4826

  CI-20190529: 20190529
  CI_DRM_8815: 521846d50ed323d4dcb0ffafa63e34528b0a4996 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_4826: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/index.html
  IGT_5752: 3ecf9d88803a686354394ea60164551646235273 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4826/index.html

[-- Attachment #1.2: Type: text/html, Size: 25764 bytes --]

[-- Attachment #2: Type: text/plain, Size: 154 bytes --]

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2020-07-30 12:28 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-20 16:50 [igt-dev] [PATCH i-g-t] Add new IGT test to validate crtc Dithering Bhanuprakash Modem
2020-07-20 10:02 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork
2020-07-20 12:18 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
2020-07-21 11:19 ` [igt-dev] [PATCH i-g-t] " Karthik B S
2020-07-21 13:35   ` Modem, Bhanuprakash
2020-07-21 14:15 ` [igt-dev] ✓ Fi.CI.BAT: success for Add new IGT test to validate crtc Dithering (rev2) Patchwork
2020-07-21 17:19 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2020-07-21 21:48 ` [igt-dev] [PATCH i-g-t] tests/kms_dither: Add new IGT test to validate crtc Dithering Bhanuprakash Modem
2020-07-22 15:14   ` Sharma, Swati2
2020-07-23  5:53     ` Modem, Bhanuprakash
2020-07-23 22:55   ` [igt-dev] [PATCH i-g-t] tests/kms_dither: New IGT " Bhanuprakash Modem
2020-07-24  8:57     ` Petri Latvala
2020-07-24 11:10     ` Shankar, Uma
2020-07-24 12:56       ` Modem, Bhanuprakash
2020-07-26 12:29     ` [igt-dev] [PATCH] " Bhanuprakash Modem
2020-07-29 18:41       ` Bhanuprakash Modem
2020-07-23 15:28 ` [igt-dev] ✗ GitLab.Pipeline: warning for Add new IGT test to validate crtc Dithering (rev3) Patchwork
2020-07-23 15:35 ` [igt-dev] ✗ Fi.CI.BAT: failure " Patchwork
2020-07-24  9:01   ` Petri Latvala
2020-07-24 12:09     ` Vudum, Lakshminarayana
2020-07-24 11:48 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork
2020-07-24 13:27 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2020-07-26  5:02 ` [igt-dev] ✓ Fi.CI.BAT: success for Add new IGT test to validate crtc Dithering (rev4) Patchwork
2020-07-26  6:05 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2020-07-30 10:49 ` [igt-dev] ✓ Fi.CI.BAT: success for Add new IGT test to validate crtc Dithering (rev6) Patchwork
2020-07-30 12:28 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.