qt5base-lts/tests/manual/rhi
Laszlo Agocs 5eacc974c7 rhi: d3d11: Enable tessellation and geometry with some caveats
The caveat being having to manually create HLSL versions of the hull,
domain, and geometry shaders in parallel with the Vulkan GLSL ones,
while keeping the interfaces intact (stage inputs and outputs, cbuffer
layouts, binding points/registers). This is not always trivial but
typically doable in not very complicated case after inspecting the
SPIRV-Cross-generated vertex/fragment code in the .qsb files. Once
written, the HLSL files can be injected into a .qsb file with qsb -r.
or the corresponding CMake syntax. Conceptually this is no different
from how samplerExternalOES support is implemented for Multimedia.
(there the problem is that the shaders cannot be compiled to SPIR-V
to begin with, here it is that we cannot translate from SPIR-V, but
in the end the workaround for both problems is effectively the same)

The manual tests demonstrate this, both the tessellation and geometry
apps work now with D3D out of the box.

On the bright side, the implementation here in the the D3D backend of
QRhi does not need to know about how the shaders got there in the
QShader. So none of the implementation is dependent on this manual
process. If some day qsb would start translating to these kind of
shaders as well, it would all still work as-is.

Change-Id: I32d9ab94e00174e4bd5b59ac814dfedef9f93ad1
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
2022-08-15 10:51:17 +02:00
..
compressedtexture_bc1 Add license headers to cmake files 2022-08-03 17:14:55 +02:00
compressedtexture_bc1_subupload Add license headers to cmake files 2022-08-03 17:14:55 +02:00
computebuffer Add license headers to cmake files 2022-08-03 17:14:55 +02:00
computeimage Add license headers to cmake files 2022-08-03 17:14:55 +02:00
cubemap Add license headers to cmake files 2022-08-03 17:14:55 +02:00
cubemap_render Add license headers to cmake files 2022-08-03 17:14:55 +02:00
cubemap_scissor Add license headers to cmake files 2022-08-03 17:14:55 +02:00
float16texture_with_compute Add license headers to cmake files 2022-08-03 17:14:55 +02:00
floattexture Add license headers to cmake files 2022-08-03 17:14:55 +02:00
geometryshader rhi: d3d11: Enable tessellation and geometry with some caveats 2022-08-15 10:51:17 +02:00
hellominimalcrossgfxtriangle Add license headers to cmake files 2022-08-03 17:14:55 +02:00
instancing Add license headers to cmake files 2022-08-03 17:14:55 +02:00
mrt Add license headers to cmake files 2022-08-03 17:14:55 +02:00
msaarenderbuffer Add license headers to cmake files 2022-08-03 17:14:55 +02:00
msaatexture Add license headers to cmake files 2022-08-03 17:14:55 +02:00
multiwindow Add license headers to cmake files 2022-08-03 17:14:55 +02:00
multiwindow_threaded Add license headers to cmake files 2022-08-03 17:14:55 +02:00
noninstanced Add license headers to cmake files 2022-08-03 17:14:55 +02:00
offscreen Add license headers to cmake files 2022-08-03 17:14:55 +02:00
polygonmode Add license headers to cmake files 2022-08-03 17:14:55 +02:00
rhiwidget Add license headers to cmake files 2022-08-03 17:14:55 +02:00
shadowmap Add license headers to cmake files 2022-08-03 17:14:55 +02:00
shared rhi: gl: Avoid magic adjustments to the context/window format 2022-08-01 12:40:45 +02:00
tessellation rhi: d3d11: Enable tessellation and geometry with some caveats 2022-08-15 10:51:17 +02:00
tex3d Add license headers to cmake files 2022-08-03 17:14:55 +02:00
texturearray Add license headers to cmake files 2022-08-03 17:14:55 +02:00
texuploads Add license headers to cmake files 2022-08-03 17:14:55 +02:00
triquadcube Add license headers to cmake files 2022-08-03 17:14:55 +02:00
CMakeLists.txt Add license headers to cmake files 2022-08-03 17:14:55 +02:00
rhi.pro rhi: Add support for 3D textures 2021-05-31 17:16:57 +02:00