Closed Bug 743314 Opened 8 years ago Closed 8 years ago

Force CanUploadSubtextures on Maemo6 harmattan

Categories

(Core :: Graphics, defect)

ARM
Maemo
defect
Not set

Tracking

()

RESOLVED FIXED
mozilla15

People

(Reporter: romaxa, Assigned: romaxa)

References

Details

(Keywords: regression)

Attachments

(1 file, 3 obsolete files)

I've been testing latest m-c where we enabled texture upload checks and small tiles for all platforms, and I've found that scrolling on simple page on N9 become more jerkiness...

Problem is that making small tiles increased amount of TextureLock/Unlock operations, and that is making related Sync/Flushes
tested gfx.work-around-driver-bugs preference and with = TRUE (default) i see on scaled rendering:
Compositor: Layers update took 28 ms (blocking gecko).
Compositor: Layers update took 378 ms (blocking gecko).
Compositor: Layers update took 391 ms (blocking gecko).
Compositor: Layers update took 396 ms (blocking gecko).

With FALSE value
Compositor: Layers update took 18 ms (blocking gecko).
Compositor: Layers update took 32 ms (blocking gecko).
Compositor: Layers update took 111 ms (blocking gecko).

So suggesting to set that pref -> FALSE on maemo, because it make things slower.
Assignee: nobody → romaxa
Attachment #614240 - Flags: review?(jgilbert)
gfx.work-around-driver-bugs is going to be used for many things in the future. Perhaps it would be best to find what in particular is slower, such as CanUploadSubtextures and disable individual work around that aren't needed at compile time.
Comment on attachment 614240 [details] [diff] [review]
Disable workaround driver bugs on maemo

ok, I see, will do that
Attachment #614240 - Flags: review?(jgilbert)
I see two options here:
one is simply  force subtextures for Maemo environment... but that would be hard to use if I build non-maemo build on N9 hardware...

Another option is to check EGL provider if that has KHRLockSurface (which allow us to upload sub images and even render directly into texture memory data) and return true in that case.
Attachment #614240 - Attachment is obsolete: true
Attachment #614644 - Flags: review?(jgilbert)
Also this causing webgl breakage, because on N9 we use backingSurface and that seems not very friendly with small tiles.
Keywords: regression
Blocks: 727688
Attachment #614644 - Flags: review?(jgilbert) → review?(bgirard)
Comment on attachment 614644 [details] [diff] [review]
Check for KHR lock Surface extension

Review of attachment 614644 [details] [diff] [review]:
-----------------------------------------------------------------

An r- from me, but only due to naming issues.

::: gfx/gl/GLContext.cpp
@@ +640,5 @@
>  {
>      if (!mWorkAroundDriverBugs)
>          return true;
>  
> +    if (CanRenderToTexture())

This doesn't make sense, logically - Rendering to a texture doesn't necessarily help doing a sub-texture upload... Perhaps this function should have been called HasFastTextureUpload, or something along those lines?

::: gfx/gl/GLContextProviderEGL.cpp
@@ +596,5 @@
>  
>          return h;
>      }
>  
> +    virtual bool CanRenderToTexture() {

KHRLockSurface isn't really render-to-texture, it's mmap-texture-memory... This needs a better name.
Attachment #614644 - Flags: review-
Attachment #614642 - Attachment is obsolete: true
Attachment #614644 - Attachment is obsolete: true
Attachment #614644 - Flags: review?(bgirard)
Attachment #619159 - Flags: review?(chrislord.net)
Comment on attachment 619159 [details] [diff] [review]
Check for  lock Surface feature

Review of attachment 619159 [details] [diff] [review]:
-----------------------------------------------------------------

r+ with an added comment explaining why you would want to allow sub-texture upload when HasLockSurface is true.

::: gfx/gl/GLContext.cpp
@@ +640,5 @@
>  {
>      if (!mWorkAroundDriverBugs)
>          return true;
>  
> +    if (HasLockSurface())

Add a comment here as to why we're returning true when HasLockSurface returns true.
Attachment #619159 - Flags: review?(chrislord.net) → review+
http://hg.mozilla.org/mozilla-central/rev/339e0c1de0e1
Status: ASSIGNED → RESOLVED
Closed: 8 years ago
Flags: in-testsuite-
Resolution: --- → FIXED
Target Milestone: --- → mozilla15
You need to log in before you can comment on or make changes to this bug.