English Amiga Board


Go Back   English Amiga Board > Support > support.WinUAE

 
 
Thread Tools
Old 19 December 2011, 16:12   #61
rsn8887
Registered User
rsn8887's Avatar
 
Join Date: Oct 2006
Location: USA
Posts: 863
First impression:

Wow! It looks like stuttering is (almost) fixed! I did get three very small glitches (like one frame lost/flickering) in slamtilt, during 3 minutes play, but it went back to smooth immediately after each glitch, instead of continuing to stuttering forever!

However, the screen tearing (unnoticeable in Slamtilt, but instantly noticeable on top of screen in Vision Megademo) is still there. In the loading and decrunching part, the first maybe 20 pixels of the top scroller show tearing. In the different parts of the demo, the tearing involves more or less pixels of the top of the screen. For example, in the part with the digitized faces on top, the tearing involves the top part of the big scroller, which is closer to the center of the screen. I didn't notice any of the glitching described above that I see in Slamtilt, apart from maybe the first part of the demo, after the first press space, where I think I saw some of that glitching (stuttering of one frame every once in a while).

Sitll testing 100 Hz Behringer Audio ASIO. Will have to test 60 Hz later. Triple buffering display mode still works perfectly!

I hope this helps.
rsn8887 is offline  
Old 19 December 2011, 18:19   #62
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 44
Posts: 22,995
Quote:
Originally Posted by Ian View Post
Understood.

How about changing the text of the button to "use built in CDFS" or something like that?

If you are planning to remove using CDs as windows drives it won't cause to much harm in the long run?
I'll think about it...

Quote:
Originally Posted by rsn8887 View Post
First impression:

Wow! It looks like stuttering is (almost) fixed! I did get three very small glitches (like one frame lost/flickering) in slamtilt, during 3 minutes play, but it went back to smooth immediately after each glitch, instead of continuing to stuttering forever!

However, the screen tearing (unnoticeable in Slamtilt, but instantly noticeable on top of screen in Vision Megademo) is still there. In the loading and decrunching part, the first maybe 20 pixels of the top scroller show tearing. In the different parts of the demo, the tearing involves more or less pixels of the top of the screen. For example, in the part with the digitized faces on top, the tearing involves the top part of the big scroller, which is closer to the center of the screen. I didn't notice any of the glitching described above that I see in Slamtilt, apart from maybe the first part of the demo, after the first press space, where I think I saw some of that glitching (stuttering of one frame every once in a while).

Sitll testing 100 Hz Behringer Audio ASIO. Will have to test 60 Hz later. Triple buffering display mode still works perfectly!

I hope this helps.
Great! Getting there slowly but surely..

Tearing always happens if page flip gets delayed, unless it is buffered mode. I may be able to fix it in double buffered mode but no buffer simply requires very exact timing and may never work with all PCs..

I have an idea that may allow fastest possible/JIT vsync without secondary polling thread.. Testing needed..

Maybe it is also time to get rid of old vsync completely (if above works), low latency + triple buffer equals old vsync latency and it also works much better (normal vsync + jit = huge slowdown in emulated CPU speed)
Toni Wilen is offline  
Old 19 December 2011, 18:40   #63
Mequa
Registered User
 
Join Date: Nov 2009
Location: UK
Posts: 497
Amazing progress Toni! This would be VERY useful for running e.g. AMOS with AROS-68k ROM (JIT + fastest possible gives by far the best performance with that combo) with smooth scrolling...

Quote:
Originally Posted by Toni Wilen View Post
Maybe it is also time to get rid of old vsync completely (if above works)
Would you mind keeping it as an option (only perhaps less prominent)? For one thing, the old vsync doesn't crash Wine the same way the new one appears to.

Last edited by Mequa; 19 December 2011 at 19:23.
Mequa is offline  
Old 19 December 2011, 19:48   #64
FrodeSolheim
FS-UAE Developer

FrodeSolheim's Avatar
 
