<html>
    <head>
      <base href="https://bugs.freedesktop.org/">
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [[g620] [UXA XV]] No xv with uxa"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=100590">100590</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>[[g620] [UXA XV]] No xv with uxa
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>xorg
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>git
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>x86-64 (AMD64)
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Linux (All)
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>major
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>medium
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>Driver/intel
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>chris@chris-wilson.co.uk
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>artem.astafyev@gmail.com
          </td>
        </tr>

        <tr>
          <th>QA Contact</th>
          <td>intel-gfx-bugs@lists.freedesktop.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Description: No xv when using uxa acceleration method.
Expected result: xvinfo shows list of xv adapters.
Expected result: xvinfo shows "no adaptors present".
Source: xserver-xorg-video-intel-2.99.917+git20170309

I identified that the problem is in src/uxa/intel_video.c file intel_video_init
function:

        if (!intel->force_fallback &&
            scrn->bitsPerPixel >= 16 &&
            INTEL_INFO(intel)->gen >= 030 &&
            INTEL_INFO(intel)->gen < 0100) {
                texturedAdaptor = intel_uxa_video_setup_image_textured(screen);
                if (texturedAdaptor != NULL) {
                        xf86DrvMsg(scrn->scrnIndex, X_INFO,
                                   "Set up textured video\n");
                } else {
                        xf86DrvMsg(scrn->scrnIndex, X_ERROR,
                                   "Failed to set up textured video\n");
                }
        }

In my case INTEL_INFO(intel)->gen==74 so I should get either "Set up textured
video\n" or "Failed to set up textured video\n" message in Xorg log. But there
is nothing in the log:


[ 39864.856] (==) Depth 24 pixmap format is 32 bpp
[ 39864.856] (II) intel(0): Allocated new frame buffer 5120x1800 stride 20480,
tiled
[ 39864.856] (II) UXA(0): Driver registered support for the following
operations:
[ 39864.856] (II)         solid
[ 39864.856] (II)         copy
[ 39864.856] (II)         put_image
[ 39864.856] (II)         get_image
[ 39864.856] (II) intel(0): [DRI2] Setup complete
[ 39864.856] (II) intel(0): [DRI2]   DRI driver: i965
[ 39864.856] (II) intel(0): [DRI2]   VDPAU driver: va_gl
[ 39864.856] (==) intel(0): Backing store enabled
[ 39864.856] (==) intel(0): Silken mouse enabled
[ 39864.856] (II) intel(0): Initializing HW Cursor
[ 39864.856] (II) intel(0): RandR 1.2 enabled, ignore the following RandR
disabled message.
[ 39864.856] (==) intel(0): DPMS enabled
[ 39864.856] (==) intel(0): Intel XvMC decoder enabled
[ 39864.856] (WW) intel(0): Disabling Xv because no adaptors could be
initialized.
[ 39864.856] (II) intel(0): DRI2: Enabled
[ 39864.856] (II) intel(0): DRI3: Enabled

I even tried such condition with zero result:

        if (INTEL_INFO(intel)->gen >= 030 &&
            INTEL_INFO(intel)->gen < 0100) {

It started working only with the following condition:
        if (!intel->force_fallback &&
            scrn->bitsPerPixel >= 16 &&
            INTEL_INFO(intel)->gen >= 030) {

I wonder why it happened, the only thing I think it can be some compiler
optimizations which break the logic. Anyway after this fix everything works as
expected:

[ 16960.400] (==) Depth 24 pixmap format is 32 bpp
[ 16960.400] (II) intel(0): Allocated new frame buffer 5120x1800 stride 20480,
tiled
[ 16960.400] (II) UXA(0): Driver registered support for the following
operations:
[ 16960.400] (II)         solid
[ 16960.400] (II)         copy
[ 16960.400] (II)         put_image
[ 16960.400] (II)         get_image
[ 16960.400] (II) intel(0): [DRI2] Setup complete
[ 16960.400] (II) intel(0): [DRI2]   DRI driver: i965
[ 16960.400] (II) intel(0): [DRI2]   VDPAU driver: va_gl
[ 16960.400] (==) intel(0): Backing store enabled
[ 16960.400] (==) intel(0): Silken mouse enabled
[ 16960.400] (II) intel(0): Initializing HW Cursor
[ 16960.400] (II) intel(0): RandR 1.2 enabled, ignore the following RandR
disabled message.
[ 16960.400] (==) intel(0): DPMS enabled
[ 16960.400] (==) intel(0): Intel XvMC decoder enabled
[ 16960.400] (II) intel(0): Set up textured video
[ 16960.400] (II) intel(0): [XvMC] xvmc_vld driver initialized.
[ 16960.400] (II) intel(0): DRI2: Enabled
[ 16960.400] (II) intel(0): DRI3: Enabled</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are the QA Contact for the bug.</li>
      </ul>
    </body>
</html>