Lines Matching defs:member

169     void applySpirvDecorate(const glslang::TType& type, spv::Id id, std::optional<int> member);
170 bool filterMember(const glslang::TType& member);
227 void addMeshNVDecoration(spv::Id id, int member, const glslang::TQualifier & qualifier);
649 // just declaring a struct member variable with it. This is true for PointSize,
690 // These *Distance capabilities logically belong here, but if the member is declared and
2048 // Only looking at structures if they have at least one member.
2249 // This may be, e.g., an anonymous block-member selection, which generally need
2538 // SPV wants "block" and member number as the operands, go get them.
2554 unsigned int member = node->getOperand()->getAsBinaryNode()->getRight()->getAsConstantUnion()
2556 length = builder.createArrayLength(builder.accessChainGetLValue(), member);
4711 // Apply SPIR-V decorations to the SPIR-V object (provided by SPIR-V ID). If member index is provided, the
4712 // decorations are applied to this member.
4713 void TGlslangToSpvTraverser::applySpirvDecorate(const glslang::TType& type, spv::Id id, std::optional<int> member)
4724 if (member.has_value())
4725 builder.addMemberDecoration(id, *member, static_cast<spv::Decoration>(decorate.first), literals);
4729 if (member.has_value())
4730 builder.addMemberDecoration(id, *member, static_cast<spv::Decoration>(decorate.first));
4737 if (member.has_value()) {
4762 if (member.has_value())
4763 builder.addMemberDecoration(id, *member, static_cast<spv::Decoration>(decorateString.first), strings);
4773 bool TGlslangToSpvTraverser::filterMember(const glslang::TType& member)
4777 if (member.getFieldName() == "gl_SecondaryViewportMaskNV" &&
4780 if (member.getFieldName() == "gl_SecondaryPositionNV" &&
4785 if (member.getFieldName() == "gl_PrimitiveShadingRateEXT" &&
4791 if (member.getFieldName() == "gl_ViewportMask" &&
4794 if (member.getFieldName() == "gl_PositionPerViewNV" &&
4797 if (member.getFieldName() == "gl_ViewportMaskPerViewNV" &&
4815 int memberDelta = 0; // how much the member's index changes from glslang to SPIR-V, normally 0,
4851 // Create the member type.
4904 int member = i;
4906 member = memberRemapper[glslangTypeToIdMap[glslangMembers]][i];
4915 // using -1 above to indicate a hidden member
4916 if (member < 0)
4919 builder.addMemberName(spvType, member, glslangMember.getFieldName().c_str());
4920 builder.addMemberDecoration(spvType, member,
4922 builder.addMemberDecoration(spvType, member, TranslatePrecisionDecoration(glslangMember));
4929 builder.addMemberDecoration(spvType, member, TranslateInterpolationDecoration(memberQualifier));
4930 builder.addMemberDecoration(spvType, member, TranslateAuxiliaryStorageDecoration(memberQualifier));
4931 addMeshNVDecoration(spvType, member, memberQualifier);
4934 builder.addMemberDecoration(spvType, member, TranslateInvariantDecoration(memberQualifier));
4942 builder.addMemberDecoration(spvType, member, memory[i]);
4946 // just track whether a member needs to be decorated.
4947 // Ignore member locations if the container is an array, as that's
4950 builder.addMemberDecoration(spvType, member, spv::DecorationLocation, memberQualifier.layoutLocation);
4954 builder.addMemberDecoration(spvType, member, spv::DecorationComponent,
4957 builder.addMemberDecoration(spvType, member, spv::DecorationOffset,
4964 builder.addMemberDecoration(spvType, member, spv::DecorationOffset, offset);
4969 builder.addMemberDecoration(spvType, member, spv::DecorationMatrixStride,
4975 builder.addMemberDecoration(spvType, member, spv::DecorationBuiltIn, (int)builtIn);
4978 builder.addMemberDecoration(spvType, member, TranslateNonUniformDecoration(glslangMember.getQualifier()));
4982 builder.addMemberDecoration(spvType, member, (spv::Decoration)spv::DecorationHlslSemanticGOOGLE,
4989 builder.addMemberDecoration(spvType, member, (spv::Decoration)spv::DecorationViewportRelativeNV);
4994 builder.addMemberDecoration(spvType, member,
5002 builder.addMemberDecoration(spvType, member, (spv::Decoration)spv::DecorationPassthroughNV);
5009 applySpirvDecorate(glslangMember, spvType, member);
5146 // SPIR-V types, like a struct that is used in a member-undecorated way as well
5147 // as in a member-decorated way.
5171 // where the two types were the same type in GLSL. This requires member
5172 // by member copy, recursively.
5193 // get the source member
5202 // store the member
5213 // get the source member
5223 // store the member
5269 // when used as a member of an interface block
5285 // Given a member type of a struct, realign the current offset for it, and compute
5286 // the next (not yet aligned) offset for the next member, which will get aligned
5290 // -1 means a non-forced member offset (no decoration needed).
5338 // Bump up to member alignment
9495 addMeshNVDecoration(id, /*member*/ -1, symbol->getType().getQualifier());
9641 // add per-primitive, per-view. per-task decorations to a struct member (member >= 0) or an object
9642 void TGlslangToSpvTraverser::addMeshNVDecoration(spv::Id id, int member, const glslang::TQualifier& qualifier)
9647 if (member >= 0) {
9660 builder.addMemberDecoration(id, (unsigned)member, spv::DecorationPerPrimitiveNV);
9663 builder.addMemberDecoration(id, (unsigned)member, spv::DecorationPerViewNV);
9665 builder.addMemberDecoration(id, (unsigned)member, spv::DecorationPerTaskNV);