Scott Guthrie - MIX07, Work, and Personal Details Revealed

DigitalDud wrote:You now need entirely new display drivers throwing out the old ones that have had years to stabalize
DigitalDud wrote:The problem I see with this compositing technology is it creates a large problem in order to solve a very small problem. You now need entirely new display drivers throwing out the old ones that have had years to stabilize, application compatibility takes a hit especially screen readers, and you need a complex and potentially unstable system to actually do the compositing. All of these problems just to fix the issue of rare drawing artifacts and add a bit of eye candy. It doesn't seem worth it.
Hopefully Microsoft has bigger plans for DWM 2.0 and something more intuitive than the infamous Flip 3D.
Jhaks wrote:
I wasn't sure what you meant by screen readers but I'm guessing you mean screen capturing software. The current screen capturing
DCMonkey wrote:The DWM makes window dragging look great, and the Glass and Flip3D are neat looking, but I'm really dissapointed with the quality of window redrawing while resizing a window, especially for windows with client area glass like Windows Media Player. Resizing WMP on my system leaves behind an ugly black ghost of the glass area at the bottom of the window trailing behind as it attempts to keep up with the window redraw. Frankly it looks much better with the old non-composited redraw behavior..
Is this going to get fixed anytime soon or in the next version of Windows?
Nitz Walsh wrote:
DCMonkey wrote: The DWM makes window dragging look great, and the Glass and Flip3D are neat looking, but I'm really dissapointed with the quality of window redrawing while resizing a window, especially for windows with client area glass like Windows Media Player. Resizing WMP on my system leaves behind an ugly black ghost of the glass area at the bottom of the window trailing behind as it attempts to keep up with the window redraw. Frankly it looks much better with the old non-composited redraw behavior..
Is this going to get fixed anytime soon or in the next version of Windows?
Completely agree. I was dissapointed that the contents weren't double-buffered as they are in OSX to avoid any kind of flickering, but it's really surprising how bad it looks - WMP11 is the biggest offender.
I would hope that this is a driver issue, but MS hasn't exactly paid that much attention to the niggling details like this in the past.
Hmmm... I'll stop blaming my graphics card drivers, then! Here I thought maybe I was the only one. But I do have a pretty fast machine overall, and even still, I agree--WMP looks quite bad when resizing. I've been telling people that Aero would get
rid of window-tearing... guess not! Maybe it is a problem with WMP itself, but I don't think anyone cares about whose "fault" it is--they just want to see the graphics drawn properly. The resizing in WMP is definitely not a good experience.
As for WPF apps in Vista, I thought Photo Gallery is one, but I'm not sure. I agree about Yahoo's new Vista-specific Messenger, though--that looks slick! And not just in an eye-candy sense--it really does add to the experience. It's a perfect WPF showcase
app... and it's rather sad that it didn't come from Microsoft. In fact, I think Nitz Walsh and I had this discussion about a year ago on Channel9--that Microsoft really needs to be the one driving the graphics ability present in the system, partly to set
the standard for others, partly to show faith in their own new technology, and partly to show what the system can do. Not to slag against Microsoft, but it is a bit disappointing to watch, in this example, Yahoo do what the Windows Live Messenger team should
have done first.
MarkPerris wrote:Having said that, it seems like a big oversight that there were no WPF apps shipping with Vista, and it could have made a lot of the initial reviews a lot more favourable for its Aero UI, especially when inevitably compared to Mac OS X's UI (to which i think everyone will agree, WPF is technically superior)
Having said that, they may have a few ready and waiting for the January 30th launch
Minh wrote:Can Rory not Sharon-Stone so much in the next videoThanks.
DCMonkey wrote:The DWM makes window dragging look great, and the Glass and Flip3D are neat looking, but I'm really dissapointed with the quality of window redrawing while resizing a window, especially for windows with client area glass like Windows Media Player. Resizing WMP on my system leaves behind an ugly black ghost of the glass area at the bottom of the window trailing behind as it attempts to keep up with the window redraw. Frankly it looks much better with the old non-composited redraw behavior..
Is this going to get fixed anytime soon or in the next version of Windows?
Sorry for coming to this thread so late after the interview. Rory promised me a "heads up" before it got posted, but I didn't end up seeing it until now.
I know some folks are asking for the source code for the demo that was shown, you can download it from
here. This sample was based on some code that was written for other demos we did internally, so if the part of code to extend glass into the window looks familiar, that is why.
There's been some lively discussion on this thread, so I'll take a moment to address some of the comments.
DigitalDud mentioned the need for new display drivers to do composition. I've talked about the benefits of composition in the past, but it's worth discussing the new driver model briefly. The new driver model is really a separate thing from Desktop Composition.
With the new driver model, the biggest change was moving a great deal of code out of kernel mode into user mode. There were meny motivations for this - including, but no limited to One motivation behind this was that video drivers are increasingly doing a great deal more language processing than they had in the past, due to new functionality like shader processing at the pixel level and for geometry. Moving this processing up into user mode means it's less likey that an application can cause the driver to crash in kernel mode - in other words, far fewer blue screens.
Desktop composition does take advantage of the new driver model, in that it enables better support for more than one application using the GPU simultaneously, sharing graphics memory, and managing graphics memory together.
DCMonkey asked about resize behavior. The biggest challenge with improving resize behavior is application compatibilty. For new apps, like those written in WPF, we had more latitude to change what happened in the application by default when you resize it. In WPF, you don't manage your DC or your DX surface directly - the framework does that for you. So we can make sure that the framework does something "DWM friendly". For existing Win32 applications, and even some Windows Forms applications, we need to make sure that we don't do things that change the expectations that applications already have. Some applications do processing on the resize loop by listening for and reacting to WM_SIZE messages. Sometimes those applications don't get that work done in less than 16ms (which would be required to do a resize at 60FPS assuming no system overhead). And of course, the system does have overhead so the applications don't really get their whole 16ms - what they get varies from system to system based on hardware.
There are a number of approaches that can be taken to keep these things in sync and looking smooth - one way to do it is to not update the window frame until the contents of the window have drawn. The downside to this, is that then the window updates will lag behind the mouse-pointer movement. Apple's OSX exhibits this behavior pretty commonly (at least Tiger does on the Mac Mini we have in the office). Another approach is to have the window frame track the mouse, and use a default brush to fill the new window area until the window gets around to repainting - that's what we do in Windows Vista.
If the application chooses to draw glitchy stuff in that resize loop, there's not a lot we can do. The one thing we can do is focus on making sure that the amount of processing that happens in DWM.exe during resize is minimal, and we spent a great deal of effort on that front.
There was some discussion of .NET 2.0 executable shipping in Windows Vista. It's true, there are none (to my knowledge). That doesn't mean that Microsoft isn't investing in great experiences built on the .NET framework. The Max project was probably our first major public endavour in building a great user experience on .NET. That project has closed now, but there are other things happening as well. There are the Expression tools, and there's also the new Windows Live for TV Beta, which is an extension to Media Center on Windows Vista that was built using the framework. I'm sure there are more things like this coming as well.
Thanks for all the great questions & comments on the interview. Its always fun to do these, and be able to participate in discussions like this! If y'all have more questions, I've cross-posted this note to my blog and I'm happy to take more questions there as well.
MarkPerry wrote:[quote]In fact, IIRC, Mac OS X was particularly bad at this, despite having beautifully smooth window dragging even on a GeForce 2.