DirectX 11: Sooner than You Think


Recommended Posts

While most of the attention at Nvision 2008 seemed to revolve around the LAN party, professional gaming tournaments, booth babes, and interesting games and applications, there was also a professional development conference going on.

Most of the action revolved around CUDA (compute unified device architecture), Nvidia's technology for using GPUs in massively parallel applications. However, Kev Gee of Microsoft showed up and gave a quick one-hour overview on Microsoft's upcoming DirectX 11?in particular, Direct3D.

Given the brief time, Gee had to compress a lot of information into an hour, but we came away with a better understanding of what DirectX 11 will bring to the table. In some ways, it's not as radical a change as DirectX 10 was. But it does introduce some important features. What follows is based on Kev Gee's talk at Nvision 2008. Since DirectX 11 is a work in progress, some of these bits of information could change before release.Building on DirectX 10b>

DirectX 10 only works with Windows Vista, and offered no backward compatibility with Windows XP. Microsoft cites the fundamental change of display driver model in Vista as a requirement for DX10. DirectX 11 will also work with Vista, but is also targeted to work with Windows 7, the working title for Microsoft's next operating system release. (Windows 7 is expected to use a fundamentally similar display driver model to Vista, if not exactly the same.)

Let's take a look at the DirectX 11 pipeline.

0,1425,i=219042,00.jpg

There are three new stages in the standard graphics pipeline: the Hull Shader, Tessellator, and Domain Shader. In addition, changes have been made to the pixel shader to enable compute shaders (for general purpose applications). We'll touch on those shortly.

In addition to the new pipeline stages, DirectX is being tweaked to fully support multithreading. So DirectX 11 DLLs will spawn threads as appropriate on multicore and SMT-enabled CPUs.

Another key new feature are several new texture compression formats, which enable better image quality, and will support high dynamic range. Again, we'll touch on this in more detail a bit later.

A host of lesser features are also being implemented; most don't require new hardware. They include upping the resource limit to 2GB, increasing texture limits to 16K and support for double-precision floating point (this last one is optional, and is aimed at compute shaders).

Now let's drill down on some of the features.Hardware Tessellationb>

One of the key goals for DirectX 11 is to enable more robust character authoring, while reducing the time to create complex and realistic characters. The trend has been to build characters with dense triangle meshes, then reduce the complexity depending on the target platform.

This creates a problem: The end result doesn't really jibe with the artist's conception.

Artists and game designers have been pushing for characters with denser triangle meshes, which enable more detailed characters. Animation complexity is also increasing. The net result is fewer pointy heads and moonwalking characters.

More detailed characters with increasingly complex animation eats into memory and storage requirements. This results in bandwidth issues?load times increase, and memory demands on graphics cards go up.

The answer is to use the power of the GPU to generate this additional complexity?hardware tessellation. Industry watchers were a little disappointed that hardware tessellation didn't make it into DX10, but it will be fully implemented in DX11. Note that this is the one feature that absolutely requires DirectX 11 hardware. When Gee was asked if the hardware tessellator currently built into AMD Radeon HD series GPUs would support DX11 tessellation, the answer was "No."

Gee went on to explain that DX11 tessellation was more robust and general than the solution built into current AMD GPUs. The AMD hardware uses essentially the same as the tessellation unit in the Xbox 360; DX11 tessellation is a superset of the AMD approach.

The hull shader takes control points for a patch as an input. Note that this is the first appearance of patch-based data used in DirectX. The output of the hull shader essentially tells the tessellator stage how much to tessellate. The tessellator itself is a fixed function unit, taking the outputs from the hull shader and generating the added geometry. The domain shader calculates the vertex positions from the tessellation data, which is passed to the geometry shader.

It's important to recognize that the key primitive used in the tessellator is no longer a triangle: It's a patch. A patch represents a curve or region, and can be represented by a triangle, but the more common representation is a quad, used in many 3D authoring applications.

What all this means is that fully compliant DirectX 11 hardware can procedurally generate complex geometry out of relatively sparse data sets, improving bandwidth and storage requirements. This also affects animation, as changes in the control points of the patch can affect the final output in each frame.

