Page 1 of 3 123 LastLast
Results 1 to 25 of 79

Thread: Microstutter in latest-gen cards - examples included

Hybrid View

  1. #1
    Xtreme Member
    Join Date
    Jan 2005
    Location
    London, UK
    Posts
    129

    Microstutter in latest-gen cards - examples included

    Not 100% sure where to post this, so I'm putting it here because I'd like to see some results from ATI users as well.

    Microstutter, for those that don't know, is the irregular output of frames - usually as a result of multi-GPU setups operating in AFR mode. Since the human eye notices the gap between frames as a measure of smoothness, rather than the raw number of frames spit out, then a game with irregular frame output will not look as smooth as one with uniform output.

    It stands to reason, for example, that a game outputting two frames 0.1ms apart, with a 49.9ms gap until the next frame, would look like it was running at 20fps, even though the framerate counter would read 40fps.


    Aaaanyway. A while back I wrote a little program to quantify microstutter from FRAPS benchmarks. You can download it here. Basically it looks at the frame-by-frame variation from the local frametime, as a percentage of the average frametime (more details in the readme). From this you can gain a "microstutter index", which you can think of as a "percentage microstutter", 100% being the scenario I described above. It also shows an "effective framerate", which is a measure of smoothness with microstutter taken into account. An equivalent framerate if there was no microstutter.


    Okay, now onto some examples. First I'll show you a snapshot of 35 consecutive frametimes I took from the middle of a crysis benchmark, using my GTX480 SLI setup. Not all the scene was as bad as this, but it gives you an idea of the problem:




    In terms of the microstutter index, the runs that generated the plots above, had the following results.

    Single GPU (2560*1600, 4xAA):





    SLI (2560*1600, 4xAA):




    This isn't as bad as with my old 4870x2, but it certainly shows that microstutter is still with us.

    Now, it's important to note that as the game becomes less and less GPU limited, the microstutter effect reduces significantly. For example, the above benchmark had the GPUs running at near-100% load. At 1920*1200, 8xQAA, the GPUs are in the region 85-95% load for the most part. Here the microstutter index drops significantly:





    Okay, well that's my findings. What I'd love to see is some results from ATI users, with multi-GPU setups. I'd like to compare the two technologies and see how they compare. Please post any results you generate, but please make sure you're really at, or close to, 100% GPU load, otherwise you will see an artificially low microstutter index. Afterburner is a good way to check this.

    My hope is that maybe, just maybe, if we can generate more awareness of this problem we can get ATI / nvidia driver teams to pay attention and do something about it. A 5% performance drop (say) would be a small price to pay for regular frame output. Of course, this will not happen until review sites start taking note of microstutter when reviewing cards!
    Last edited by Arseface; 09-01-2010 at 08:49 PM.

  2. #2
    Xtreme Member
    Join Date
    Nov 2008
    Location
    London
    Posts
    300
    Here, i did some crysis benchmarks with 4890 crossfire:



    0xAA run:


    8xAA run:



    These were done with an i7 860 (HT off) at 4.0GHz (200x20), RAM at 2000 CL7 and 4890 crossfire at 900 core 1100 memory.
    -
    Core i7 860 @ 3.80GHz, 1.28v | GA-P55A-UD4 | G.Skill Ripjaw 4GB DDR3 @ 1900MHz 7-9-8-24 1N, 1.57v | HIS HD 6950 2GB, 1536sp @ 900/1400, 1.10v | Samsung F3 500GB | Thermaltake 750W | Windows 7 64bit | Air

    Crunching away...

  3. #3
    Xtreme Member
    Join Date
    Jan 2005
    Location
    London, UK
    Posts
    129
    Thanks...

    Not too bad to be honest I generally found worse performance with my old 4870x2.

  4. #4
    Xtreme Member
    Join Date
    Nov 2008
    Location
    London
    Posts
    300
    No problem

    Here's another one, Dirt 2 this time:




    FPS in the benchmark was 116. 1680x1050, maxed, 4xAA. Funny enough i found i need to enable vsync to get the smoothness i desire, otherwise i can feel the microstutter. So i would think anything over 15-20% the mircostutter is quite noticeable, if this program is accurate
    -
    Core i7 860 @ 3.80GHz, 1.28v | GA-P55A-UD4 | G.Skill Ripjaw 4GB DDR3 @ 1900MHz 7-9-8-24 1N, 1.57v | HIS HD 6950 2GB, 1536sp @ 900/1400, 1.10v | Samsung F3 500GB | Thermaltake 750W | Windows 7 64bit | Air

    Crunching away...

  5. #5
    One-Eyed Killing Machine
    Join Date
    Sep 2006
    Location
    Inside a pot
    Posts
    6,340
    Quote Originally Posted by Arseface View Post
    Now, it's important to note that as the game becomes less and less GPU limited
    You meant less CPU dependent, GPU bound/limited to be precise.
    High resolution, high game details & AA/AF = nearly 100% GPU limited ( 99.5% of the stress is put on the VGA/s )
    Coding 24/7... Limited forums/PMs time.

    -Justice isn't blind, Justice is ashamed.

    Many thanks to: Sue Wu, Yiwen Lin, Steven Kuo, Crystal Chen, Vivian Lien, Joe Chan, Sascha Krohn, Joe James, Dan Snyder, Amy Deng, Jack Peterson, Hank Peng, Mafalda Cogliani, Olivia Lee, Marta Piccoli, Mike Clements, Alex Ruedinger, Oliver Baltuch, Korinna Dieck, Steffen Eisentein, Francois Piednoel, Tanja Markovic, Cyril Pelupessy (R.I.P. ), Juan J. Guerrero

  6. #6
    Xtreme Member
    Join Date
    Jan 2005
    Location
    London, UK
    Posts
    129
    Quote Originally Posted by BenchZowner View Post
    You meant less CPU dependent, GPU bound/limited to be precise.
    High resolution, high game details & AA/AF = nearly 100% GPU limited ( 99.5% of the stress is put on the VGA/s )
    Well whatever you choose to call it :p

    The point is, that as the effective load on the GPUs is reduced (i.e. as their percentage utilisation over the benchmark drops), the effect of microstutter is rapidly reduced. This makes sense to a certain degree; if the GPUs are waiting for information from the CPU, then they will start to sync their output with the output from the CPU. The CPU will always be expected to compete its frame-by-frame workload in regular intervals (or at least in smoothly varying intervals).

    In the case I showed above, with an overclocked GTX480 SLI setup, even crysis at 1920*1200 with 8xAA is not completely GPU bound. The GPU utilisation is around 85-95%, and this helps reduce the microstutter index significantly (compared to the 2560 test, where GPU utilisation is near-100%). I will test even lower resolutions tonight, for a true CPU-bound scenario. I expect very little microstutter then (but who knows!).

    My point was that dropping from ~100% GPU load down to even ~90% load makes a big difference to microstutter.

  7. #7
    One-Eyed Killing Machine
    Join Date
    Sep 2006
    Location
    Inside a pot
    Posts
    6,340
    What are you using to measure the VGA/s utilization ?
    Not nVperf kit I assume.
    Because at 1920x1200 8xAA the VGA utilization should be 100% unless your CPU is clocked under 3.8GHz
    Coding 24/7... Limited forums/PMs time.

    -Justice isn't blind, Justice is ashamed.

    Many thanks to: Sue Wu, Yiwen Lin, Steven Kuo, Crystal Chen, Vivian Lien, Joe Chan, Sascha Krohn, Joe James, Dan Snyder, Amy Deng, Jack Peterson, Hank Peng, Mafalda Cogliani, Olivia Lee, Marta Piccoli, Mike Clements, Alex Ruedinger, Oliver Baltuch, Korinna Dieck, Steffen Eisentein, Francois Piednoel, Tanja Markovic, Cyril Pelupessy (R.I.P. ), Juan J. Guerrero

  8. #8
    Xtreme Member
    Join Date
    Jan 2005
    Location
    London, UK
    Posts
    129
    Quote Originally Posted by BenchZowner View Post
    What are you using to measure the VGA/s utilization ?
    Not nVperf kit I assume.
    Because at 1920x1200 8xAA the VGA utilization should be 100% unless your CPU is clocked under 3.8GHz
    I'm using afterburner.

    My CPU is an i7-930 clocked at 4.2Ghz. I imagine that if I reduce the CPU clock by a few hundred Mhz I will see 100% GPU utilisation once again (as I do with the 2560 tests), and with it a higher microstutter index. Another thing I could test...

  9. #9
    Xtreme Addict
    Join Date
    Jul 2004
    Location
    U.S of freakin' A
    Posts
    1,931
    If you're running SLi, then bumping your maximum pre rendered frames from the default 3 to 5 can really help to steady your framerate and make games run smoother; especially in demanding games like Crysis.

    Mine is always set to 5, and you and I seem to have a very similar rig, ie 30 inch monitor and GTX 480 SLi.
    Intel Core i7 6900K
    Noctua NH-D15
    Asus X99A II
    32 GB G.Skill TridentZ @ 3400 CL15 CR1
    NVidia Titan Xp
    Creative Sound BlasterX AE-5
    Sennheiser HD-598
    Samsung 960 Pro 1TB
    Western Digital Raptor 600GB
    Asus 12x Blu-Ray Burner
    Sony Optiarc 24x DVD Burner with NEC chipset
    Antec HCP-1200w Power Supply
    Viewsonic XG2703-GS
    Thermaltake Level 10 GT Snow Edition
    Logitech G502 gaming mouse w/Razer Exact Mat
    Logitech G910 mechanical gaming keyboard
    Windows 8 x64 Pro

  10. #10
    Xtreme Member
    Join Date
    Jan 2005
    Location
    London, UK
    Posts
    129
    Quote Originally Posted by Carfax View Post
    If you're running SLi, then bumping your maximum pre rendered frames from the default 3 to 5 can really help to steady your framerate and make games run smoother; especially in demanding games like Crysis.

    Mine is always set to 5, and you and I seem to have a very similar rig, ie 30 inch monitor and GTX 480 SLi.
    Thanks! I'll give this a try in a couple of hours, when I get back from work Sounds like it might be a bit of a trade-off between frame rate regularity and input-lag though. I suppose that rendering more frames ahead will increase the lead time between user actions appearing on-screen?


    Unfortunately I'm on a 1920*1200 screen right now My 30"-er died around six weeks ago under warranty, and I'm trying to get in contact with the manufacturer to get a replacement, but they are trying their best to ignore me (seems to be heading towards legal action). But anyway - this is a different story!

    The crysis benchmark is odd in that it allows you to run at higher resolutions that your monitor is capable of, and downscale to native res. Makes the green in-bench statistics hard to read, but good enough for simulating 2560 30" performance (and more importantly, maxing out the GPUs).
    Last edited by Arseface; 09-02-2010 at 08:26 AM.

  11. #11
    Xtreme Mentor
    Join Date
    May 2008
    Location
    cleveland ohio
    Posts
    2,879
    can you make a graph with cpu load and gpu load?
    HAVE NO FEAR!
    "AMD fallen angel"
    Quote Originally Posted by Gamekiller View Post
    You didn't get the memo? 1 hour 'Fugger time' is equal to 12 hours of regular time.

  12. #12
    Xtreme Member
    Join Date
    Jan 2005
    Location
    London, UK
    Posts
    129
    Okay, well I think I've found a candidate for "worst-case scenario" as far as microstutter goes. The heaven benchmark seems to really make the cards sweat (~100% load), and microstutter like crazy while they're at it.

    Running at 1920*1200, with 4xAA, 16xAF, and starting a 60s FRAPS benchmark right as I start the benchmark in heaven, I get the following:


    Normal tessellation, render max 3 frames ahead:


    Extreme tessellation, render max 3 frames ahead:







    Choosing instead to render 5 frames ahead, I see an improvement, albeit very slight:

    Normal tessellation:


    Extreme tessellation:



    I have to say, as I watched the benchmark unfold I KNEW the value was going to be high. I mean, it seemed pretty smooth overall, but for me 60fps is usually rock-solid (by eye anyway). In this, I saw the framerate counter at ~74, 75, and I could still tell that it wasn't perfectly smooth. As object passed by they seemed to be just a little jerky. Looking more closely at the frametimes file, there is some pretty poor behaviour in there. Not quite as bad as the plot I posted above from the 5870 x-fire vantage run, but still pretty disappointing.

    Demonkevy666, I'm not sure exactly how to plot the CPU load... I can take a screengrab of the GPU loads from afterburner easily enough, but the output from coretemp isn't so straightforward as to allow a simple plot in excel.
    Last edited by Arseface; 09-02-2010 at 12:37 PM.

  13. #13
    Xtreme Addict
    Join Date
    Jul 2004
    Location
    U.S of freakin' A
    Posts
    1,931
    It's been a long time since I've run the Heaven benchmark, but I don't recall that much microstutter

    Anyway, benchmarks are just benchmarks. I wouldn't focus on them too much if I were you.

    Another thing, use the 259.32 drivers. They are the best drivers I've used so far for my 480s; especially for Crysis.

    The 200xx drivers are actually quite immature at this stage, even the official ones. Nvidia is supposed to come out with the 260xx drivers in a few days, so hopefully there'll be some more performance improvements and bug fixes.
    Intel Core i7 6900K
    Noctua NH-D15
    Asus X99A II
    32 GB G.Skill TridentZ @ 3400 CL15 CR1
    NVidia Titan Xp
    Creative Sound BlasterX AE-5
    Sennheiser HD-598
    Samsung 960 Pro 1TB
    Western Digital Raptor 600GB
    Asus 12x Blu-Ray Burner
    Sony Optiarc 24x DVD Burner with NEC chipset
    Antec HCP-1200w Power Supply
    Viewsonic XG2703-GS
    Thermaltake Level 10 GT Snow Edition
    Logitech G502 gaming mouse w/Razer Exact Mat
    Logitech G910 mechanical gaming keyboard
    Windows 8 x64 Pro

  14. #14
    Xtreme Member
    Join Date
    Jan 2005
    Location
    London, UK
    Posts
    129
    Quote Originally Posted by Carfax View Post
    Anyway, benchmarks are just benchmarks. I wouldn't focus on them too much if I were you.
    I agree... But my main aim in doing this stuff is to create awareness of microstutter as a real "performance detracting" issue, perhaps compile enough data to take to some review sites, who just might be in a position to press nvidia / ATI to do something to fix it. A pipedream probably, but it kind of annoys me that an issue like this exists.

    I'll try out the 259.32 drivers when I get chance. I can imagine they improve performance, but to be honest I doubt they will affect microstutter, which seems to be a native AFR-related issue.

  15. #15
    Xtreme Addict
    Join Date
    Nov 2004
    Posts
    1,363
    The key problem that I see with research like this is the amount of resistance you will meet from some members here tied to the hardware community. *ESPECIALLY* if it can be shown on xyz card that SLI or Crossfire yields no benefit when you factor observed frames vs actual frames per second gains from adding another card.

    It is quite likely that what you may in the end prove is what a lot of us m-gpu old timers say that once you reach a certian point adding more cards detracts from peformance not helps which is most apparent when running Tri-SLI or Quad-Fire

    It will also be interesting to see the other theory that microstutter is tied to PCI-E satuation when you compare the difference between say an 8x slot vs 16x slot etc etc. Which is why you see some say that increasing your PCI-E frequency, HTT or QPI helps to reduce microstutter.

    Overall very interesting and what you describe matches my personal experience.
    Last edited by Sentential; 09-02-2010 at 02:00 PM.
    NZXT Tempest | Corsair 1000W
    Creative X-FI Titanium Fatal1ty Pro
    Intel i7 2500K Corsair H100
    PNY GTX 470 SLi (700 / 1400 / 1731 / 950mv)
    Asus P8Z68-V Pro
    Kingston HyperX PC3-10700 (4x4096MB)(9-9-9-28 @ 1600mhz @ 1.5v)

    Heatware: 13-0-0

  16. #16
    Xtreme Enthusiast
    Join Date
    Dec 2009
    Posts
    591
    Nice work here. Funny how nvidias tessellation causes bad microstutter. Did you run it single card?

    It would be good to put numbers to this issue. Especially with our own in house testing. I have access to 460sli I can post results in a few weeks though.

    @Oztopher: which driver did you use? I am thinking 10.8 makes crossfire more interesting.

    I'd also like to see 4870x2/5970 numbers too!

  17. #17
    Xtreme Member
    Join Date
    Jan 2005
    Location
    London, UK
    Posts
    129
    Quote Originally Posted by damha View Post
    Nice work here. Funny how nvidias tessellation causes bad microstutter. Did you run it single card?
    For reference, single GPU result with heaven benchmark. Same settings as above (1920*1200, 4xAA, 16xAF, normal tessellation, stats on the first 60 seconds of the benchmark):




    More microstutter than I've seen with any other single-GPU result, but still pretty low.

    I have to say, unfortunately it isn't just nvidia cards that exhibit this behaviour. The worst microstutter results so far have come from a tri-fire 5970+5870 setup (38-48% MS index).



    Sentinal: I agree that it's always hard to get across a message that people don't want to hear. Hell, I don't really want it to be true, but it is, and ignoring it won't improve the situation in the future. My hope is that with enough results gathered on enough different configurations, the evidence will become irrefutable. If I had the time and cash I'd buy a whole load of hardware and do a proper analysis and formal results writeup. But unfortunately I don't, so anyone out there who can run this test is appreciated

    As for PCI-e and QPI frequency, well I will have a play around with these, but I really don't see how it can have a major effect. The microstutter comes from a lack of control in when frames are output, in AFR mode. What is needed to fix it is some form of communication between the two GPUs to more effectively time the frame outputs, or better yet, a rendering method that has all GPUs working on a single frame (SFR, tiling etc).

  18. #18
    Xtreme Member
    Join Date
    Nov 2008
    Location
    London
    Posts
    300
    Quote Originally Posted by damha View Post
    @Oztopher: which driver did you use? I am thinking 10.8 makes crossfire more interesting.
    Yep i'm on 10.8. Haven't had a single problem with drivers, yet. I always make sure they're uninstalled/installed properly, i.e. express uninstall, reboot, run driver sweeper, reboot, delete all ATI folders etc. then run the ccleaner registry cleaner a few times (always picks up a few ATI reg files, even after running driver sweeper), then install new drivers.
    Last edited by Oztopher; 09-03-2010 at 02:59 AM.
    -
    Core i7 860 @ 3.80GHz, 1.28v | GA-P55A-UD4 | G.Skill Ripjaw 4GB DDR3 @ 1900MHz 7-9-8-24 1N, 1.57v | HIS HD 6950 2GB, 1536sp @ 900/1400, 1.10v | Samsung F3 500GB | Thermaltake 750W | Windows 7 64bit | Air

    Crunching away...

  19. #19
    Xtreme Addict
    Join Date
    Jul 2004
    Location
    U.S of freakin' A
    Posts
    1,931
    Hmm, not sure how accurate this test is.. I just ran the Heaven benchmark (2.0) and this was my result:



    This was with maxed out settings at 2560x1600 resolution, 4xAA, 16xAF, extreme tessellation etc, CPU at 4ghz, and 480s at 850/1700/4200..

    The stutter index is high, but from what I could discern, the benchmark ran pretty smooth.
    Intel Core i7 6900K
    Noctua NH-D15
    Asus X99A II
    32 GB G.Skill TridentZ @ 3400 CL15 CR1
    NVidia Titan Xp
    Creative Sound BlasterX AE-5
    Sennheiser HD-598
    Samsung 960 Pro 1TB
    Western Digital Raptor 600GB
    Asus 12x Blu-Ray Burner
    Sony Optiarc 24x DVD Burner with NEC chipset
    Antec HCP-1200w Power Supply
    Viewsonic XG2703-GS
    Thermaltake Level 10 GT Snow Edition
    Logitech G502 gaming mouse w/Razer Exact Mat
    Logitech G910 mechanical gaming keyboard
    Windows 8 x64 Pro

  20. #20
    Xtreme Member
    Join Date
    Jan 2005
    Location
    London, UK
    Posts
    129
    Quote Originally Posted by Carfax View Post
    Hmm, not sure how accurate this test is.. I just ran the Heaven benchmark (2.0) and this was my result:

    http://a.imageshack.us/img265/7522/heavenh.png

    This was with maxed out settings at 2560x1600 resolution, 4xAA, 16xAF, extreme tessellation etc, CPU at 4ghz, and 480s at 850/1700/4200..

    The stutter index is high, but from what I could discern, the benchmark ran pretty smooth.
    The tool is accurate - it just applies simple statistics to a FRAPS framelog. the exact procedure applied is given in the readme, IIRC.

    The reason that it looked smooth is that your framerate is so high anyway. Check the apparent framerate - even taking microstutter into account, your "microstutter-free equivalent" framerate is 107fps. This should be pretty smooth. Like I said, the real-world effect of microstutter is to effectively reduce your framerate. If the framerate is sufficiently high, the game will still be smooth.


    ... But I have to ask - how in the hell are you getting those kinds of framerate at 2560, 4xAA, 16xAF?! Particularly with extreme tessellation. I get less than half that over the benchmark at 1920 resolution, and that seems to tie in with what others are getting...

  21. #21
    Xtreme Addict
    Join Date
    Jul 2004
    Location
    U.S of freakin' A
    Posts
    1,931
    Quote Originally Posted by Arseface View Post
    ... But I have to ask - how in the hell are you getting those kinds of framerate at 2560, 4xAA, 16xAF?! Particularly with extreme tessellation. I get less than half that over the benchmark at 1920 resolution, and that seems to tie in with what others are getting...
    Thats what I'm saying. There's no way my framerate was that high!

    I'll run it again later and double check.
    Intel Core i7 6900K
    Noctua NH-D15
    Asus X99A II
    32 GB G.Skill TridentZ @ 3400 CL15 CR1
    NVidia Titan Xp
    Creative Sound BlasterX AE-5
    Sennheiser HD-598
    Samsung 960 Pro 1TB
    Western Digital Raptor 600GB
    Asus 12x Blu-Ray Burner
    Sony Optiarc 24x DVD Burner with NEC chipset
    Antec HCP-1200w Power Supply
    Viewsonic XG2703-GS
    Thermaltake Level 10 GT Snow Edition
    Logitech G502 gaming mouse w/Razer Exact Mat
    Logitech G910 mechanical gaming keyboard
    Windows 8 x64 Pro

  22. #22
    Xtreme Enthusiast
    Join Date
    Dec 2009
    Posts
    591
    Quote Originally Posted by Arseface View Post
    For reference, single GPU result with heaven benchmark. Same settings as above (1920*1200, 4xAA, 16xAF, normal tessellation, stats on the first 60 seconds of the benchmark):




    More microstutter than I've seen with any other single-GPU result, but still pretty low.
    Which confirms my speculation. The card is dropping frames for tessellation work which means optimization. Not a bad thing as long as the framerate is high and ms is not noticable.

    Although.. are you sure your formula isn't buggy? The "Global Average Timeframe" is pretty high in that single card run. It's probably due to the low fps, but never hurts to ask

    Quote Originally Posted by Oztopher View Post
    Yep i'm on 10.8. Haven't had a single problem with drivers, yet. I always make sure they're uninstalled/installed properly, i.e. express uninstall, reboot, run driver sweeper, reboot, delete all ATI folders etc. then run the ccleaner registry cleaner a few times (always picks up a few ATI reg files, even after running driver sweeper), then install new drivers.
    Thanks

  23. #23
    Xtreme Addict
    Join Date
    Jul 2007
    Location
    Alberta, Canada
    Posts
    1,264
    I'd be curious to see if microstutter is more noticeable visually on 120hz displays. I must say I noticed it quite a bit with my old 4870x2 and to a slightly lesser extent on 2 260s but this was only at 60hz. I personally enjoyed Crysis more on a single 260 than a 4870x2 interestingly enough and I'm confident the microstuttering was behind this.

    Like has been said its not that noticeable at higher framerates but in games which are more taxing ( ie the types of games where multi gpu setups would be most desireable ) it is much more noticeable.
    Feedanator 7.0
    CASE:R5|PSU:850G2|CPU:i7 6850K|MB:x99 Ultra|RAM:8x4 2666|GPU:980TI|SSD:BPX256/Evo500|SOUND:2i4/HS8
    LCD:XB271HU|OS:Win10|INPUT:G900/K70 |HS/F:H115i

  24. #24
    Xtreme Member
    Join Date
    Jan 2005
    Location
    London, UK
    Posts
    129
    Make sure you only run the FRAPS benchmark in-game. A few seconds of the loading screen, at 3000+ fps, will really skew the results.

  25. #25
    Xtreme Enthusiast
    Join Date
    Dec 2009
    Posts
    591
    Well you have how bad it microstutters, then you have how fast its running.

    Lowfps + high microstutter = fail
    Highfps + high microstutter = doable
    lowfps + low microstutter = acceptable
    highfps + low microstutter = win

Page 1 of 3 123 LastLast

Bookmarks

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •