Lines Matching refs:field
460 // go ahead and write all of the field types, so we don't inadvertently write them while we're
473 const Type::Field& field = type.fields()[i];
474 if (!MemoryLayout::LayoutIsSupported(*field.fType)) {
475 fContext.fErrors->error(type.fLine, "type '" + field.fType->name() +
479 size_t size = memoryLayout.size(*field.fType);
480 size_t alignment = memoryLayout.alignment(*field.fType);
481 const Layout& fieldLayout = field.fModifiers.fLayout;
485 "offset of field '" + field.fName + "' must be at "
490 "offset of field '" + field.fName + "' must be a multiple"
500 this->writeInstruction(SpvOpMemberName, resultId, i, field.fName, fNameBuffer);
502 if (field.fModifiers.fLayout.fBuiltin < 0) {
506 if (field.fType->isMatrix()) {
510 (SpvId) memoryLayout.stride(*field.fType),
513 if (!field.fType->highPrecision()) {
518 if ((field.fType->isArray() || field.fType->isStruct()) && offset % alignment != 0) {
2611 // Synthesize equality checks for each field in the struct.
2615 // Get the left and right versions of this field.
3433 // a lookup table of variables to UniformBuffer field indices.
3523 fProgram.fSymbols->add(std::make_unique<Field>(/*line=*/-1, intfVar, /*field=*/0));