Lines Matching refs:css

478 	std::stringstream	css;
479 css << "#version 450 core\n";
480 css << "#pragma use_vulkan_memory_model\n";
481 css <<
498 css << "#pragma use_variable_pointers\n";
533 css << "const int workgroupsX = " << m_data.workgroupsX << ";\n";
534 css << "const uvec2 subgroupsPerWG = uvec2(" << m_data.subgroupsPerWorkgroupX << ", " << m_data.subgroupsPerWorkgroupY << ");\n";
538 css << "layout(buffer_reference) buffer InputA { " << typeStrA << " x[]; };\n";
539 css << "layout(buffer_reference) buffer InputB { " << typeStrB << " x[]; };\n";
540 css << "layout(buffer_reference) buffer InputC { " << typeStrC << " x[]; };\n";
541 css << "layout(buffer_reference) buffer Output { " << typeStrO << " x[]; };\n";
542 css << "layout(set=0, binding=4) buffer Params { InputA inputA; InputB inputB; InputC inputC; Output outputO; } params;\n";
546 css << "layout(set=0, binding=0) coherent buffer InputA { " << typeStrA << " x[]; } inputA;\n";
547 css << "layout(set=0, binding=1) coherent buffer InputB { " << typeStrB << " x[]; } inputB;\n";
548 css << "layout(set=0, binding=2) coherent buffer InputC { " << typeStrC << " x[]; } inputC;\n";
549 css << "layout(set=0, binding=3) coherent buffer Output { " << typeStrO << " x[]; } outputO;\n";
554 css << "shared " << typeStrA << " sharedA[" << dims[0].rows << " * " << dims[0].cols << " * subgroupsPerWG.x * subgroupsPerWG.y];\n";
555 css << "shared " << typeStrB << " sharedB[" << dims[1].rows << " * " << dims[1].cols << " * subgroupsPerWG.x * subgroupsPerWG.y];\n";
556 css << "shared " << typeStrC << " sharedC[" << dims[2].rows << " * " << dims[2].cols << " * subgroupsPerWG.x * subgroupsPerWG.y];\n";
557 css << "shared " << typeStrO << " sharedO[" << dims[3].rows << " * " << dims[3].cols << " * subgroupsPerWG.x * subgroupsPerWG.y];\n";
587 css << matAType.str() << " matA;\n";
588 css << matBType.str() << " matB;\n";
589 css << matCType.str() << " matC;\n";
590 css << outputMatType.str() << " matO;\n";
593 css << "const " << outputMatType.str() << " matConst = " << outputMatType.str() << "(1.0);\n";
596 css << matAType.str() << " f(" << matAType.str() << " m) { return -m; }\n";
598 css <<
607 css << " InputA inputA = params.inputA;\n";
608 css << " InputB inputB = params.inputB;\n";
609 css << " InputC inputC = params.inputC;\n";
610 css << " Output outputO = params.outputO;\n";
621 css << " uint element0 = " << strides[0] << " * " << (m_data.colMajor ? dims[0].cols : dims[0].rows) << " * matrixID.y + " << (m_data.colMajor ? dims[0].rows : dims[0].cols) << " * matrixID.x;\n"
646 css << " elementS" << m << " = " << sharedStride << " * " << (m_data.colMajor ? dims[m].cols : dims[m].rows) << " * subgroupXY.y + " << (m_data.colMajor ? dims[m].rows : dims[m].cols) << " * subgroupXY.x;\n";
648 css << " if (subgroupElect()) {\n";
653 css << " for (int i = 0; i < " << dims[m].rows << "; ++i) {\n"
662 css << " }\n";
663 css << " controlBarrier(gl_ScopeSubgroup, gl_ScopeSubgroup, gl_StorageSemanticsShared, gl_SemanticsAcquireRelease);\n";
677 css << " coopMatLoad" << suffix << "(matA, sharedA, elementS0, " << loadStrides[0] << ", " << colMajor << ");\n"
683 css << " coopMatLoad" << suffix << "(matA, inputA.x, element0, " << loadStrides[0] << ", " << colMajor << ");\n"
691 css << " " << matAType.str() << " matAArr[2];\n matAArr[1] = matA; matAArr[0] = " << matAType.str() << "(0.0);\n"
703 css << " matO = " << outputMatType.str() << "(matO.length());\n";
706 css << " matO = matConst;\n";
709 css << " matO = " << outputMatType.str() << "(matA);\n";
712 css << " " << matAType.str() << " t = " << matAType.str() << "(matB[0]);\n"
720 css << " for (int i = 1; i < matA.length(); ++i) {\n"
729 css << " for (int i = 0; i < matA.length(); ++i) {\n"
734 css << " matO = matA + matB;\n";
737 css << " matO = matA - matB;\n";
740 css << " matO = matA / matB;\n";
743 css << " matO = matA * matB;\n";
746 css << " matO = -matA;\n";
749 css << " matO = f(matA);\n";
752 css << " matO = (" << typeStrA << "(2.0)*matA)*" << typeStrA << "(3.0);\n";
758 css << " matO = coopMatMulAdd" << suffix << "(matA, matB, matC" << sat << ");\n";
761 css << " matOArr[1] = coopMatMulAdd" << suffix << "(matAArr[1], matBArr[1], matCArr[1]);\n";
768 css << " matOArr[0] = " << outputMatType.str() << "(0.0);\n";
769 css << " matO = matOArr[1];\n";
775 css << " coopMatStore" << suffix << "(matO, sharedO, elementS3, " << sharedStride << ", " << colMajor << ");\n";
776 css << " controlBarrier(gl_ScopeSubgroup, gl_ScopeSubgroup, gl_StorageSemanticsShared, gl_SemanticsAcquireRelease);\n";
777 css << " if (subgroupElect()) {\n";
778 css << " for (int i = 0; i < " << dims[3].rows << "; ++i) {\n"
785 css << " }\n";
789 css << " coopMatStore" << suffix << "(matO, outputO.x, element3, " << strides[3] << ", " << colMajor << ");\n";
792 css <<
797 programCollection.glslSources.add("test") << glu::ComputeSource(css.str()) << buildOptions;