Join Date: Dec 2011
Location: Førde, Norway
Age: 38
Posts: 3,545
Quote:
Originally Posted by Mequa View Post
Would you mind keeping it as an option (only perhaps less prominent)? For one thing, the old vsync doesn't crash Wine the same way the new one appears to.
I second that As far as I can see, regular vsync is the best way to run amiga 500/1200 in cycle-exact mode with perfect scrolling (e.g. for running classic floppy games).
FrodeSolheim is offline  
Old 19 December 2011, 19:52   #65
rsn8887
Registered User
rsn8887's Avatar
 
Join Date: Oct 2006
Location: USA
Posts: 863
Did some more tests on Vision Megademo IV:
- Tearing only happens in A1200, fastest possible mode.
- Tearing is bigger (encompasses top third of screen) in double buffer display mode.
- No tearing in "Approx. A500/A1200" mode, with or without cycle exact.
- Looks like there's no tearing, in any mode, on the emulated A500

- Unimportant side note: Sad but true - looks like my computer is too slow to run first part (after press space) of Vision Megademo IV in A500 cycle exaxt mode (CPU % 140)! Well, there's lots going on there, and it works just fine w/o cycle exact, so I don't really care.

- This is the most stable WinUAE release in terms of smoothness and sound ever! Great work Toni!

- I still have to select "swap both" to get the right sound channel assignment on the emulated A1200, btw. Tested with poing.

- Tearing still there in 60Hz NTSC mode. Vision Megademo IV does not like 60 Hz, it runs sloow, but tearing is nevertheless visible in third part.

Last edited by rsn8887; 19 December 2011 at 20:06. Reason: cleaning up typos
rsn8887 is offline  
Old 20 December 2011, 16:10   #66
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 44
Posts: 22,995
One more tweak: http://www.winuae.net/files/b/winuae.zip

Now only "no buffer" mode tries to reduce latency as much as possible (requires more cpu power, exact page flipping timing etc.. or there will be tearing)

Double and triple buffered lets the display driver to time the page flip normally (automatically flip when next vblank, adds one frame worth of latency), also does not busy wait. This mode should now always work better than old vsync.

Quote:
Originally Posted by rsn8887 View Post
- Unimportant side note: Sad but true - looks like my computer is too slow to run first part (after press space) of Vision Megademo IV in A500 cycle exaxt mode (CPU % 140)! Well, there's lots going on there, and it works just fine w/o cycle exact, so I don't really care.
Do you mean when not using vsync? It isn't that chipset heavy, lots of moving stuff but nothing special.
Toni Wilen is offline  
Old 20 December 2011, 20:42   #67
rsn8887
Registered User
rsn8887's Avatar
 
Join Date: Oct 2006
Location: USA
Posts: 863
Quote:
Originally Posted by Toni Wilen View Post
One more tweak: http://www.winuae.net/files/b/winuae.zip

Now only "no buffer" mode tries to reduce latency as much as possible (requires more cpu power, exact page flipping timing etc.. or there will be tearing)
Did you make any change to "no buffer" mode? Looks like screen tearing is gone here!!! Tested with 100Hz, Vision Megademo IV.

I posted random snippets before. Edited them out. Here is the bottom line:

I saw tearing once in no buffer mode, but couldn't reproduce it so far. Otherwise no buffer mode seems to work fine. Has impact on speed though. Could it be that the speed impact of no buffer mode in this version is larger than that of triple buffer mode in last version? I see it on my emulated A1200 in fastest possible. It seems slower than on last version's triple buffer mode. I also see this on Leander in A500 mode "approximate A500 Speed." Triple buffer last version: 80% CPU. No buffer this version: 100+% CPU in Leander.

All tested in 100Hz no latency vsync modes.

Dual buffer and triple buffer both stutter and glitch now, takes a few seconds to start, and sometimes goes away by itself after a few seconds. Can also be made to go away by switching buffering modes. But comes back after a while. Tested with Vision Megademo IV on A1200 fastest possible. Also saw something similar in Hyperdrive. Stuttering seems most likely to happen after mouse click in part one of the demo, after part one ran for a while (20 seconds or so). But also last part of demo stutters almost always. This is with no sound buffer underruns.