The cool thing about hardware tessellation is that it's scalable. It's possible that low end hardware would simply generate less complex models than high-end hardware, while the actual data fed into the GPUs remains the sCompute Shaderer

Nvidia and AMD have been pushing GP-GPU for several years now; the 8 series GPUs actually had hardware in place to better enable Nvidia GPUs to act as general purpose compute engines; the latest 200 series GPUs expands on that.

Companies are sitting up and taking notice of the performance gains possible in certain classes of applications when using the highly parallel computer engines that are part of a modern GPU. Apple is working with the Khronos Group on OpenCL, a standards-based method for general purpose GPU computing, modeled on OpenGL. AMD's Stream SDK enables GP-GPU support for Radeon HD series hardware, across multiple operating systems. Nvidia is probably the furthest along, with its CUDA technology; a host of applications using CUDA is starting to emerge.

DirectX 11 weighs in with compute shaders. The compute shader uses the resources of the GPU to perform post-processing chores, such as blur effects. This required adding syntax and constructs to the DirectX HLSL (high level shading language). The graphics pipeline can now generate data structures that are better suited to general purpose applications, which then can be operated on by the compute shader.

Note that the diagram doesn't imply that the compute shader is somehow part of the pixel shader. Rather, it's a shader that can take output from the graphics pipeline, after that data has passed through the pixel shader.

It's great that Microsoft is implementing compute shaders in DirectX. Once DX11 ships, GPU programmers will have a full array of tools to support general purpose applications on the GPU:

  • CUDA on Windows, MacOS, and Linux on Nvidia GPUs and Intel (and presumably AMD) CPUs
  • Stream SDK for AMD GPUs and CPUs on Windows and Linux
  • OpenCL on MacOS (and possibly other OSes) on both Nvidia and AMD
  • DirectX 11 compute shaders on both Nvidia and ATI GPUs and, presumably, Intel and AMD CPUs in Windows.

Windows and Mac OS programmers in particular won't have to choose which hardware they'll run on; the respective GP-GPU API will generalize support. It's likely that OpenCL will also show up on open source platforms (BSD and Linux) as well. At that point, the future for CUDA and Stream SDK may be limited to vertical applications requiring "closer to the metal" performaMultithreading and Dynamic Shader Linkagege

Multithreading is a hot topic. Today, dual core CPUs are mainstream, and if Intel's announcement of the Q8300 quad core CPU, a future where four cores become mainstream isn't that far off.

Both AMD and Nvidia have built better multithreading support into their respective graphics drivers, but the majority of DirectX is still single threaded. Microsoft will rectify this shortfall in DX11, and those benefits will even accrue to applications running on DirectX 10 hardware.

Multithreading support will include asynchronous resource loading, which can actually happen while rendering threads are executing. Draw and state submission will also be threaded, which will allow rendering work to be spread out across multiple threads.

To facilitate all this, DirectX 11 devices are split into device, immediate context, and deferred context interfaces. The immediate context is the current device for state and drawing, while the deferred context is the per-thread device contexts for future renders. Each device interface can spawn thread resources as needed. The deferred context has support for a type of display list per object. Note that the rendering is actually deferred?this is not the same as drawing to a back buffer and flipping. Rather, each deferred context holds the display list (draw calls) ready for rendering when appropDynamic Shader Linkagekage

Shader linkage is just another step along the way to make DirectX a more flexible and general purpose compute environment. Today, if multiple shaders need to be invoked, a large "uber shader" is created. This contains all the conditional statements needed to invoke whichever individual shader may be needed for a particular situation.

The problem is that this can create huge, unwieldy shaders that are difficult to debug. They also make less efficient usage of available hardware resources.

Microsoft's solution is to introduce object oriented features to the HLSL?interfaces and classes. This lets graphics programmers create shaders that behave like subroutines that are only loaded whenImproved Texture Compression and Hardware Supportupport

Today's DirectX texture compression is showing its age. When multiple textures are decompressed and displayed, the results are often blocky looking textures, even when the textures themselves are high resolution. On top of that, there's no support for compression of high dynamic range textures.

