If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.
I'm not sure what is driver-specific about my approach. Do you mean the "Screen 0" and "Screen 1" entries in the config? That's pretty standard, isn't it? It's in the xorg.conf man page.
Matching the outputs based on the monitor identifier. Lots of people have legacy configs with no monitor sections or sections called "Monitor1" or whatever. The existing code works for a lot of people without requiring them to add or rename monitor sections in their config.
My patch doesn't change that. You're right, there is only one entity but each additional device instance creates a new "entity instance". This happens in xf86AddDevToEntity of xf86Bus.c. Each screen needs to have a pointer back to its device's entity instance, hence the xf86SetEntityInstanceForScreen function. Currently Screen1 is pointing to Screen0's instance so when it comes to match up the screen sections with the detected screens, Screen0 gets chosen in both cases.
I think that's by design to avoid passing incompatible options to each instance of the driver, but it's been a while since I dug into that code.
I get normal screen with desktop on the left monitor and black screen on the right. If I drag the mouse pointer from the left screen to the right it appears as X sign and would not go back to left screen. Even though the right screen is black and has no desktop I can still start programs in it from console in left screen. I can now put the script job in cron to start picture sideshow on left monitor and another picture sideshow with different set of pictures on right monitor.
Make sure you are using xf86-video-ati 6.13.0 or newer. Also, kms would be a better bet than ums. The mouse issue is probably an xserver issue rather than a driver issue. You might want to try a newer xserver depending on what you currently have.