glsl -> SPV: fix OpVectorInsertDynamic result type bug.

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31262 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
John Kessenich 2015-05-22 00:58:41 +00:00
parent 3a13a0c71b
commit e61ed59726
2 changed files with 6 additions and 5 deletions

View File

@ -1857,8 +1857,9 @@ void Builder::accessChainStore(Id rvalue)
Id tempBaseId = createLoad(base);
source = createLvalueSwizzle(getTypeId(tempBaseId), tempBaseId, rvalue, accessChain.swizzle);
} else if (accessChain.component) {
Instruction* vectorInsert = new Instruction(getUniqueId(), getTypeId(rvalue), OpVectorInsertDynamic);
vectorInsert->addIdOperand(createLoad(base));
Id tempBaseId = createLoad(base);
Instruction* vectorInsert = new Instruction(getUniqueId(), getTypeId(tempBaseId), OpVectorInsertDynamic);
vectorInsert->addIdOperand(tempBaseId);
vectorInsert->addIdOperand(rvalue);
vectorInsert->addIdOperand(accessChain.component);
buildPoint->addInstruction(vectorInsert);

View File

@ -131,9 +131,9 @@ Linked fragment stage:
70: 48(int) VectorExtractDynamic 69 68
72: 48(int) IMul 70 71
73: 7(float) ConvertUToF 72
75: 8(fvec4) Load 66(tv4)
74: 7(float) VectorInsertDynamic 75 73 67
Store 66(tv4) 74
74: 8(fvec4) Load 66(tv4)
75: 8(fvec4) VectorInsertDynamic 74 73 67
Store 66(tv4) 75
76: 14(int) Load 60(i)
77: 14(int) IAdd 76 33
Store 60(i) 77