DirectX 11 introduces two new texture formats, BC6 (sometimes called BC6H) and BC7. BC6 supports HDR textures with 6:1 lossy compression (16 bits per channel.) This allows for high visual quality, but it's not lossless.

BC7 works with LDR (low dynamic range) formats, and can include alpha. It offers 3:1 compression for RGB or 4:1 for RGB + alpha. Visual quality should be very high with this format.

Microsoft will now require that DX11 hardware decompress textures in such a way to be completely accurate with the DX11 spec. Currently, there's some room for "interpretation" in the way that DX10 and below hardware handles texture decompression.

The block types are designed to offer smoother gradients and much less blocky Support for DirectX 10 Hardwarerdware

Quite a few features?with the exception of hardware tessellation?will be supported on DX10 hardware. Of course, DX10 hardware will continue to run games and apps in DX10 mode. But unlike DX10, which only runs on DX10-compliant hardware, elements of DX11-specific features will also run on DX10 hardware.

Multithreading will work, although deferred contexts will have to be implemented at the API (software) level rather than in the hardware. The object oriented features added should also work, though how efficiently is anyone's guess. The new texture compression formats could be implemented at the driver level, though that would be slower than dedicatSooner Than You Think You Think

While the final bits for DirectX 11 are targeted to ship with the first version of Windows 7, Microsoft will be delivering a preview version of the API as early as November, 2008. At that time, we'll have a better gauge of which features will actually make the cut. But we won't get a full picture until the Windows 7 timeframe, which is likely to be sometime in 2010 (though betas may appear in 2009).

Source: ExtremeTech

Link to comment
https://www.neowin.net/forum/topic/665084-directx-11-sooner-than-you-think/
Share on other sites

Sooner than I think? "While the final bits for DirectX 11 are targeted to ship with the first version of Windows 7" Funny, I thought it was coming with Windows 7.

That goes with the last thing I had heard as well. I really want them to take their time on this one and make sure its features are utilized.

Sooner than I think? "While the final bits for DirectX 11 are targeted to ship with the first version of Windows 7" Funny, I thought it was coming with Windows 7.

"Microsoft will be delivering a preview version of the API as early as November, 2008. At that time, we'll have a better gauge of which features will actually make the cut."

Sooner than I thought.

There aren't any DX10 games out there that perform as they should. If I remember correctly, DX10 was supposed to bring improved image quality and performance at the same time. I'm pretty sure DX11 will conform to the same trend.

All of the new features sound very very interesting (at least to me). The new compression methods, tessellation, compute shaders, etc. Sounds like DX11 will be what DX10 was "supposed" to be. The multi-threadedness of DX11 should give a nice boost in performance as well. Maybe DX11 will finally show better performance than DX9 with better looking graphics.

Will we need new graphic cards? :pinch:

Most DX11 features will be backwards compatible with DX10 hardware, but it'll run slower. It won't be as good as dedicated DX11 hardware.

and be prepared to buy W7 license muhahahaha to get DX11

Directx 11 will be for vista as well because they share the same driver model, the reason dx 10 is vista only is because it is designed for the new vista model and it would take a huge overhaul of dx 10 or xp's driver model to port it to xp. That problem won't exist with windows 7 and microsoft would not be dumb enough to restrict it to 7.

Directx 11 will be for vista as well because they share the same driver model, the reason dx 10 is vista only is because it is designed for the new vista model and it would take a huge overhaul of dx 10 or xp's driver model to port it to xp. That problem won't exist with windows 7 and microsoft would not be dumb enough to restrict it to 7.

That's not really true, there was a programmer who came out with a wrapper for DX10 in which it could be ported to XP, of course MS wanted nothing to do with it...so that is why we still see DX10 for Vista.

I hope it doesn't fail at life like dx10.

So far after what over a year and a half we got a single game that performs slightly better in dx10, Assassins Creed. We were supposed to get better gfx and better performance and so far we have very slightly better gfx at the cost of generally huge performance hits.

