diff options
| author | Laszlo Agocs <laszlo.agocs@qt.io> | 2022-08-15 18:27:16 +0200 |
|---|---|---|
| committer | Laszlo Agocs <laszlo.agocs@qt.io> | 2022-08-16 18:08:38 +0200 |
| commit | 878328c6ab0367b7e7c1762d7f495b2c00c32496 (patch) | |
| tree | 2d9591ad01ed3b3867c122da6d35decf1ec0b71f /src/plugins/platforms/wasm/qwasmwindowstack.cpp | |
| parent | b90fd5f707eec4766542989decd0ba8e0a2aaeb9 (diff) | |
rhi: Enhance internal docs about buffer and image load/store
Comparing the backends revealed that one cannot expect that
exposing a storage buffer or a texture to a shader with
bufferLoad, imageLoad, bufferStore, imageStore, etc. will
always be functional in any graphics and compute pipeline
stage. In fact the only place where this is universally
supported are compute shaders.
In other shaders some backends will not expose the resources
at all, e.g. because in D3D11 unordered access views (for a
buffer or image used with load/store) have limitations on the
API level, whereas others may have runtime limits, e.g. with
OpenGL ES an implementation may just say
GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS is 0 meaning no SSBOs in
vertex shaders. (apparently the case on some embedded GPUs,
presumably due to the tiled architecture, e.g. on Mali)
So for now add a note to all the relevant
QRhiShaderResourceBinding functions.
It should be possible to make it work with fragment shaders
to a degree at least, but for D3D we then have to deal with
OMSetRenderTargetsAndUnorderedAccessViews and some remapping
of binding points, whereas elsewhere they may be issues with
missing or incorrect barriers. So do not go there now.
Change-Id: Ib18949e0184626a9abf5bb72c6ef72bc1cb2e1fa
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
Diffstat (limited to 'src/plugins/platforms/wasm/qwasmwindowstack.cpp')
0 files changed, 0 insertions, 0 deletions
