Lines Matching defs:layout
552 SpvId SPIRVCodeGenerator::getType(const Type& rawType, const MemoryLayout& layout) {
572 key += to_string((int)layout.fStd);
574 SkASSERT(layout.fStd == MemoryLayout::Standard::k140_Standard ||
575 layout.fStd == MemoryLayout::Standard::k430_Standard);
576 MemoryLayout::Standard otherStd = layout.fStd == MemoryLayout::Standard::k140_Standard
602 this->getType(type->componentType(), layout),
609 this->getType(IndexExpression::IndexType(fContext, *type), layout),
614 this->writeStruct(*type, layout, result);
623 SpvId typeId = this->getType(type->componentType(), layout);
628 (int32_t) layout.stride(*type),
635 this->getType(type->componentType(), layout),
638 (int32_t) layout.stride(*type),
646 image = this->getType(type->textureType(), layout);
662 this->getType(*fContext.fTypes.fFloat, layout),
750 SpvId SPIRVCodeGenerator::getPointerType(const Type& rawType, const MemoryLayout& layout,
753 String key = type.displayName() + "*" + to_string(layout.fStd) + to_string(storageClass);
2953 void SPIRVCodeGenerator::writeLayout(const Layout& layout, SpvId target) {
2954 if (layout.fLocation >= 0) {
2955 this->writeInstruction(SpvOpDecorate, target, SpvDecorationLocation, layout.fLocation,
2958 if (layout.fBinding >= 0) {
2959 this->writeInstruction(SpvOpDecorate, target, SpvDecorationBinding, layout.fBinding,
2962 if (layout.fIndex >= 0) {
2963 this->writeInstruction(SpvOpDecorate, target, SpvDecorationIndex, layout.fIndex,
2966 if (layout.fSet >= 0) {
2967 this->writeInstruction(SpvOpDecorate, target, SpvDecorationDescriptorSet, layout.fSet,
2970 if (layout.fInputAttachmentIndex >= 0) {
2972 layout.fInputAttachmentIndex, fDecorationBuffer);
2975 if (layout.fBuiltin >= 0 && layout.fBuiltin != SK_FRAGCOLOR_BUILTIN) {
2976 this->writeInstruction(SpvOpDecorate, target, SpvDecorationBuiltIn, layout.fBuiltin,
2981 void SPIRVCodeGenerator::writeLayout(const Layout& layout, SpvId target, int member) {
2982 if (layout.fLocation >= 0) {
2984 layout.fLocation, fDecorationBuffer);
2986 if (layout.fBinding >= 0) {
2988 layout.fBinding, fDecorationBuffer);
2990 if (layout.fIndex >= 0) {
2992 layout.fIndex, fDecorationBuffer);
2994 if (layout.fSet >= 0) {
2996 layout.fSet, fDecorationBuffer);
2998 if (layout.fInputAttachmentIndex >= 0) {
3000 layout.fInputAttachmentIndex, fDecorationBuffer);
3002 if (layout.fBuiltin >= 0) {
3004 layout.fBuiltin, fDecorationBuffer);
3074 Layout layout = intfModifiers.fLayout;
3075 if (intfModifiers.fFlags & Modifiers::kUniform_Flag && layout.fSet == -1) {
3076 layout.fSet = 0;
3078 this->writeLayout(layout, result);
3119 Layout layout = var.modifiers().fLayout;
3120 if (layout.fSet < 0 && storageClass == SpvStorageClassUniformConstant) {
3121 layout.fSet = fProgram.fConfig->fSettings.fDefaultUniformSet;
3135 this->writeLayout(layout, id);
3446 Layout layout;
3447 layout.fBinding = fProgram.fConfig->fSettings.fDefaultUniformBinding;
3448 layout.fSet = fProgram.fConfig->fSettings.fDefaultUniformSet;
3449 Modifiers modifiers{layout, Modifiers::kUniform_Flag};
3491 fContext.fErrors->error(line, "layout(binding=...) is required in SPIR-V");
3495 fContext.fErrors->error(line, "layout(set=...) is required in SPIR-V");