Directx 11 will be for vista as well because they share the same driver model, the reason dx 10 is vista only is because it is designed for the new vista model and it would take a huge overhaul of dx 10 or xp's driver model to port it to xp. That problem won't exist with windows 7 and microsoft would not be dumb enough to restrict it to 7.

i know

any way if we went DX11 >>> splash more cash at Graphic card

as DX11 wont work with older card or will be slower to begin with

i would lol if ms locked out DX11 for W7 to begin with

that mean they will have the same problem as DX10

Then they would have slow uptake by devs

it is the chicken and the egg !

That's not really true, there was a programmer who came out with a wrapper for DX10 in which it could be ported to XP, of course MS wanted nothing to do with it...so that is why we still see DX10 for Vista.

The "ported" directx 10 project is crap all it does is convert directx 9 calls to direct x 10 creating much more software overhead (Which is what directx 10 is supposed to eliminate) and some things directx 10 does just can't work with this method. There is no dx 10 for xp. Period.

The only way you're going to have DirectX 10 (or 11) on an old OS like XP, is to emulate the calls that can't be done on hardware, and translate the ones that can be done.

As you'd expect, this isn't fast.

yea

emulation = slower in the most of times

I hope it doesn't fail at life like dx10.

So far after what over a year and a half we got a single game that performs slightly better in dx10, Assassins Creed. We were supposed to get better gfx and better performance and so far we have very slightly better gfx at the cost of generally huge performance hits.

Mabye when games use DX10 natively you can actually have something to comment over. Games now does not use DX10 for what it's worth at all. It's just marketing nothing more.

Mabye when games use DX10 natively you can actually have something to comment over. Games now does not use DX10 for what it's worth at all. It's just marketing nothing more.

yeah that was kind of my whole point

when dx10 isn't worthless let me know ;)

Well, you'd have to tell the games devs to make native dx10 games first. It's not the API that's worthless in a sense. It's just that devs are always behind the API. This was the case for DX9 as well, they've had DX8.1 games for a good time till they slowly moved over to DX9.

