DrawDots is too slow at ATI HD4550

We have some new Dell desptops with ATI Radeon HD 4550 graphics cards. It is strange that the DotDemo runs very slowly.

Windows 7 Enterprise
Matlab 2010b
Latest PTB

What slows it down is DrawDots subfunction. It takes about 180 ms with dot type of 1, at resolution of 1920*1080 at 60Hz. If I change dot type to 0, it is very fast. If I reduce resolution to 1280*1024, the speed is right. Updating graphics driver won't help, but made it even worse.

This is not an experiment setup. I did not expect super performance. But I did not expect such a slow performance :)

Any idea? Thanks.

Xiangrui
--- In psychtoolbox@yahoogroups.com, "xrli2002" <xrli@...> wrote:
>
> We have some new Dell desptops with ATI Radeon HD 4550 graphics cards. It is strange that the DotDemo runs very slowly.
>
> Windows 7 Enterprise
> Matlab 2010b
> Latest PTB
>
> What slows it down is DrawDots subfunction. It takes about 180 ms with dot type of 1, at resolution of 1920*1080 at 60Hz. If I change dot type to 0, it is very fast. If I reduce resolution to 1280*1024, the speed is right. Updating graphics driver won't help, but made it even worse.
>
> This is not an experiment setup. I did not expect super performance. But I did not expect such a slow performance :)
>

Nobody expects the spanish inquisition, neither does one expect driver bugs. But it's almost certainly a driver bug. You could theoretically write a bug report about rendering of GL_POINTS with GL_POINT_SMOOTH enabled being way too slow at certain settings (does it happen at all point sizes? Different resolutions etc.?). In practice this is an important feature for pro graphics cards like FireGL/FirePro, and almost irrelevant to consumer cards like the Radeon series, so probably nobody at AMD will care unless the same bug is on the pro cards.

You could use the ScreenDrawDots() command as a workaround if you must use that card for dot rendering. Or try different drivers and see if one behaves better.

good luck,
-mario

> Any idea? Thanks.
>
> Xiangrui
>
The problem happens only at higher resolution, only for dot type 1, and for variable dot size. ScreenDrawDots shows the same problem. The problem also exits at Windows XP. It should be a driver bug.

So people should keep in mind that this kind of card is not good for experiments :)

Xiangrui


--- In psychtoolbox@yahoogroups.com, "Mario" <mario.kleiner@...> wrote:
>
>
>
> --- In psychtoolbox@yahoogroups.com, "xrli2002" <xrli@> wrote:
> >
> > We have some new Dell desptops with ATI Radeon HD 4550 graphics cards. It is strange that the DotDemo runs very slowly.
> >
> > Windows 7 Enterprise
> > Matlab 2010b
> > Latest PTB
> >
> > What slows it down is DrawDots subfunction. It takes about 180 ms with dot type of 1, at resolution of 1920*1080 at 60Hz. If I change dot type to 0, it is very fast. If I reduce resolution to 1280*1024, the speed is right. Updating graphics driver won't help, but made it even worse.
> >
> > This is not an experiment setup. I did not expect super performance. But I did not expect such a slow performance :)
> >
>
> Nobody expects the spanish inquisition, neither does one expect driver bugs. But it's almost certainly a driver bug. You could theoretically write a bug report about rendering of GL_POINTS with GL_POINT_SMOOTH enabled being way too slow at certain settings (does it happen at all point sizes? Different resolutions etc.?). In practice this is an important feature for pro graphics cards like FireGL/FirePro, and almost irrelevant to consumer cards like the Radeon series, so probably nobody at AMD will care unless the same bug is on the pro cards.
>
> You could use the ScreenDrawDots() command as a workaround if you must use that card for dot rendering. Or try different drivers and see if one behaves better.
>
> good luck,
> -mario
>
> > Any idea? Thanks.
> >
> > Xiangrui
> >
>
--- In psychtoolbox@yahoogroups.com, "xrli2002" <xrli@...> wrote:
>
> The problem happens only at higher resolution, only for dot type 1, and for variable dot > size.

Changing the dot size is the most expensive operation in any case. Probably they "lost" some optimizations in that area of the driver due to some unrelated changes/bugs.

One way to try to speed it up would be to group drawing of dots together by dotsize. E.g., if you have to draw dots of size 3 and size 10, first draw all size 3 dots, then all size 10 dots. This is always a wortwhile thing to do, even on properly working hardware, because the driver can optimize more if primitives with similar properties are grouped together.

> ScreenDrawDots shows the same problem.

Probably because you also need to enable (call ScreenDrawDots(1) from the console) the workaround, otherwise ScreenDrawDots -> Screen('DrawDots') and you get the same behaviour.

The problem also exits at Windows XP. It should be a driver bug.
>
> So people should keep in mind that this kind of card is not good for experiments :)
>

At least not for experiments with large numbers of dots of variable size on Windows with the current graphics driver version. The most simple way to get it fixed is if someone has a FireGL/FirePro card equivalent to the HD-4000 and can reproduce the same performance problem and then call his customer support person to complain about it. If they fix it for FireXX series, the bugfix will likely also land in the RadeonHD series, as large parts of the codebase are shared between the pro and consumer products.

-mario

> Xiangrui
>
>
> --- In psychtoolbox@yahoogroups.com, "Mario" <mario.kleiner@> wrote:
> >
> >
> >
> > --- In psychtoolbox@yahoogroups.com, "xrli2002" <xrli@> wrote:
> > >
> > > We have some new Dell desptops with ATI Radeon HD 4550 graphics cards. It is strange that the DotDemo runs very slowly.
> > >
> > > Windows 7 Enterprise
> > > Matlab 2010b
> > > Latest PTB
> > >
> > > What slows it down is DrawDots subfunction. It takes about 180 ms with dot type of 1, at resolution of 1920*1080 at 60Hz. If I change dot type to 0, it is very fast. If I reduce resolution to 1280*1024, the speed is right. Updating graphics driver won't help, but made it even worse.
> > >
> > > This is not an experiment setup. I did not expect super performance. But I did not expect such a slow performance :)
> > >
> >
> > Nobody expects the spanish inquisition, neither does one expect driver bugs. But it's almost certainly a driver bug. You could theoretically write a bug report about rendering of GL_POINTS with GL_POINT_SMOOTH enabled being way too slow at certain settings (does it happen at all point sizes? Different resolutions etc.?). In practice this is an important feature for pro graphics cards like FireGL/FirePro, and almost irrelevant to consumer cards like the Radeon series, so probably nobody at AMD will care unless the same bug is on the pro cards.
> >
> > You could use the ScreenDrawDots() command as a workaround if you must use that card for dot rendering. Or try different drivers and see if one behaves better.
> >
> > good luck,
> > -mario
> >
> > > Any idea? Thanks.
> > >
> > > Xiangrui
> > >
> >
>