Windows Vista Forums
Vista Forums Home Join Vista Forums Donate Vista Tutorials Tags

Welcome to Vista Forums we are your forum to discuss Windows Vista x64 and x86 systems. Whether you need help or just want to post an idea you have on Vista, this is the forum for you.
Register at Vista forums...the world biggest Windows Vista resource Join Vista Forums Now

Go Back   Vista Forums > Microsoft Technical Newsgroups > Avalon

Scroll performance (Avalon and Office 12)

Closed Thread
 
Thread Tools Display Modes
Old 01-31-2006   #1 (permalink)
lcantelmo@gmail.com
Guest


 

Scroll performance (Avalon and Office 12)

I'm trying to create a custom grid in an Avalon (a custom control, not
a custom panel) able to handle at least 10000 fields.
I'm hosting some panels (with some TextBlocks inside) in an
ItemsControl (each panel represents a row) using databinding to take
advantage of UI virtualization.

This is my best approach, but still I can't reach the Excel 12 scroll
performance.
I suspect that Office 12 don't uses WPF. Why doesn't it have a
reference to PresentationFramework*.dll?

Could somebody confirm me if Office 12 uses Avalon or tell me what must
I do to improve my scroll performance?

Thanks in advance.

Old 01-31-2006   #2 (permalink)
Jason Dolinger
Guest


 

Re: Scroll performance (Avalon and Office 12)

lcantelmo@gmail.com wrote:
> I'm trying to create a custom grid in an Avalon (a custom control, not
> a custom panel) able to handle at least 10000 fields.
> I'm hosting some panels (with some TextBlocks inside) in an
> ItemsControl (each panel represents a row) using databinding to take
> advantage of UI virtualization.
>
> This is my best approach, but still I can't reach the Excel 12 scroll
> performance.
> I suspect that Office 12 don't uses WPF. Why doesn't it have a
> reference to PresentationFramework*.dll?
>
> Could somebody confirm me if Office 12 uses Avalon or tell me what must
> I do to improve my scroll performance?
>
> Thanks in advance.
>


Hey there, I'm trying to do something very similar to you and have run
into frustration with the drawing performance of all of the TextBlocks.
It turns out that WPF is never going to have quite the text rendering
performance that was specified to us until DirectX 10 is available with
Windows Vista.

You may want to take a look at this: http://blog.lab49.com/?p=203
There's a link in there to a ppt that may help to explain some of what's
going on underneath the hood in Avalon.

Another thing is to ensure that you are at least taking some advantage
of the hardware acceleration benefits on your machine. Check out
http://216.55.183.63/pdc2005/slides/..._Stevenson.ppt
There's a description of the RenderCapability class which is a WPF API
which will let you ascertain how the WPF runtime is viewing your
graphics hardware (Tier 0, Tier 1 or Tier 2). You can stick that in
your running code to see what you have. When I first tried that, WPF
said that I had a Tier 0 which means that WPF will do all of it's
graphics rendering in software. I have an ATI Radeon 9200 which I know
was better than DX7 and has 128B video memory. So that was a signal to
me to upgrade my video drivers, and with another run I was up to Tier 1
which supports basic hardware rendering.

You can test this with the Perforator tool that comes with the Windows
SDK. At runtime, it'll highlight in purple which pieces of your app are
rendering in software and which are in hardware. In my own app, I saw
it highlight in purple when I was Tier 0, which disappeared when I went
to Tier 1 (however that didn't help my performance problems, but I'm
trying to update the data source very frequently, like 4x/sec).

Anyway, you may want to investigate some of these things. Good luck.

Jason
Old 01-31-2006   #3 (permalink)
Michael Latta
Guest


 

Re: Scroll performance (Avalon and Office 12)

If you want to compare to Excel you are going to need to have a virtual
control, that only attempts to draw the part of the grid that is visible.
Right now that means creating your own grid control since Grid is not
virtual. If you know they are all the same size you can use UniformGrid
that should be faster than Grid (since it does not do spanning and variable
height rows, and such).

Michael (C#/WPF MVP)
http://spaces.msn.com/members/michaellatta

"Jason Dolinger" <jdolinger@lab49.com> wrote in message
news:O2cH2b6GGHA.312@TK2MSFTNGP09.phx.gbl...
> lcantelmo@gmail.com wrote:
>> I'm trying to create a custom grid in an Avalon (a custom control, not
>> a custom panel) able to handle at least 10000 fields.
>> I'm hosting some panels (with some TextBlocks inside) in an
>> ItemsControl (each panel represents a row) using databinding to take
>> advantage of UI virtualization.
>>
>> This is my best approach, but still I can't reach the Excel 12 scroll
>> performance.
>> I suspect that Office 12 don't uses WPF. Why doesn't it have a
>> reference to PresentationFramework*.dll?
>>
>> Could somebody confirm me if Office 12 uses Avalon or tell me what must
>> I do to improve my scroll performance?
>>
>> Thanks in advance.
>>