Quote:
Originally Posted by Toni Wilen View Post
Do you mean when not using vsync? It isn't that chipset heavy, lots of moving stuff but nothing special.
No, I was testing with cycle exact+low latency Vsync.

Last edited by rsn8887; 20 December 2011 at 22:18.
rsn8887 is offline  
Old 21 December 2011, 17:05   #68
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 44
Posts: 22,995
"No buffer" vsync requires more power, it is designed to do that for lowest possible latency.

Anyway, yet another attempt: http://www.winuae.net/files/b/winuae.zip

Double and triple buffering hopefully works properly again..
Toni Wilen is offline  
Old 21 December 2011, 18:43   #69
Mad-Matt
Longplayer

Mad-Matt's Avatar
 
Join Date: Jan 2005
Location: Lincoln / UK
Age: 40
Posts: 1,595
Send a message via ICQ to Mad-Matt Send a message via MSN to Mad-Matt
Im not sure if this low latency stuff is ment for RTG modes (but the options do exist), but theres seems to be an issue since beta5 (upto beta4 has been fine) where the rtg screen doesnt appear to open properly or emulation is stalled when using low latency vsync.

Sometimes it will stall a few seconds after wb has booted. If normal vsync is selected then the emulation continues on as normal. pretty minor glitch really and easily avoided at the moment if its not ment to work yet.
Mad-Matt is offline  
Old 21 December 2011, 18:59   #70
msayed1977
Better than the Original
msayed1977's Avatar
 
Join Date: May 2008
Location: Cairo, Egypt
Posts: 145
tested your latest update.
winuae crashes.
tried 2 different games.(Kick Off 2, Battle Chess).
here is my configuration attached.(Mohammed Sayed.uae).
Attached Files
File Type: uae Hardware.uae (10.0 KB, 117 views)
File Type: uae Host.uae (10.0 KB, 120 views)
File Type: uae Mohammed Sayed.uae (10.0 KB, 115 views)
msayed1977 is offline  
Old 21 December 2011, 19:01   #71
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 44
Posts: 22,995
winuae.zip test versions are only meant for specific test cases, which is low latency vsync + fastest possible CPU in this case.

EDIT: if this is from official b5, attach also crash dump.

EDIT2: Mad-Matt, it isn't officially supported yet, wait until it is listed in changelogs

Last edited by Toni Wilen; 21 December 2011 at 19:27.
Toni Wilen is offline  
Old 21 December 2011, 20:12   #72
rsn8887
Registered User
rsn8887's Avatar
 
Join Date: Oct 2006
Location: USA
Posts: 863
Quote:
Originally Posted by Toni Wilen View Post
"No buffer" vsync requires more power, it is designed to do that for lowest possible latency.

Anyway, yet another attempt: http://www.winuae.net/files/b/winuae.zip

Double and triple buffering hopefully works properly again..
The potential of having perfectly smooth emulated Amiga without ANY glitches or stutters in scrolling is just too great!

