6

Target-independent rasterization (TIR) is a new hardware feature in DirectX 11.1, which Microsoft used to improve Direct2D in Windows 8. AMD claimed that TIR improved performance in 2D vector graphics by some 500%. And there was some "war of words" with Nvidia's because Kepler GPUs apparently don't support TIR (among other DirectX 11.1 features). The idea of TIR appears to have originated at Microsoft, because they have a patent application for it.

Now Direct2D is fine your OS is Windows, but is there some OpenGL (possibly vendor/AMD) extension that provides access to the same hardware/driver TIR thing? I think AMD is in a bit of a weird spot because there is no vendor-independent 2D vector graphics extension for OpenGL; only Nvidia is promoting NV_path_rendering for now and its architecture is rather different from Direct2D. So it's unclear where anything made by AMD to accelerate 2D vector graphics can plug (or show up) in OpenGL, unlike in the Direct2D+Direct3D world. I hope I my pessimism is going to be unraveled by a simple answer below.

I'm actually posting an update of sorts here because there's not enough room in comment-style posts for this. There seems to be a little confusion as to what TIR does, which is not simply "a framebuffer with no storage attached". This might be because I've only linked above to the mostly awful patentese (which is however the most detailed document I could find on TIR). The best high-level overview of TIR I found is the following snippet from Sinofsky's blog post:

to improve performance when rendering irregular geometry (e.g. geographical borders on a map), we use a new graphics hardware feature called Target Independent Rasterization, or TIR.

TIR enables Direct2D to spend fewer CPU cycles on tessellation, so it can give drawing instructions to the GPU more quickly and efficiently, without sacrificing visual quality. TIR is available in new GPU hardware designed for Windows 8 that supports DirectX 11.1.

Below is a chart showing the performance improvement for rendering anti-aliased geometry from a variety of SVG files on a DirectX 11.1 GPU supporting TIR: [chart snipped]

We worked closely with our graphics hardware partners [read AMD] to design TIR. Dramatic improvements were made possible because of that partnership. DirectX 11.1 hardware is already on the market today and we’re working with our partners to make sure more TIR-capable products will be broadly available.

It's this bit of hardware I'm asking to use from OpenGL. (Heck, I would settle even for invoking it from Mantle, because that also will be usable outside of Windows.)

Community
  • 1
  • 1
Fizz
  • 3,927
  • 20
  • 45

3 Answers3

1

I believe TIR is just a repurposing of a feature nvidia and AMD use for antialiasing.

Nvidia calls it coverage sample antialiasing and their gl extensions is GL_NV_framebuffer_multisample_coverage.

AMD calls it EQAA but they don't seem to have a gl extension.

CynicismRising
  • 930
  • 4
  • 5
  • Possibly, but "repuprosing" probably doesn't fully explain it. CSAA is implemented even in old GeForce 8800 cards, whereas Nvidia said (see question for link) that even Kepler can't implement TIR because new hardware is needed for it. – Fizz Aug 12 '14 at 08:43
  • From here [MS's description](http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2012/10/EQAA%20Modes%20for%20AMD%20HD%206900%20Series%20Cards.pdf) **the software layer can evaluate a large number of sub-pixel sample positions for coverage, yet only allocate the memory that is required for a smaller number of samples** ... – CynicismRising Aug 12 '14 at 15:43
  • 1
    I read that as TIR being the ability to run the rasterizer at a resolution higher than the storage buffer and then pass a coverage mask to each pixel so the shader can decide how to deal with partial coverage. It's quite likely that earlier hw had the ability to do this for a small set of fixed extra resolutions but that TIR expanded the possible resolutions beyond their capabilities. – CynicismRising Aug 12 '14 at 15:45
1

The OpenGL equivalent of TIR is EXT_raster_multisample.

It's mentioned in the new features page for Nvidia's Maxwell architecture: https://developer.nvidia.com/content/maxwell-gm204-opengl-extensions.

Nikita Nemkin
  • 2,585
  • 18
  • 21
  • So, I guess Nvidia was correct that newer-than-Kepler hardware was needed for TIR on their side... – Fizz Dec 13 '20 at 16:49
  • I haven't read the technical details, but one [news piece](https://blog.icare3d.org/2014/09/maxwell-gm204-opengl-extensions.html) on the Maxwell OpenGL extensions indeed claims "Note that EXT_raster_multisample is equivalent to "Target-Independent Rasterization" in Direct3D 11.1, which allows using multiple raster samples with a single color sample, as long as depth and stencil tests are disabled, and it is actually a subset of NV_framebuffer_mixed_samples which is more general and exposes more flexibility." – Fizz Dec 13 '20 at 16:55
  • 1
    BTW, here's a short explanation of how Direct2D uses TIR to render anti-aliased paths: https://microsoft.github.io/DirectX-Specs/d3d/archive/D3D11_3_FunctionalSpec.htm#TIR – Nikita Nemkin Dec 13 '20 at 20:16
0

Just to expand a bit on Nikita's answer, there's a more detailed Nvidia (2017) extension page that says:


(6) How do EXT_raster_multisample and NV_framebuffer_mixed_samples
    interact? Why are there two extensions?

    RESOLVED: The functionality in EXT_raster_multisample is equivalent to
    "Target-Independent Rasterization" in Direct3D 11.1, and is expected to be
    supportable today by other hardware vendors. It allows using multiple
    raster samples with a single color sample, as long as depth and stencil
    tests are disabled, with the number of raster samples controlled by a
    piece of state.

    NV_framebuffer_mixed_samples is an extension/enhancement of this feature
    with a few key improvements:

     - Multiple color samples are allowed, with the requirement that the number
       of raster samples must be a multiple of the number of color samples.

     - Depth and stencil buffers and tests are supported, with the requirement
       that the number of raster/depth/stencil samples must all be equal for
       any of the three that are in use.

     - The addition of the coverage modulation feature, which allows the
       multisample coverage information to accomplish blended antialiasing.

    Using mixed samples does not require enabling RASTER_MULTISAMPLE_EXT; the
    number of raster samples can be inferred from the depth/stencil
    attachments. But if it is enabled, RASTER_SAMPLES_EXT must equal the
    number of depth/stencil samples.
Fizz
  • 3,927
  • 20
  • 45