** Changed in: xorg-server (Ubuntu)
     Assignee: Robert Ancell (robert-ancell) => (unassigned)

** Changed in: xorg-server (Ubuntu)
       Status: Triaged => Won't Fix

You received this bug notification because you are a member of Desktop
Packages, which is subscribed to xorg-server in Ubuntu.

  Glamor chooses texture format that doesn't work on Nexus 4

Status in xorg-server package in Ubuntu:
  Won't Fix

Bug description:
  When Glamor generates textures it does so with format=GL_RGBA and
  type=GL_UNSIGNED_BYTE using glTexImage2D. However when it writes to
  these images it does it with format=GL_BGRA and type =
  GL_UNSIGNED_INT_8_8_8_8_REV using glTexSubImage2D.

  This works fine on a desktop (Intel) but when running on a Nexus 4 a
  GL_INVALID_OPERATION is generated when calling glTexSubImage2D.

  There seems to be a couple of problems:
  - The format is originally GL_RGBA and then changed to GL_BGRA. 
glTexSubImage2D says "GL_INVALID_OPERATION is generated if the texture array 
has not been defined by a previous glTexImage2D or glCopyTexImage2D operation  
whose internalformat matches the format of glTexSubImage2D."
  - type GL_UNSIGNED_INT_8_8_8_8_REV is an extension and doesn't seem to be 
supported on the Nexus 4.

  By changing the original format to GL_RGBA (in glamor/glamor_utils.h)
  and the glTexSubImage2D to use format=GL_RGBA type=GL_UNSIGNED_BYTE
  (glamor/glamor_transfer.c) we can get this to work.

  The question is - is the current Glamor code to aggressive in using
  extensions or should it be able to better detect which method is
  appropriate for each driver? Are there other issues with the X format
  the pixmap data is in?

To manage notifications about this bug go to:

Mailing list: https://launchpad.net/~desktop-packages
Post to     : desktop-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~desktop-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to