But, damn, I am getting stutters still. In all buffering modes actually. It is best tested with Vision MegaDemo IV, last part. The central horizontal small text scroller. It starts stuttering after about 1 minute. Switch from dual buffer to triple buffer or vice versa, and stuttering goes away, only to come back after a minute or two. Seems a bit less severe without sound, but even with disabled sound, I still see noticeable hickups in scrolling. I made a savestate to test it faster (I know, shouldn't do that), but it is also there by just clicking through the demo, e.g. it is not an artefact of savestate.

Re-tested with beta from Dec. 18th, and triple buffer works perfect there. However, now testing more closely, I do observe a similar stutter in no buffering and dual buffering (+some tearing that was typical to that beta) on this part of the MegaDemo. I guess I never tested no buffering on that beta that well, because triple buffering worked so well.

There must have been something really special about the low latency triple buffer mode that was in the beta from Dec. 18th (the last busy wait beta, before you switched back to OS buffer flipping). It is the only mode that works absolutely perfect for me. (I cannot get it to stutter ever, and no tearing). Needless to say, I really like that beta

In fact, the latest beta behaves a lot like "old" winUAE vsync on my system, in the behaviour of the stuttering. With old vsync, I would also get perfectly nice scrolling sometimes for a long time, like 1 min or longer sometimes. But suddenly it would show a hickup or two, and from then on more hickups and, while pretty nice, it just wasn't ever absolutely perfectly glitch free. Not like the beta from 18th December in triple buffering is for me now. I started observing the glitching in old vsync versions of WinUAE, on a different older computer, and I also read a few posts of people saying that WinUAE cannot ever be perfectly smooth in this forum. This makes me believe that it was not just only my system either. Maybe OS buffer flipping is just sucky?

All tested using 100Hz A1200 fastest possible low latency vsync

Last edited by rsn8887; 21 December 2011 at 20:27.
rsn8887 is offline  
Old 21 December 2011, 20:28   #73
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 44
Posts: 22,995
Quote:
Originally Posted by rsn8887 View Post
Damn, I am getting stutters still. In all buffering modes actually. It is best tested with Vision MegaDemo IV, last part. The central horizontal small text scroller. It starts stuttering after about 1 minute. Switch from dual buffer to triple buffer or vice versa, and stuttering goes away, only to come back after a minute or two. Seems a bit less severe without sound, but still noticeable hickups in scrolling even without sound. I made a savestate to test it faster, but it is also there by just clicking through the demo, e.g. it is not an artefact of savestate.

Re-tested with beta from Dec. 18th, and triple buffer works perfect there. However, now testing more closely, I do observe the same stutter in no buffering and dual buffering (+some tearing) on this part of the MegaDemo.

There must have been something really special about the low latency triple buffer mode that was in the beta from Dec. 18th (the last busy wait beta, before you switched back to OS buffer flipping). It is the only mode that works absolutely perfect for me. (I cannot get it to stutter ever, and no tearing)

Maybe OS buffer flipping is just sucky?

All tested using 100Hz A1200 fastest possible low latenvy vsync
It isn't vsync problem if you only see stutters in one demo part, this is more likely issue with demo + fastest possible CPU mode. (At least here this part gets totally messed up if JIT is enabled).

I got one similar "problem", originally I used Great Gianna Sisters title screen scroller as a vsync test (in fastest cpu mode) and I wasted time to debug random stutters until I noticed it is not vsync problem, just a compatibility problem with fastest possible mode..
Toni Wilen is offline  
Old 21 December 2011, 20:30   #74
Dr.Venom
Registered User
 
Join Date: Jul 2008
Location: Netherlands
Posts: 485
Quote:
Originally Posted by Toni Wilen View Post
winuae.zip test versions are only meant for specific test cases, which is low latency vsync + fastest possible CPU in this case.
Working well here. There are two or three instances in fastest possible and running heavy aga demos where shortly the sound gave a few pops and clicks (led at -99 and flashing red), but generally working very well. A500 cycle exact runs without any issues..

Some questions/remarks:
  • What happened with the "exclusive" mode/option for wasapi? Is it now automatically exclusive, or..?
  • Why is the buffer size at setting 1 and 2 "(1323)" samples and not 1024? I would expect 1024 as all other settings (3 to 7) seem to be [BUF=XXX * 8]. WASAPI: EX=0 CH=2 FREQ=44100 BUF=64 (1323)
  • This is probably because it's a beta, but the "Frequency" runs at 44100, even when 48000 is selected...
Furthermore, I like that you added the volume slider

Quote:
Originally Posted by rsn8887 View Post
Damn, I am getting stutters still. In all buffering modes actually. It is best tested with Vision MegaDemo IV, last part. The central horizontal small text scroller. It starts stuttering after about 1 minute. Switch from dual buffer to triple buffer or vice versa, and stuttering goes away, only to come back after a minute or two. Seems a bit less severe without sound, but still noticeable hickups in scrolling even without sound. I made a savestate to test it faster, but it is also there by just clicking through the demo, e.g. it is not an artefact of savestate.

Re-tested with beta from Dec. 18th, and triple buffer works perfect there. However, now testing more closely, I do observe the same stutter in no buffering and dual buffering (+some tearing) on this part of the MegaDemo.

There must have been something really special about the low latency triple buffer mode that was in the beta from Dec. 18th (the last busy wait beta, before you switched back to OS buffer flipping). It is the only mode that works absolutely perfect for me. (I cannot get it to stutter ever, and no tearing)

Maybe OS buffer flipping is just sucky?

All tested using 100Hz A1200 fastest possible low latenvy vsync
Are you by any chance running Windows Vista or Windows 7? If so are you running with Aero / Desktop Composition enabled or disabled?
Dr.Venom is offline  
Old 21 December 2011, 20:37   #75
rsn8887
Registered User
rsn8887's Avatar
 
Join Date: Oct 2006
Location: USA
Posts: 863
Quote:
Originally Posted by Toni Wilen View Post
It isn't vsync problem if you only see stutters in one demo part, this is more likely issue with demo + fastest possible CPU mode. (At least here this part gets totally messed up if JIT is enabled).

I got one similar "problem", originally I used Great Gianna Sisters title screen scroller as a vsync test (in fastest cpu mode) and I wasted time to debug random stutters until I noticed it is not vsync problem, just a compatibility problem with fastest possible mode..

Correct! Unbelievable. I just tested 21st Dec. beta with Hyperdrive: absolutely NO glitching/stuttering or tearing in no buffer (this is a first) OR triple buffer. A lot of glitching/stuttering in dual buffer. Need to do more tests with different programs, I suppose.

EDIT: Never mind. All modes look perfect now, as long as I don't switch between them "on the fly". I think my observation of stuttering in dual buffer is due to this weird, but minor thing: It looks like at least Hyperdrive (didn't test other programs) behaves like the following: If I boot the emulated Amiga in double buffer mode. There is no stuttering, perfectly smooth. When I switch on the fly to triple buffer, while playing the game, there's lots of stuttering. When I switch back to double buffer, still stuttering. When I now switch to no buffer - perfectly smooth. When I switch back to double or triple buffer, still stuttering. A soft boot (amiga amiga ctrl) of amiga fixed this, when I reload the game, there's no sign stuttering again. The whole sequence can then be repeated with same results. Is this normal?

