Lines Matching defs:src

947 void generateDeclaration (std::ostream& src, const BufferVar& bufferVar, int indentLevel)
951 src << "layout(" << LayoutFlagsFmt(bufferVar.getFlags() & LAYOUT_MASK) << ") ";
953 src << "layout(offset = "<<bufferVar.getOffset()<<") ";
955 src << glu::declare(bufferVar.getType(), bufferVar.getName(), indentLevel);
958 void generateDeclaration (std::ostream& src, const BufferBlock& block, int bindingPoint, bool usePhysStorageBuffer)
960 src << "layout(";
962 src << LayoutFlagsFmt(block.getFlags() & LAYOUT_MASK) << ", ";
965 src << "buffer_reference";
967 src << "binding = " << bindingPoint;
969 src << ") ";
981 src << "readonly ";
983 src << "buffer " << block.getBlockName();
984 src << "\n{\n";
988 src << Indent(1);
990 generateDeclaration(src, *varIter, 1 /* indent level */);
991 src << ";\n";
994 src << "}";
1000 src << " " << block.getInstanceName();
1002 src << "[]";
1004 src << "[" << block.getArraySize() << "]";
1010 src << ";\n";
1013 void generateImmMatrixSrc (std::ostream& src, glu::DataType basicType, int matrixStride, bool isRowMajor, bool singleCol, int colNumber, const void* valuePtr)
1021 src << glu::getDataTypeName(singleCol ? glu::getDataTypeMatrixColumnType(basicType) : basicType) << "(";
1036 src << ", ";
1038 src << de::floatToString(*((const float*)compPtr), 1);
1043 src << ")";
1046 void generateImmMatrixSrc (std::ostream& src,
1064 src << "\t" << resultVar << " = " << resultVar << " && compare_" << typeName << "(" << shaderName << "[" << colNdex << "][" << rowNdex << "], ";
1068 src << de::floatToString(*((const float*)compPtr), 1);
1069 src << ");\n";
1076 src << "\t" << resultVar << " = " << resultVar << " && compare_" << typeName << numRows << "(" << shaderName << "[" << colNdex << "], " << typeName << numRows << "(";
1081 src << de::floatToString(*((const float*)compPtr), 1);
1084 src << ", ";
1086 src << "));\n";
1090 void generateImmScalarVectorSrc (std::ostream& src, glu::DataType basicType, const void* valuePtr)
1103 src << glu::getDataTypeName(vkt::typecomputil::getPromoteType(basicType)) << "(";
1110 src << ", ";
1114 case glu::TYPE_FLOAT16: src << de::floatToString(deFloat16To32(*((const deFloat16*)compPtr)), 1); break;
1115 case glu::TYPE_FLOAT: src << de::floatToString(*((const float*)compPtr), 1); break;
1116 case glu::TYPE_INT8: src << (deUint32)*((const deInt8*)compPtr); break;
1117 case glu::TYPE_INT16: src << *((const deInt16*)compPtr); break;
1118 case glu::TYPE_INT: src << *((const int*)compPtr); break;
1119 case glu::TYPE_UINT8: src << (deUint32)*((const deUint8*)compPtr) << "u"; break;
1120 case glu::TYPE_UINT16: src << *((const deUint16*)compPtr) << "u"; break;
1121 case glu::TYPE_UINT: src << *((const deUint32*)compPtr) << "u"; break;
1122 case glu::TYPE_BOOL: src << (*((const deUint32*)compPtr) != 0u ? "true" : "false"); break;
1129 src << ")";
1211 std::ostream& src,
1228 generateCompareSrc(src, resultVar, bufferLayout, block, instanceNdx, blockPtr, bufVar, accessPath.element(elemNdx), LOAD_FULL_MATRIX);
1235 generateCompareSrc(src, resultVar, bufferLayout, block, instanceNdx, blockPtr, bufVar, accessPath.member(memberNdx), LOAD_FULL_MATRIX);
1257 generateImmMatrixSrc(src, basicType, varLayout.matrixStride, varLayout.isRowMajor, valuePtr, resultVar, typeName, shaderName);
1260 src << "\t" << resultVar << " = compare_" << typeName << "(" << shaderName << ", ";
1261 generateImmMatrixSrc (src, basicType, varLayout.matrixStride, varLayout.isRowMajor, false, -1, valuePtr);
1262 src << ") && " << resultVar << ";\n";
1272 src << "\t" << resultVar << " = compare_" << typeName << "(" << castName << "(" << shaderName << "), ";
1273 generateImmScalarVectorSrc(src, basicType, valuePtr);
1274 src << ") && " << resultVar << ";\n";
1280 void generateCompareSrc (std::ostream& src, const char* resultVar, const ShaderInterface& interface, const BufferLayout& layout, const vector<BlockDataPtr>& blockPointers, MatrixLoadFlags matrixLoadFlag)
1303 generateCompareSrc(src, resultVar, layout, block, instanceNdx, blockPtr, bufVar, glu::SubTypeAccess(bufVar.getType()), matrixLoadFlag);
1312 std::ostream& src,
1328 generateWriteSrc(src, bufferLayout, block, instanceNdx, blockPtr, bufVar, accessPath.element(elemNdx), matrixStoreFlag);
1335 generateWriteSrc(src, bufferLayout, block, instanceNdx, blockPtr, bufVar, accessPath.member(memberNdx), matrixStoreFlag);
1362 src << "\t" << shaderName << " = " << castName << "(";
1363 generateImmMatrixSrc(src, basicType, varLayout.matrixStride, varLayout.isRowMajor, false, -1, valuePtr);
1364 src << ");\n";
1371 src << "\t" << shaderName << "[" << colIdx << "]" << " = " << castName << "(";
1372 generateImmMatrixSrc(src, basicType, varLayout.matrixStride, varLayout.isRowMajor, true, colIdx, valuePtr);
1373 src << ");\n";
1383 src << "\t" << shaderName << " = " << castName << "(";
1384 generateImmScalarVectorSrc(src, basicType, valuePtr);
1385 src << ");\n";
1391 void generateWriteSrc (std::ostream& src, const ShaderInterface& interface, const BufferLayout& layout, const vector<BlockDataPtr>& blockPointers, MatrixStoreFlags matrixStoreFlag)
1414 generateWriteSrc(src, layout, block, instanceNdx, blockPtr, bufVar, glu::SubTypeAccess(bufVar.getType()), matrixStoreFlag);
1422 std::ostringstream src;
1428 src << "#version 450\n";
1431 src << "#version 310 es\n";
1434 src << "#extension GL_EXT_shader_16bit_storage : enable\n";
1435 src << "#extension GL_EXT_shader_8bit_storage : enable\n";
1436 src << "#extension GL_EXT_scalar_block_layout : enable\n";
1437 src << "#extension GL_EXT_buffer_reference : enable\n";
1438 src << "#extension GL_EXT_nonuniform_qualifier : enable\n";
1439 src << "layout(local_size_x = 1) in;\n";
1440 src << "\n";
1443 src << "layout(std140, binding = 0) buffer AcBlock { highp uint ac_numPassed; };\n\n";
1448 src << glu::declare(*structIter) << ";\n";
1454 generateDeclaration(src, block, 1 + blockNdx, usePhysStorageBuffer);
1459 src << "layout (push_constant, std430) uniform PC {\n";
1465 src << " " << block.getBlockName() << " " << block.getInstanceName();
1467 src << "[" << block.getArraySize() << "]";
1468 src << ";\n";
1471 src << "};\n";
1476 src << "\n";
1477 generateCompareFuncs(src, interface);
1479 src << "\n"
1485 generateCompareSrc(src, "allOk", interface, layout, comparePtrs, matrixLoadFlag);
1487 src << " if (allOk)\n"
1492 generateWriteSrc(src, interface, layout, writePtrs, matrixStoreFlag);
1494 src << "}\n";
1496 return src.str();