But I think we'll see more DX10 games in 2009 once the market for them is big enough. Right now they just don't wanna have to code two different games to support both XP and Vista.

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • Zero tolerance for antisemitic social media posts. Thousands of arrests and fines.
    • It's not about the kids, it's about de-anonymizing the entire internet to punish people for wrongthink. The only way to ban kids, is to demand ID from everyone, a digital ID if you will.
    • QuickView 6.8.1 by Razvan Serea QuickView is the fastest image viewer for Windows, designed to open all your photos instantly. It supports popular formats like WebP, AVIF, JPEG XL, PNG, JPEG, TIFF, RAW, and PSD, making it perfect for photographers, designers, and everyday users. With lightning-fast load times and zero-lag previews, QuickView handles everything from small icons to massive 8K images effortlessly. Drag and drop files to view them instantly, zoom and pan smoothly, and enjoy a clutter-free interface built for speed and simplicity. QuickView also makes managing and analyzing images easy. You can preview thousands of photos instantly, view real-time color and brightness, and check image details without slowing down your computer. It automatically fixes common file issues and works perfectly offline, so your images stay private. QuickView supports multiple languages, is portable, and requires no installation. QuickView key features: Blazing Fast Loading – Open images instantly with zero lag. Modern Format Support – View WebP, AVIF, JPEG XL, and more. RAW File Ready – Handle photos from all major cameras effortlessly. Classic Format Friendly – Supports PSD, PNG, JPEG, TIFF, and BMP. Drag-and-Drop Convenience – Open files instantly without menus. Multilingual Interface – Works in English, Chinese, Japanese, German, Spanish, and Russian. Portable & Lightweight – Single executable, no installation required. Mass Image Preview – Instantly view thousands of images with HUD Photo Wall. Real-Time Color Tools – RGB histograms and color analysis overlays. Accurate Metadata – View EXIF and file information instantly. Smart File Fixes – Automatically repair incorrectly saved files. Fast or Full-Quality Toggle – One-click RAW preview adjustment. Smooth Navigation – Zoom, pan, and scroll without slowdowns. Privacy Focused – Fully offline operation keeps your images secure. QuickView 6.8.1 release notes: Dynamic Island, Filmstrip Gallery, Custom Hotkeys & Size Optimization QuickView v6.8.1 introduces redesigned window controls, an interactive filmstrip gallery, dual-mode slideshows, fully customizable hotkeys, and substantial binary size optimizations. Changelog: Floating 'Dynamic Island' Window Controls The window controls have been redesigned for a cleaner interface. Floating Capsule Pill (#199): Replaces traditional window controls with a floating pill-shaped widget in the top-right corner. Includes hover glow transitions. Compact Size: Reduced the size of caption buttons to maximize screen space for images. Interactive Filmstrip Gallery The filmstrip gallery has been redesigned with improved controls and animations. Top-Hover Trigger: Hover near the top edge to expand the filmstrip gallery. The trigger mode can be set to Hover, Pinned, or Disabled via the Settings menu. Auto-Centering Scroll: Selecting a thumbnail triggers a smooth scrolling animation that aligns the item to the center of the bar. Visual Refinements: Corrected visual gaps when pinned, fixed zoom anchor offsets, and restored smooth horizontal auto-scrolling. Dual-Mode Slideshow Spotlight Mode: Added a slideshow mode inspired by Picasa Spotlight, which dims the background and focuses on the active image. Normal Mode: Standard fullscreen slideshow functionality. Fully Customizable Hotkeys Custom Keyboard Mapping: Added support for completely customizing and rebinding all core keyboard shortcuts and navigation hotkeys directly within the Settings menu. UI/UX Adjustments & Window Snapping Magnetic Snapping (#90): Window borders now snap to screen edges (100% magnetic snap) when resized. Responsive Toolbar (#194): Toolbar buttons automatically hide based on the window width and active mode. Timeline Scrubbing: Implemented debounced asynchronous seeking for animated formats, providing smooth scrubbing without timeline lag. Fixed frame count and distortion issues on large GIF seeking (#197). Extended Mouse Mapping (#191): Added support for mapping multi-function mouse side buttons in settings. Archive Sorting (#193): Added an option to always sort archives by name ascending. Footprint Compression & Size Optimizations Reduced the binary size of the standalone executable by removing redundant templates and dependencies. C++ Stream Elimination: Removed dependencies, saving approximately 18.5 KB. Localization Deduplication: Consolidated localization string tables, saving 10.5 KB by preventing template duplication. Vector Icon Compression: Compressed static vector icon coordinates to 16-bit integers, saving 54 KB. Code Devirtualization: Replaced std::function callbacks with C-style function pointers and devirtualized core controllers to reduce overhead. LTO Debug Fix: Removed obsolete compiler flags (/MERGE:.rdata=.text) from Link-Time Optimization (LTO) builds to fix minidump crash debugging. Decoding & Memory Fixes Hybrid Allocation: Implemented a hybrid memory allocator to balance preloading and tile rendering. Access Violations: Fixed crashes when rapidly switching images. HDR in Archives: Resolved an issue where HDR images decoded from ZIP/RAR archives lost their peak luminance metadata or failed to render in float format. WebP, AVIF & JXL (#195): Fixed shadow transparency glitches in WebP/AVIF and image distortion in JPEG XL. Download: QuickView 64-bit | Portable 64-bit | ~5.0 MB (Open Source) Download: QuickView ARM64 | Portable ARM64 View: QuickView Website | Github | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • There was a Spider-Man game back in the day that had these as well. When other people played, they got gamer ads. When I played, I got ads for Visual Studio on the billboards in the city.
  • Recent Achievements

    • Conversation Starter
      NovaEdgeX earned a badge
      Conversation Starter
    • One Year In
      Console General earned a badge
      One Year In
    • One Year In
      Twozo Technologies earned a badge
      One Year In
    • One Month Later
      Twozo Technologies earned a badge
      One Month Later
    • Week One Done
      Twozo Technologies earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      521
    2. 2
      +Edouard
      186
    3. 3
      PsYcHoKiLLa
      107
    4. 4
      Steven P.
      88
    5. 5
      ATLien_0
      67
  • Tell a friend

    Love Neowin? Tell a friend!