Last edited by rsn8887; 21 December 2011 at 20:52.
rsn8887 is offline  
Old 21 December 2011, 20:56   #76
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 44
Posts: 22,995
First, winuae.zip updated again. This solves random really strange effects where D3D gets totally confused and either hangs or stops updating or keeps showing last 2 previous frames forever or something else..

D3DCREATE_MULTITHREADED flag must be of course set because Present() (flip buffers) call is done from another thread..

Oops..

Quote:
[*] What happened with the "exclusive" mode/option for wasapi? Is it now automatically exclusive, or..?
Check the sound device selection list more carefully

Quote:
[*]Why is the buffer size at setting 1 and 2 "(1323)" samples and not 1024? I would expect 1024 as all other settings (3 to 7) seem to be [BUF=XXX * 8]. WASAPI: EX=0 CH=2 FREQ=44100 BUF=64 (1323)
I assume WASAPI does not accept smaller buffers and it gets set to smallest acceptable.

Quote:
[*] This is probably because it's a beta, but the "Frequency" runs at 44100, even when 48000 is selected...
AFAIK WASAPI, at least some drivers, only accept "native" sound card rate(s).

Quote:
Are you by any chance running Windows Vista or Windows 7? If so are you running with Aero / Desktop Composition enabled or disabled?
Now I have 100% smooth scrolling even on windowed mode + aero enabled (win7). Previously for some reason it did only work if aero was disabled. Perhaps it is driver difference (now I have Catalyst 12.1 "preview" drivers installed)

Quote:
The whole sequence can then be repeated with same results. Is this normal?
Perhaps, no idea why it happens yet.. Or perhaps it is due to missing D3DCREATE_MULTITHREADED flag? (see above)
Toni Wilen is offline  
Old 22 December 2011, 00:06   #77
msayed1977
Better than the Original
msayed1977's Avatar
 
