summaryrefslogtreecommitdiffstats
path: root/src/gui/rhi/qrhid3d11.cpp
diff options
context:
space:
mode:
authorLaszlo Agocs <laszlo.agocs@qt.io>2021-02-03 18:07:47 +0100
committerLaszlo Agocs <laszlo.agocs@qt.io>2021-03-30 16:43:35 +0200
commit7ccd2d02463f8076631bc45e5bf1386c61037dc7 (patch)
tree02614d53f737f1c4aa56549221262d43e3cbc2fc /src/gui/rhi/qrhid3d11.cpp
parent5ce367a55224c862c11aaf5945ddf7bd3c934600 (diff)
rhi: Add support for custom bytes-per-line for uncompressed raw data
Fixes: QTBUG-90770 Change-Id: Icba328c417bcce256e7b44f1d540af7f8e83376b Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Christian Strømme <christian.stromme@qt.io>
Diffstat (limited to 'src/gui/rhi/qrhid3d11.cpp')
-rw-r--r--src/gui/rhi/qrhid3d11.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/gui/rhi/qrhid3d11.cpp b/src/gui/rhi/qrhid3d11.cpp
index 3e0ba0820b..addb058d4d 100644
--- a/src/gui/rhi/qrhid3d11.cpp
+++ b/src/gui/rhi/qrhid3d11.cpp
@@ -542,6 +542,8 @@ bool QRhiD3D11::isFeatureSupported(QRhi::Feature feature) const
return true;
case QRhi::PipelineCacheDataLoadSave:
return false;
+ case QRhi::ImageDataStride:
+ return true;
default:
Q_UNREACHABLE();
return false;
@@ -1401,7 +1403,10 @@ void QRhiD3D11::enqueueSubresUpload(QD3D11Texture *texD, QD3D11CommandBuffer *cb
const QSize size = subresDesc.sourceSize().isEmpty() ? q->sizeForMipLevel(level, texD->m_pixelSize)
: subresDesc.sourceSize();
quint32 bpl = 0;
- textureFormatInfo(texD->m_format, size, &bpl, nullptr);
+ if (subresDesc.dataStride())
+ bpl = subresDesc.dataStride();
+ else
+ textureFormatInfo(texD->m_format, size, &bpl, nullptr, nullptr);
box.left = UINT(dp.x());
box.top = UINT(dp.y());
box.right = UINT(dp.x() + size.width());
@@ -1577,7 +1582,7 @@ void QRhiD3D11::enqueueResourceUpdates(QRhiCommandBuffer *cb, QRhiResourceUpdate
}
quint32 byteSize = 0;
quint32 bpl = 0;
- textureFormatInfo(format, pixelSize, &bpl, &byteSize);
+ textureFormatInfo(format, pixelSize, &bpl, &byteSize, nullptr);
D3D11_TEXTURE2D_DESC desc;
memset(&desc, 0, sizeof(desc));