desktop-packages team mailing list archive
-
desktop-packages team
-
Mailing list archive
-
Message #135006
[Bug 1493596] [NEW] Glamor chooses texture format that don't work on Nexus 4
Public bug reported:
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?
** Affects: xorg-server (Ubuntu)
Importance: High
Assignee: Robert Ancell (robert-ancell)
Status: Triaged
** Tags: xmir
** Tags added: xmir
** Changed in: xorg-server (Ubuntu)
Status: New => Triaged
** Changed in: xorg-server (Ubuntu)
Importance: Undecided => High
** Changed in: xorg-server (Ubuntu)
Assignee: (unassigned) => Robert Ancell (robert-ancell)
--
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to xorg-server in Ubuntu.
https://bugs.launchpad.net/bugs/1493596
Title:
Glamor chooses texture format that don't work on Nexus 4
Status in xorg-server package in Ubuntu:
Triaged
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:
https://bugs.launchpad.net/ubuntu/+source/xorg-server/+bug/1493596/+subscriptions
Follow ups