diff options
author | Laszlo Agocs <laszlo.agocs@qt.io> | 2016-07-01 13:08:44 +0200 |
---|---|---|
committer | Laszlo Agocs <laszlo.agocs@qt.io> | 2016-07-01 11:37:13 +0000 |
commit | aae5b6191c3e591bdb0a3a88149b842866fafbd4 (patch) | |
tree | 5e9b6171c4f37f077dbce2a44d5b8b74e92a09b3 /src/quick/doc | |
parent | 3e0763077a5ce420f42606418917ab7d87b6b763 (diff) |
D3D12: Enhance docs wrt multisample, mipmaps and textures
Change-Id: I3ca0fe9be7d2faa2381bf598686eddb7703f5597
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
Diffstat (limited to 'src/quick/doc')
-rw-r--r-- | src/quick/doc/src/concepts/visualcanvas/adaptations.qdoc | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/src/quick/doc/src/concepts/visualcanvas/adaptations.qdoc b/src/quick/doc/src/concepts/visualcanvas/adaptations.qdoc index fbbc947c4c..3053196692 100644 --- a/src/quick/doc/src/concepts/visualcanvas/adaptations.qdoc +++ b/src/quick/doc/src/concepts/visualcanvas/adaptations.qdoc @@ -204,7 +204,7 @@ impact performance (CPU load) due to increased API overhead. \section2 Render Loops By default the D3D12 adaptation uses a single-threaded render loop similar to -OpenGL's \c basic render loop. There is also a threaded variant available, that +OpenGL's \c windows render loop. There is also a threaded variant available, that can be requested by setting the \c{QSG_RENDER_LOOP} environment variable to \c threaded. However, due to conceptual limitations in DXGI, the windowing system interface, the threaded loop is prone to deadlocks when multiple QQuickWindow @@ -249,6 +249,32 @@ pre-compiled bytecode into "shaders/+hlsl/effect.frag", while simply writing See the ShaderEffect documentation for more details. +\section2 Multisample Render Targets + +The Direct3D 12 adaptation ignores the QSurfaceFormat set on the QQuickWindow +or QQuickView (or set via QSurfaceFormat::setDefaultFormat()), with one +exception: QSurfaceFormat::samples() is still taken into account. When the +value is greater than 1, multisample offscreen render targets will be created +with the specified sample count and a quality of the maximum supported quality +level. The backend automatically performs resolving into the non-multisample +swapchain buffers after each frame. + +\section2 Mipmaps + +Mipmap generation is supported and handled transparently to the applications +via a built-in compute shader, but is experimental and only supports +power-of-two images at the moment. Textures of other size will work too, but +this involves a QImage-based scaling on the CPU first. Therefore avoid enabling +mipmapping for NPOT images whenever possible. + +\section2 Image formats + +When creating textures via the C++ scenegraph APIs like +QQuickWindow::createTextureFromImage(), 32-bit formats will not involve any +conversion, they will map directly to the corresponding \c{R8G8B8A8_UNORM} or +\c{B8G8R8A8_UNORM} format. Everything else will trigger a QImage-based format +conversion on the CPU first. + \section2 Unsupported Features Particles, sprites, and other OpenGL-dependent tools like |