Archive: avs theater mode overlay on radeon


18th January 2007 17:12 UTC

avs theater mode overlay on radeon
I've searched the forums and found numerous posts who have unsuccessfully tried to get AVS to work with overlays on a radeon-based card with a dual-head setup:

http://forums.winamp.com/showthread....hreadid=216240
http://forums.winamp.com/showthread....hreadid=206321
http://forums.winamp.com/showthread....hreadid=121120
http://forums.winamp.com/showthread....hreadid=180375
http://forums.winamp.com/showthread....hreadid=178070
http://forums.winamp.com/showthread....hreadid=163320
http://forums.winamp.com/showthread....hreadid=136640
http://forums.winamp.com/showthread....threadid=95869

I found one case where overlay is working:

http://forums.winamp.com/showthread....hreadid=206905

but I can't duplicate the results and I don't see a "scale to fullscreen" option anywhere in the ATI control center.

I was able to get the overlay mode to work on a secondary monitor using an nvidia-based card.

On the radeon, I did the following:

- plugged in and enabled the second monitor
- set the secondary monitor to clone mode (display properties... settings.. advanced.. displays... then click on the blue icon with the two rectangles)
- enable theater mode (display properties... settings.. advanced.. overlay)
- do not extend the desktop onto the secondary monitor
- enabled overlay mode in winamp (right-click on the vis screen, enter the avs editor, then settings... display, click on overlay)

On the older (6.x) radeon drivers I got a green line at the bottom of the screen. On the newer (8.x) drivers I just got a green screen. Video playback using the overlay works fine (both in windows media player and winamp).

I've seen this problem before when I was hacking fceu to use overlays; my trident-based card didn't support RGB overlays, so I had to convert to YUV4 myself. I suspect this may be the problem here, too, though since the code is closed-source, I can't know.

Has anyone been successful in getting overlay mode to work in theater mode on an ati card? Anything else I can try that hasn't been suggested in the above posts?

Thanks,

Paul


18th January 2007 18:18 UTC

Thanks for taking the effort to search the forums :up:

Overlay mode only works (if it even does) on your primary screen, no matter what kind of graphics card you use. Even cloning doesn't work (unless you use a Y-cable but you don't want that).

I'd wish it were different but it isn't

You could do the following though (but you probably read that elsewhere too):
> Drag everything from your primary screen to your secondary
> Use overlay mode on your primary monitor
> Make the AVS window a bit bigger than 1024x768 and enable pixel doubling.
> Change the resoltion of your 2nd screen to 1024x768
> Drag the AVS window so that the AVS borders aren't visible anymore.

.. or use other resolutions but don't go too high because it kills the render time.

[edit]
by the way, AVS is open source.
the latest: here


19th January 2007 13:07 UTC

Originally posted by Warrior of the Light
Thanks for taking the effort to search the forums :up:

Overlay mode only works (if it even does) on your primary screen, no matter what kind of graphics card you use.

I'd wish it were different but it isn't

You can configure which monitor recieves the overlay in the control panel somewhere.

For the record I never had problems using overlay on any ATI card. This covers a 7500, 8500, 9000 pro, 9200, 9500 pro and 9700 pro. Although I havent used any of these cards for a couple of years now...

Anyway, my solution was to thoroughly examine the control panel..

I had it working on both a second monitor and tv. I ran into no issues I couldn't solve by examining the interface more thoroughly.

Hope this helps.

19th January 2007 15:59 UTC

oh sorry for giving false information in that case.
I never knew that.


19th January 2007 20:30 UTC

I updated my AVS to add a slider to the overlay box that chooses which screen the overlay appears on. If this has any interest to someone, I could post the new DLL. I'd have to check if I still have the source code available though--I've also been rewriting the expression compiler to produce more optimized code. It works with some presets now, but still crashes with others, so ... not ready for prime time.


20th January 2007 10:42 UTC

And in reply to my own post, I'll clarify: The DLL that just has the overlay addition without the bleeding-edge crashing compiler is available. I suppose the source for that is too, if you dump the nseel part out of it and stay with the current published code...


22nd January 2007 13:02 UTC

I wonder if there is some standalone tool to set which screen the overlay appears on... that would be useful for all these people who can't find the settings themselves.


22nd January 2007 20:46 UTC

hmm could you email that new dll (or rapidshare.com it)? [expellidilition [at] gmail [dot] com]


23rd January 2007 11:19 UTC

Originally posted by jheriko
I wonder if there is some standalone tool to set which screen the overlay appears on... that would be useful for all these people who can't find the settings themselves.
Yeah that would be nice. But from modifying the code it looks like DirectX doesn't have any such provision. Some graphics cards might, but I couldn't name one.

You choose your overlay device by first asking for an enumerated list. This has the "default" and an additional for each monitor connected to your computer. The "default" spans all of the desktop space, but turns off hardware acceleration if the overlay covers two or more of them.

Anyway, once you choose your display you still have to set up the correct coordinates for it. The old code always put windows at 0,0 and spanned them to the dimensions of the primary display. For multiple monitors, the overlay area must be moved to the coordinates of the display you choose and sized to that one. So that's the difficulty with multimon :(

23rd January 2007 13:07 UTC

Originally posted by 0verhaul
Yeah that would be nice. But from modifying the code it looks like DirectX doesn't have any such provision.
DirectX handling of most screen settings is terrible. Anyway, it has nothing to do with DirectX and everything to do with the Windows API. It can be done, I just havent done it since every driver I have ever used with multiple monitors has had every feature I needed.

25th January 2007 07:39 UTC

Originally posted by jheriko
DirectX handling of most screen settings is terrible. Anyway, it has nothing to do with DirectX and everything to do with the Windows API. It can be done, I just havent done it since every driver I have ever used with multiple monitors has had every feature I needed.
I call your attention to the line that begins full-screen overlays:
if ((result = DirectDrawCreate(g_Displays[cfg_display_num].guid,&g_lpDD,NULL)) != DD_OK)

The first parameter tells which display to place the overlay on. The overlay can only appear on that display--it gets clipped if you try to move it off. So whether you like DX or not, that's what AVS uses for full-screen.

Even with hardware overlays in a window that can be dragged around, you have problems because the program (AVS in this case) needs to detect when it moves to another screen, destroy its DirectDraw, and create a new one for that screen. Otherwise you just get a window the color of the chosen mask.