rhi: d3d11: Do not ignore firstInstance>0 when instanceCount==1

Pick-to: 6.7 6.6 6.5
Change-Id: I145c2080b914712d8629cd29eb7d228050884cbf
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
(cherry picked from commit e0f9cf13f238f0b2132bb87660e9b5ba25e7b847)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Laszlo Agocs 2024-08-30 10:45:48 +02:00 committed by Qt Cherry-pick Bot
parent 631a4285b4
commit 80012d4df3

View File

@ -2883,7 +2883,7 @@ void QRhiD3D11::executeCommandBuffer(QD3D11CommandBuffer *cbD)
break;
case QD3D11CommandBuffer::Command::Draw:
if (cmd.args.draw.ps) {
if (cmd.args.draw.instanceCount == 1)
if (cmd.args.draw.instanceCount == 1 && cmd.args.draw.firstInstance == 0)
context->Draw(cmd.args.draw.vertexCount, cmd.args.draw.firstVertex);
else
context->DrawInstanced(cmd.args.draw.vertexCount, cmd.args.draw.instanceCount,
@ -2894,7 +2894,7 @@ void QRhiD3D11::executeCommandBuffer(QD3D11CommandBuffer *cbD)
break;
case QD3D11CommandBuffer::Command::DrawIndexed:
if (cmd.args.drawIndexed.ps) {
if (cmd.args.drawIndexed.instanceCount == 1)
if (cmd.args.drawIndexed.instanceCount == 1 && cmd.args.drawIndexed.firstInstance == 0)
context->DrawIndexed(cmd.args.drawIndexed.indexCount, cmd.args.drawIndexed.firstIndex,
cmd.args.drawIndexed.vertexOffset);
else