aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/scenegraph/d3d12/qsgd3d12shadereffectnode.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/scenegraph/d3d12/qsgd3d12shadereffectnode.cpp')
-rw-r--r--src/plugins/scenegraph/d3d12/qsgd3d12shadereffectnode.cpp54
1 files changed, 1 insertions, 53 deletions
diff --git a/src/plugins/scenegraph/d3d12/qsgd3d12shadereffectnode.cpp b/src/plugins/scenegraph/d3d12/qsgd3d12shadereffectnode.cpp
index b4fb721a8b..1f574a9802 100644
--- a/src/plugins/scenegraph/d3d12/qsgd3d12shadereffectnode.cpp
+++ b/src/plugins/scenegraph/d3d12/qsgd3d12shadereffectnode.cpp
@@ -78,32 +78,6 @@ void QSGD3D12ShaderLinker::reset(const QByteArray &vertBlob, const QByteArray &f
textureNameMap.clear();
}
-void QSGD3D12ShaderLinker::feedVertexInput(const QSGShaderEffectNode::ShaderData &shader)
-{
- bool foundPos = false, foundTexCoord = false;
-
- for (const auto &ip : qAsConst(shader.shaderInfo.inputParameters)) {
- if (ip.semanticName == QByteArrayLiteral("POSITION"))
- foundPos = true;
- else if (ip.semanticName == QByteArrayLiteral("TEXCOORD"))
- foundTexCoord = true;
- }
-
- if (!foundPos) {
- qWarning("ShaderEffect: No POSITION input found.");
- error = true;
- }
- if (!foundTexCoord) {
- qWarning("ShaderEffect: No TEXCOORD input found.");
- error = true;
- }
-
- // Nothing else to do here, the QSGGeometry::AttributeSet decides anyway
- // and that is already generated by QQuickShaderEffectMesh via
- // QSGGeometry::defaultAttributes_TexturedPoint2D() and has the semantics
- // so it will just work.
-}
-
void QSGD3D12ShaderLinker::feedConstants(const QSGShaderEffectNode::ShaderData &shader, const QSet<int> *dirtyIndices)
{
Q_ASSERT(shader.shaderInfo.variables.count() == shader.varData.count());
@@ -634,19 +608,12 @@ void QSGD3D12ShaderEffectNode::syncMaterial(SyncData *syncData)
m_material.linker.reset(vertBlob, fragBlob);
if (m_material.hasCustomVertexShader) {
- m_material.linker.feedVertexInput(*syncData->vertex.shader);
m_material.linker.feedConstants(*syncData->vertex.shader);
} else {
QSGShaderEffectNode::ShaderData defaultSD;
defaultSD.shaderInfo.blob = vertBlob;
defaultSD.shaderInfo.type = QSGGuiThreadShaderEffectManager::ShaderInfo::TypeVertex;
- QSGGuiThreadShaderEffectManager::ShaderInfo::InputParameter ip;
- ip.semanticName = QByteArrayLiteral("POSITION");
- defaultSD.shaderInfo.inputParameters.append(ip);
- ip.semanticName = QByteArrayLiteral("TEXCOORD");
- defaultSD.shaderInfo.inputParameters.append(ip);
-
// { float4x4 qt_Matrix; float qt_Opacity; } where only the matrix is used
QSGGuiThreadShaderEffectManager::ShaderInfo::Variable v;
v.name = QByteArrayLiteral("qt_Matrix");
@@ -656,10 +623,7 @@ void QSGD3D12ShaderEffectNode::syncMaterial(SyncData *syncData)
QSGShaderEffectNode::VariableData vd;
vd.specialType = QSGShaderEffectNode::VariableData::Matrix;
defaultSD.varData.append(vd);
-
defaultSD.shaderInfo.constantDataSize = (16 + 1) * sizeof(float);
-
- m_material.linker.feedVertexInput(defaultSD);
m_material.linker.feedConstants(defaultSD);
}
@@ -943,20 +907,6 @@ bool QSGD3D12GuiThreadShaderEffectManager::reflect(ShaderInfo *result)
qDebug("Shader reflection size %d type %d v%u.%u input elems %d cbuffers %d boundres %d",
result->blob.size(), result->type, major, minor, ieCount, cbufferCount, boundResCount);
- for (int i = 0; i < ieCount; ++i) {
- D3D12_SIGNATURE_PARAMETER_DESC desc;
- if (FAILED(reflector->GetInputParameterDesc(i, &desc))) {
- qWarning("D3D reflection: Failed to query input parameter %d", i);
- return false;
- }
- if (desc.SystemValueType != D3D_NAME_UNDEFINED)
- continue;
- ShaderInfo::InputParameter param;
- param.semanticName = QByteArray(desc.SemanticName);
- param.semanticIndex = desc.SemanticIndex;
- result->inputParameters.append(param);
- }
-
for (int i = 0; i < boundResCount; ++i) {
D3D12_SHADER_INPUT_BIND_DESC desc;
if (FAILED(reflector->GetResourceBindingDesc(i, &desc))) {
@@ -1036,10 +986,8 @@ bool QSGD3D12GuiThreadShaderEffectManager::reflect(ShaderInfo *result)
}
}
- if (Q_UNLIKELY(debug_shader())) {
- qDebug() << "Input:" << result->inputParameters;
+ if (Q_UNLIKELY(debug_shader()))
qDebug() << "Variables:" << result->variables << "cbuffer size" << result->constantDataSize;
- }
return true;
}