Join Date: May 2008
Location: Cairo, Egypt
Posts: 145
here is my dump file.
Attached Files
File Type: dmp winuae_240bBeta 5_20111222_010219.dmp (42.2 KB, 111 views)
msayed1977 is offline  
Old 22 December 2011, 00:41   #78
Dr.Venom
Registered User
 
Join Date: Jul 2008
Location: Netherlands
Posts: 485
Quote:
Originally Posted by Toni Wilen View Post
Check the sound device selection list more carefully
Ah, OK

Quote:
I assume WASAPI does not accept smaller buffers and it gets set to smallest acceptable.
I'm not sure. 1323/44100 equals a buffer of 30ms, which seems a bit large as being the smallest buffer?

In the process I also stumbled upon a difference between normal wasapi and exclusive wasapi. They use different buffer sizes at same settings 1-7, which seems strange?

E.g. exclusive's lowest settings of 1 equals the buffer/latency setting of 4 in non-exclusive (exclusive is also noticably laggier than normal wasapi when both set to 4). This is on an Asus Xonar DX PCI-E soundcard btw.

Below the exact numbers as reported by the winuae log:

Code:
Sound
Buffer
Size    Normal Wasapi       Exclusive Wasapi
  1     BUF=64 (1323)       BUF=64 (4096)
  2     BUF=128 (1323)      BUF=128 (8192)
  3     BUF=256 (2048)      BUF=256 (16384)
  4     BUF=512 (4096)      BUF=512 (32768)
  5     BUF=1024 (8192)     BUF=1024 (65536)
  6     BUF=2048 (16384)    BUF=2048 (131072)
  7     BUF=4096 (32768)    "Sorry, can't initialize sound"
Quote:
AFAIK WASAPI, at least some drivers, only accept "native" sound card rate(s).
It doesn't seem to be the case here. Non-exclusive always logs as 44100 whatever the setting, but exclusive does log that it accepts 44100, 48000 and even 96000 (when entered manually in the box..) Any idea?

Quote:
Now I have 100% smooth scrolling even on windowed mode + aero enabled (win7). Previously for some reason it did only work if aero was disabled. Perhaps it is driver difference (now I have Catalyst 12.1 "preview" drivers installed)
Sounds cool. I still need to test windowed mode with the new betas. Will let you know..
Dr.Venom is offline  
Old 22 December 2011, 15:19   #79
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 44
Posts: 22,995
Quote:
Originally Posted by Dr.Venom View Post
Ah, OK

I'm not sure. 1323/44100 equals a buffer of 30ms, which seems a bit large as being the smallest buffer?

In the process I also stumbled upon a difference between normal wasapi and exclusive wasapi. They use different buffer sizes at same settings 1-7, which seems strange?
I get exact same buffer sizes (exclusive vs non-exclusive), even when size=1. It is sound card/driver specific (Auzen X-Fi Forte here), buffer size you requested may not be what you get.

Quote:
Non-exclusive always logs as 44100 whatever the setting, but exclusive does log that it accepts 44100, 48000 and even 96000 (when entered manually in the box..) Any idea?
I remembered now

Non-exclusive mode is same as device's Windows Sound panel "Default Format" setting. Exclusive can be anything as long as hardware directly supports it.
Toni Wilen is offline  
Old 22 December 2011, 15:22   #80
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 44
Posts: 22,995
Quote:
Originally Posted by msayed1977 View Post
here is my dump file.
This is not from official b5 (winuae_2400b5.zip). Only dumps from official betas (and final versions) can be used for debugging.
Toni Wilen is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
WinUAE 2.5.1 beta series Toni Wilen support.WinUAE 69 22 December 2012 10:22
WinUAE 2.3.3 beta series Toni Wilen support.WinUAE 124 17 September 2011 15:48
WinUAE 2.3.2 beta series Toni Wilen support.WinUAE 79 31 May 2011 19:39
WinUAE 2.3.0 beta series (was 2.2.1) Toni Wilen support.WinUAE 229 22 September 2010 19:20

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 07:54.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, vBulletin Solutions Inc.
Page generated in 0.09923 seconds with 14 queries