>
> Hey there, I'm trying to do something very similar to you and have run
> into frustration with the drawing performance of all of the TextBlocks. It
> turns out that WPF is never going to have quite the text rendering
> performance that was specified to us until DirectX 10 is available with
> Windows Vista.
>
> You may want to take a look at this: http://blog.lab49.com/?p=203
> There's a link in there to a ppt that may help to explain some of what's
> going on underneath the hood in Avalon.
>
> Another thing is to ensure that you are at least taking some advantage of
> the hardware acceleration benefits on your machine. Check out
> http://216.55.183.63/pdc2005/slides/..._Stevenson.ppt
> There's a description of the RenderCapability class which is a WPF API
> which will let you ascertain how the WPF runtime is viewing your graphics
> hardware (Tier 0, Tier 1 or Tier 2). You can stick that in your running
> code to see what you have. When I first tried that, WPF said that I had a
> Tier 0 which means that WPF will do all of it's graphics rendering in
> software. I have an ATI Radeon 9200 which I know was better than DX7 and
> has 128B video memory. So that was a signal to me to upgrade my video
> drivers, and with another run I was up to Tier 1 which supports basic
> hardware rendering.
>
> You can test this with the Perforator tool that comes with the Windows
> SDK. At runtime, it'll highlight in purple which pieces of your app are
> rendering in software and which are in hardware. In my own app, I saw it
> highlight in purple when I was Tier 0, which disappeared when I went to
> Tier 1 (however that didn't help my performance problems, but I'm trying
> to update the data source very frequently, like 4x/sec).
>
> Anyway, you may want to investigate some of these things. Good luck.
>
> Jason



Old 01-31-2006   #4 (permalink)
lcantelmo@gmail.com
Guest


 

Re: Scroll performance (Avalon and Office 12)

Ok, thanks for your response.

I'm using databinding (setting the ItemsSource property) in my
ItemsControl, and defining a ControlTemplate to use
VirtualizingStackPanel inside a ScrollViewer.

I'm sure that virtualization is working because the application load
time and memory usage is lower than using the default StackPanel, the
performance has even improved, but not enough.

I don't know if this is because WPF is in beta or if there is another
thing.
I'm trying to reduce the amount of elements that conforms the
VisualTree but I can't remove more things.

I think that virtualization is the right way to do it, but I can't
reach the performance that I need.

Old 01-31-2006   #5 (permalink)
RyanLeeSchneider
Guest


 

Re: Scroll performance (Avalon and Office 12)


My understanding is that O12 is NOT using WPF, since it's all native C++ and
there are no native interfaces for WPF at this time.

Instead, I believe O12 is rolling their own WPF-like UI from the ground up.
I don't have a link but I vaguely remember there being a Channel9 video where
they talk about this.

Ryan

"lcantelmo@gmail.com" wrote:

> Ok, thanks for your response.
>
> I'm using databinding (setting the ItemsSource property) in my
> ItemsControl, and defining a ControlTemplate to use
> VirtualizingStackPanel inside a ScrollViewer.
>
> I'm sure that virtualization is working because the application load
> time and memory usage is lower than using the default StackPanel, the
> performance has even improved, but not enough.
>
> I don't know if this is because WPF is in beta or if there is another
> thing.
> I'm trying to reduce the amount of elements that conforms the
> VisualTree but I can't remove more things.
>
> I think that virtualization is the right way to do it, but I can't
> reach the performance that I need.
>
>

Old 01-31-2006   #6 (permalink)
lcantelmo@gmail.com
Guest


 

Re: Scroll performance (Avalon and Office 12)

It's Office 12 going to use WPF?

Old 01-31-2006   #7 (permalink)
Keith Patrick
Guest


 

Re: Scroll performance (Avalon and Office 12)

> Instead, I believe O12 is rolling their own WPF-like UI from the ground
> up.
> I don't have a link but I vaguely remember there being a Channel9 video
> where
> they talk about this.



Yup, certainly sounds like Office to me I have a suspicion the RTM
version of Office will come out with Vista RTM but look like Vista circa
5270 but with crazy repaint issues.


Closed Thread

Thread Tools
Display Modes


Similar Threads
Thread Thread Starter Forum Replies Last Post
Scroll wheel on mouse doesnt scroll page Luke Vista installation & setup 3 01-15-2008 07:46 PM
System requirements for Avalon!? Jochen Kalmbach [MVP] Avalon 2 09-03-2006 01:36 AM
3D Controls for Avalon WSJ Avalon 2 03-13-2006 10:22 PM
3d sphere in avalon Avalon 1 01-10-2006 03:53 PM








Vistax64.com is an independent web site and has not been authorized,
sponsored, or otherwise approved by Microsoft Corporation.
"Windows Vista", the Start Orb, and related materials are trademarks of Microsoft Corp.
© Designer Media 2005-2008

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50