Fix an issue of spirv_by_reference
When using this qualifier for a parameter, we make it as a pointer. However, the function TranslateStorageClass() is therefore called and the storage class should only be set to Function when it is invoked to translate parameter types rather than actual argument types.
This commit is contained in:
parent
7a0b9b212c
commit
fe54126c05
2 changed files with 14 additions and 12 deletions
|
|
@ -1256,8 +1256,10 @@ spv::StorageClass TGlslangToSpvTraverser::TranslateStorageClass(const glslang::T
|
|||
if (type.getBasicType() == glslang::EbtRayQuery)
|
||||
return spv::StorageClassPrivate;
|
||||
#ifndef GLSLANG_WEB
|
||||
if (type.getQualifier().isSpirvByReference())
|
||||
return spv::StorageClassFunction;
|
||||
if (type.getQualifier().isSpirvByReference()) {
|
||||
if (type.getQualifier().isParamInput() || type.getQualifier().isParamOutput())
|
||||
return spv::StorageClassFunction;
|
||||
}
|
||||
#endif
|
||||
if (type.getQualifier().isPipeInput())
|
||||
return spv::StorageClassInput;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue