DX10 Antialiasing

Note Please Read the DX9 post first – somehow I poste dthem in the wrong order!

The following tests were carried out on a AMD 7750. Before I start I better recap for Nvidia owners what the Catalyst Control Center looks like.

My monitor is 1680x 1050 Dell

For AA there are two areas of settings

Anti-Aliasing

The first is the mode (Use Application Settings, Enhance, Override)

If you select Override you can then use the slider to select the level (2x 4x 8x). There are also intermediate EQAA modes which are similar to Nvidia CCAA modes.

With Enhance there is just a tick box which says use the EQ mode (so if the application selects 4x it gets 4x EQ)

Anti-Aliasing Mode

At the bottom a second mode which is either

MSAA, Adaptive or SSAA.

Adaptive uses SSAA where the driver things it is a good idea and MSAA elsewhere.

I used the following scene at Bowerman. I set the anisotrophic slider to 16x in all tests.

DX10

Test 1. Default    DX10, MSAA, Use Application Settings

To me that was as good as anything DX9 (except for the SSAA)

Here is DX9 Forced 8x 16 aniso

Compare the starboard wing.

Anyway here is some detail

Now I recalled seeing a long time ago a mention by Bojote of some config items that affected AA

http://forum.avsim.net/topic/275328-bufferpools-poolsize0-the-holy-grail-of-fsx-performance/page__st__625

Although he later said that he didn’t think that they did anything!

Also here

http://forum.avsim.net/topic/63820-anti-aliasing/

from n4gix

So both these threads suggest that you can influence AA by setting within the [Graphics] section of fsx.cfg

MultiSamplesPerPixel=
MultiSampleQuality=

They look like exactly the values we would want to send when setting up DX10

  • The Number of Samples
  • A quality “level”

These go into a structure DXGI_SAMPLE_DESC

When I looked in the dll, the strings follow immediately after the string D3D10….

If they work then NbrSamples lets you set 2x 4x 8x and the quality gives you access to the intermediate CSAA EQAA options. All the testing has only looked at the mainlevels so I ignored quality

Test 2. MultiSamplesPerPixel=4, MSAA, Use Application Settings

No change

Pixel perfect with the default

Test 3. MultiSamplesPerPixel=2, MSAA, Use Application Settings

Starboard wing was much poorer (like DX9!)

So the setting works!

Test 4. MultiSamplesPerPixel=8, MSAA, Use Application Settings

I couldn’t tell the difference! However the pixel are different so it suggests a change.

Test 4. MultiSamplesPerPixel=8, SSAA, Use Application Settings

The MSAA/SSAA slider works with DX10!

The quality of the fence was much, much better with DX10 SSAA than DX9.

DX9 8x SSAA for comparison

Quality Settings

I didn’t try altering the quality settings via fsx.cfg. There are no clear setting – it’s a number which is defined by manufacturer.

For AMD before 6000 series its 0 or 1 where 1 means EQAA

For 6000 series

http://developer.amd.com/sdks/radeon/assets/EQAA%20Modes%20for%20AMD%20HD%206900%20Series%20Cards.pdf

The key info is this table for DX10 (the values are different for DX9)

Multisamples Count Quality Level AA Mode Color Sample Count Depth/Stencil Sample Count Coverage Sample Count
0 0 No MSAA 0 0 0
2 0 ~ 3 2x MSAA 2 2 2
4 2f4x EQAA 2 2 4
4 0 ~ 7 4x MSAA 4 4 4
8 ~ 15 4f8x EQAA 4 4 8
16 4f16x EQAA 4 4 16
8 0 ~ 15 8x MSAA 8 8 8
16 8f16x EQAA 8 8 16

However my card only supports one EQAA option per MultiSamples + the edge option so I am not certain what values should be.

Conclusions

DX10 gives me better IQ than DX9!  Thats with my Graphics card and monitor.  I am not claiming that its true for everyone.  But this is what I see.

Default for DX10 seems to be 4x AA

I cannot really tell the difference for AA levels greater than x4 on static scenes – I think 8x might be better when flying but even then I am not 100% sure.

SSAA is great for transparent textures and works with DX10 fine (and better too)

I think that

MultiSamplesPerPixel=

does work with DX10 and so probably the quality setting as well.

I tried the MultISamplesPerPixel with DX9.  It does not work – the result of setting MultiSamplesPerPixel to 8  and selecting Use Application Settings was identical to not having the entry at all.

About stevefsx

I don't use FSX that much. But I am very annoyed when it doesn't work properly!
This entry was posted in DX10. Bookmark the permalink.

2 Responses to DX10 Antialiasing

  1. boez says:

    Came across this table for CSAA on nvidia hardware:

    http://www.nvidia.com/object/coverage-sampled-aa.html

    This may be relevant to the values passed via MultiSamplesPerPixel and MultiSampleQuality

    Extract:

    Creating CSAA-compatible Surfaces

    CSAA is invoked through the use of the Quality field in the multisample descriptor structure:

    typedef struct DXGI_SAMPLE_DESC {
    UINT Count;
    UINT Quality;
    } DXGI_SAMPLE_DESC, *LPDXGI_SAMPLE_DESC;

    Since this structure already provides a mechanism to specify the number of stored color/z/stencil samples through the Count field, and the number of shaded color samples is always 1 in a multisampled buffer, we can specify the number of coverage samples by setting the Quality field to the desired value. Below is a table listing the various CSAA modes, and the appropriate Count/Quality values used to enable them:

    Table 1: CSAA modes and corresponding sample/coverage counts for DX10

    Desired CSAA Mode Count (# Color/Z/Stencil samples) Quality Value
    8x 4 8
    8xQ (Quality) 8 8
    16x 4 16
    16xQ (Quality) 8 16

  2. Meddy says:

    incredible work ! Jaw DRop

Comments are closed.