mozilla :: #gfx

16 May 2017
02:45pulsebotCheck-in: - Ethan Lin - Bug 1364830 - Fix background image layer's draw result and image flags. r=mattwoodrow
05:19pulsebotCheck-in: - sotaro - Bug 1364302 - Fix HoldExternalImage() handling r=nical
11:18pulsebotCheck-in: - Andrew Osmond - Bug 1365009 - Only discard images and compositor animations if GPU process is still available. r=sotaro
14:24kvarkhas anyone on windows seen ?
14:25nicalfloat does not match float
14:25nicalbut, but....
14:29nicalkvark: about the windows impl of font_key_from_name, not sure what you mean
14:29kvarknical: so, we have cfg(windows) and cfg(not(windows)). You change the one, but leave the other one
14:30nicalwe have cfg(windows) and cfg(linux or mac) kinda
14:30pulsebotCheck-in: - 180 changesets - Merge m-c to graphics
14:31nicalJeff actually wrote this, not sure if there was a reason vs going from "not windows" to "linux or mac" but that sounds identical for me
14:31nicalhaven't fiddled with cfg in rust much so I may be missing something
14:31nicalvs -> for
14:38kvarknical: I think these are supposed to be exclusive. E.g. isn't Android lose the coverage by these functions now?
14:55nicalkvark: true that
14:56nicalI guess I didn't expect android to be supported but on secodn thought being able to have some sort of remote control over wrench running on an android device would be neat
15:21Gankrokats: I assume my changes have landed in gfx tip now?
15:38katsGankro: the bincode changes? yeah
16:50gerard-majaxnical, ping
16:50gerard-majaxnical, I got some kind of weird lockup behavior that might relates to rendering
16:51nicalgerard-majax: pong did you grab a profile by any chance ?
16:51gerard-majaxnical, visible part of the tabs were rendered and nothing would get rendered more
16:51gerard-majaxnothing in content
16:52gerard-majaxno explicit error in stdout, and unable to get profile
16:52gerard-majaxit's not the first time I ran into that in the past days
16:52gerard-majaxlast time was like 3-4 days ago
16:53Jerry_IRCCloudstandups: 5/16 1) rebase for bug 1362049 and bug 1364922. 2) bug triage
16:53firebot ASSIGNED, hshih [WR] handle the multiple-channel MacIOSurface for video playback
16:53firebot ASSIGNED, hshih [WR] handle the multiple-channel image format
16:54gerard-majaxnical, any good hint on how to collect infos next time?
16:54nicalgerard-majax: if you can file a bug with as much detail as you can it'd be nice
16:55gerard-majaxnical, okay, I'll wait for the next iteration then, I have nothing, I did not took a screenshot :)
16:59nicalif there are glitches, screenshots are nice, if there's a performance issue cleopatra profiles are always helpful
17:00nicalthe gfx critical error section in about:support is also useful
17:00nical(if you are in a state where you can see it)
17:00gerard-majaxI could not get any new page rendered so about:support would be hard :)
17:01gerard-majaxnical, it was really like there was some kind of deadlock somehwere
17:01nicalah, if it looks like a deadlock, if you can connect to the process with gdb and get the stack trace it's super helpful
17:01nical"thread all apply bt" in gdb
17:02gerard-majaxnical, when I shot the main process, I got that:
17:02gerard-majaxnot sure if there is anything actually useful there though
17:03nicalnothing unusual after you kill the process
17:04daoshengmustandups: Trying to replace std::map with nsHashTable to make sure if it could improve the performance on WebGLBuffer::ValidateIndexedFetch, Bug 1363433 .
17:04firebot NEW, Improve the performance of WebGLBuffer::ValidateIndexedFetch
18:59jfkthamejrmuizel: ping re bug 1364224, if you have a chance to look at it again sometime... thx
18:59firebot ASSIGNED, Too much refcount churn on gfxFont instances
18:59jrmuizelyeah, I'll look again today
18:59jrmuizeljfkthame: sorry about some of the review lag
19:00jfkthamejrmuizel: it's ok, i know when you're busy with stuff it can be hard to context-switch
19:00lsalzmanjfkthame: that is horrifying
19:01jfkthamelsalzman: what, context-switching? :)
19:01lsalzmanno, the refcounts
19:01lsalzmani guess we can call this the QuantumRef project
19:01jfkthameyeah, i was horrified too
19:02jfkthamethough i suspect we won't actually see any macro-level measurements shift, it'll be lost in the noise
19:03jfkthamebut that's just because our perf tests are rather noisy
19:04lsalzmanpiddly little bit of awful in a sea of awful
19:34pulsebotCheck-in: - Jeff Muizelaar - Bug 1364241. Handle empty transactions by keeping around the blob data. r=mchang
19:50jrmuizelmchang: ping
19:53mchangjrmuizel: pong
19:57jrmuizelmchang: what's the status of the luminance stuff?
19:59mchangjrmuizel: i tried bas' suggesstion and its still not working
19:59jrmuizelmchang: what was the bug number?
20:00firebotBug 1359527 NEW, NYTimes SVG can take 30ms to render
20:00jrmuizelmchang: I was thinking, there's probably no need to draw to a temporary surface
20:00jrmuizelWe can just have a SourceSurface that wraps an image that does the luminance filtering
20:02mchangjrmuizel: so the source surface can just be the output of the luminance effect? carry the effect around in the surface
20:02jrmuizelmchang: yeah
20:02mchangjrmuizel: that might work. I'd mostly like to figure out why this isn't working with this luminance effect
20:02jrmuizelmchang: when will you do it?
20:03jrmuizelmchang: also what are the OMTP plans?
20:03mchangjrmuizel: i'd like to do it once I figure out this luminance thing. I was going to plumb in something like this outside of gecko and run it through with d2d debugging to see if im missing something stupid
20:04mstangemchang: I think we looked at jrmuizel's idea of dropping the intermediate surface when you were in Toronto
20:04mstangeand found out that the D2D API wants a Bitmap, so we can't give it an Effect
20:04mchangjrmuizel: working with dvander, I think it's going to be mostly redoing Jerry's work with a few tweaks. Same with the font stuff
20:05mchangi was going to write a document with information
20:05jrmuizelmchang: please
20:05mchangmstange: yeah but right now im trying to render the effect to a temporary bitmap and thats not working too
20:05mstangemchang: ok, let's try to make that work first
20:06mchangindeed, d2d doesn't make sense
20:07mchangjrmuizel: is this a super high priority right now?
20:07mchangor is it blocking you
20:08jrmuizelmchang: well we need some kind of luminance solution so that we can get rid of painting on both sides
20:08jrmuizelmchang: can you briefly remind me of Jerry's work?
20:09mchangjrmuizel: also recording via DrawTargetRecording. His big thing was what to do with the IPC calls. We're probably going to forward them from main thread -> paint thread -> compositor
20:09mchangto keep ordering the same
20:10dvanderright, we'd just move the forward transaction call
20:10mchangjrmuizel: dvander was going to look into maybe unhooking some of the PTexture things also, but I'm fuzzy on what exactly that was
20:10dvander(in theory)
20:10jrmuizelthat makes sense
20:11mchangjrmuizel: we'd piggy back on yours and lsalzman work for off main thread fonts + stop playing back while reecording too
20:11jrmuizelof course
20:30Gankrokats: I want to add a new pref to basically "make gecko use webrender maximally" in thebes -- gfxPrefs::OverrideBase_WebRendest(). I have been told to consult with you about doing such a thing
20:31katsGankro: ok, so you'll want to modify gfxPrefs.h so that all the advanced layers prefs are override prefs
20:31Gankrokats: should I make the core webrender pref derive from that one as well?
20:31katsGankro: if by "core webrender pref" you mean gfx.webrender.enabled, then no
20:32katsGankro: that one shouldn't even be in the gfxPrefs.h list
20:32GankroWhy not?
20:32katsbecause it's not a thing people should be using. just because the pref is enabled doesn't mean webrender is enabled. there are other conditions involved
20:33katsif you need to know if webrender is enabled you can use gfxVars
20:34Gankrokats: how do I identify webrender-based prefs? A bunch of them are just like "layers.advanced.outline-layers"
20:34katsGankro: i believe those are the ones you want
20:34katsGankro: all the layers.advanced.* prefs
20:35katsunless i misunderstood the conversation about what it means to "use webrender maximally"
20:35Gankrokats: I honestly don't know myself. Just want to profile webrender in gecko, and I know the default has some stuff off
20:36katsGankro: well we can start with all the advanced layers
20:36katswe can hook up more stuff later if we discover it's needed
20:37katsGankro: so the implementation of the OverrideBase_WebRenderest() function should be the same as the OverrideBase_WebRender() function but with an extra && gfxPrefs::WebRenderMaximal() or some such, where that is hooked up to your new pref
20:38katsand then the other thing you'll need to do is change any existing references to those advanced-layers prefs because now they'll be integer prefs instead of bool prefs. so the prefs file in modules/libpref/init/all.js might need updating, as well as any reftest.list files in the tree that reference the prefs
20:38katsyou can use dxr/searchfox to find the references
20:39katsGankro: i don't recall if you started before or after i sent this email:!topic/ but it has some more context in case you need it
20:50Gankrokats: why is the UseWebRender variable declared seperately in gfxVars.h?
20:50katsGankro: separately from what?
20:51Gankrokats: from gfxPrefs
20:51katsGankro: there are a bunch of conditions that go into determining if webrender is enabled at runtime. the pref is just one of those conditions. See
20:53katsGankro: if we listed the pref in gfxPrefs.h then people might use it on the assumption that pref enabled means webrender enabled. which is not necessarily the case.
20:55Gankrokats: ok but I shouldn't do this for the new pref, it should be a normal one?
21:01katsGankro: right, the new pref should be a normal pref
21:01katsjust make sure to only use it in combination with gfxVars::UseWebRender
21:01Gankrokats: and the system is smart enough to re-eval all prefs when any is updated?
21:02katsGankro: for the override prefs it will call the function if the underlying pref has a value of 2. so yes, it should do what you want
21:05mconleyBas: not sure if you're still around, but is this the sleep(0) that bug 1355416 refers to?:
21:05firebot ASSIGNED, Long composition times with Google blog on Windows coming from GetDeviceRemovedReason
21:33dvandermiko: ping
21:35mikodvander: yup?
21:35dvandermiko: hey, i vaguely recall in toronto we looked at nojs on windows and it was mostly broken, due to an invalidation bug
21:36dvanderdo you remember what that bug was?
21:36dvanderand why it doesn't happen on mac?
21:36firebotBug 1345891 NEW, threejs CSS3D panorama has graphical issues
21:37mikoIt happens on Mac, but it's less noticeable since OGL re-renders the whole page, Windows just a portion
21:38dvandermiko: ah I see. would it make sense to just switch to SafeUnion in LTI, and if it fails, invalidate the entire visible bounds?
21:39mikoOh right, and also overflow behavior between compilers was one factor too
21:39dvanderhow so?
21:42Gankrokats-away: I think I messed up the r? in my commit message so... r?
21:42firebotBug 1365418 UNCONFIRMED, Properly expose webrender feature flags, and add a convenience toggle that turns them all on
21:47mikodvander: Actually I probably remember something wrong
21:47mikoSo nevermind :P
22:24dvandermilan: the gpu process in software mode patch looks good on my latest try run, with the video change added. ill try to land both as soon as m-i reopens
23:53Basmconley: It is indeed.
17 May 2017
No messages
Last message: 8 days and 14 hours ago