Home | History | Annotate | Download | only in performance

Lines Matching refs:precision

369 		const string precision		= getShaderPrecision(m_caseShaderType);
370 const string statements = optimized ? " " + precision + " vec4 valueOrig = value;\n"
371 " " + precision + " vec4 y = sin(cos(sin(valueOrig)));\n"
374 " " + precision + " float x = 3.2*float(i) + 4.6;\n"
379 : " " + precision + " vec4 valueOrig = value;\n"
382 " " + precision + " float x = 3.2*float(i) + 4.6;\n"
383 " " + precision + " vec4 y = sin(cos(sin(valueOrig)));\n"
407 const string precision = getShaderPrecision(m_caseShaderType);
409 const string maybeFuncDefs = optimized ? "" : funcDefinitions(m_callNestingDepth, precision, expression);
418 static inline string funcDefinitions (int callNestingDepth, const string& precision, const string& expression)
420 string result = precision + " vec4 func0 (" + precision + " vec4 value) { return " + expression + "; }\n";
423 result += precision + " vec4 func" + toString(i) + " (" + precision + " vec4 v) { return func" + toString(i-1) + "(v); }\n";
452 const string precision = getShaderPrecision(m_caseShaderType);
453 const string statements = m_caseType == CASETYPE_BUILT_IN_FUNCTIONS ? builtinFunctionsCaseStatements (optimized, m_useConstantExpressionsOnly, precision, isVertexCase)
454 : m_caseType == CASETYPE_ARRAY ? arrayCaseStatements (optimized, m_useConstantExpressionsOnly, precision, isVertexCase)
455 : m_caseType == CASETYPE_STRUCT ? structCaseStatements (optimized, m_useConstantExpressionsOnly, precision, isVertexCase)
465 static inline string builtinFunctionsCaseStatements (bool optimized, bool constantExpressionsOnly, const string& precision, bool useHeavierWorkload)
472 : " " + constMaybe + precision + " vec4 a = vec4(sin(0.7), cos(0.2), sin(0.9), abs(-0.5));\n"
473 " " + constMaybe + precision + " vec4 b = cos(a) + fract(3.0*a.xzzw);\n"
475 " " + constMaybe + precision + " vec4 d = exp(b + vec4(c));\n"
476 " " + constMaybe + precision + " vec4 e0 = inversesqrt(mix(d+a, d+b, a));\n"
477 + repeatIndexedTemplate(" " + constMaybe + precision + " vec4 e${NDX} = sin(sin(sin(sin(e${PREV_NDX}))));\n", numSinRows, "", 1) +
478 " " + constMaybe + precision + " vec4 f = abs(e" + toString(numSinRows) + ");\n" +
482 static inline string arrayCaseStatements (bool optimized, bool constantExpressionsOnly, const string& precision, bool useHeavierWorkload)
491 " const " + precision + " vec4 arr[arrLen] =\n"
497 : " " + precision + " vec4 arr[arrLen];\n"
503 " " + constMaybe + precision + " vec4 a = (arr[0] + arr[1] + arr[2] + arr[3]) * (1.0 / float(arr.length()));\n"
504 " " + constMaybe + precision + " vec4 b0 = cos(sin(a));\n"
505 + repeatIndexedTemplate(" " + constMaybe + precision + " vec4 b${NDX} = sin(sin(sin(sin(b${PREV_NDX}))));\n", numSinRows, "", 1) +
506 " " + constMaybe + precision + " vec4 c = abs(b" + toString(numSinRows) + ");\n" +
510 static inline string structCaseStatements (bool optimized, bool constantExpressionsOnly, const string& precision, bool useHeavierWorkload)
519 " " + precision + " vec4 a;\n"
520 " " + precision + " vec4 b;\n"
521 " " + precision + " vec4 c;\n"
522 " " + precision + " vec4 d;\n"
530 " " + constMaybe + precision + " vec4 a = (s.a + s.b + s.c + s.d) * 0.25;\n"
531 " " + constMaybe + precision + " vec4 b0 = cos(sin(a));\n"
532 + repeatIndexedTemplate(" " + constMaybe + precision + " vec4 b${NDX} = sin(sin(sin(sin(b${PREV_NDX}))));\n", numSinRows, "", 1) +
533 " " + constMaybe + precision + " vec4 c = abs(b" + toString(numSinRows) + ");\n" +
561 const string precision = getShaderPrecision(m_caseShaderType);
562 const string statements = m_caseType == CASETYPE_SINGLE_STATEMENT ? singleStatementCaseStatements (optimized, precision, isVertexCase)
563 : m_caseType == CASETYPE_MULTIPLE_STATEMENTS ? multipleStatementsCaseStatements (optimized, precision, isVertexCase)
564 : m_caseType == CASETYPE_STATIC_BRANCH ? staticBranchCaseStatements (optimized, precision, isVertexCase)
565 : m_caseType == CASETYPE_LOOP ? loopCaseStatements (optimized, precision, isVertexCase)
574 static inline string singleStatementCaseStatements (bool optimized, const string& precision, bool useHeavierWorkload)
578 return optimized ? " " + precision + " vec4 s = sin(value);\n"
579 " " + precision + " vec4 cs = cos(s);\n"
580 " " + precision + " vec4 d = fract(s + cs) + sqrt(s + exp(cs));\n"
586 static inline string multipleStatementsCaseStatements (bool optimized, const string& precision, bool useHeavierWorkload)
591 return optimized ? " " + precision + " vec4 a = sin(value) + cos(exp(value));\n"
592 " " + precision + " vec4 b = cos(cos(a));\n"
597 : repeatIndexedTemplate( " " + precision + " vec4 a${NDX} = sin(value) + cos(exp(value));\n"
598 " " + precision + " vec4 b${NDX} = cos(cos(a${NDX}));\n"
606 static inline string staticBranchCaseStatements (bool optimized, const string& precision, bool useHeavierWorkload)
613 return " " + precision + " vec4 a = sin(value) + cos(exp(value));\n"
614 " " + precision + " vec4 b = cos(a);\n"
626 result += " " + precision + " vec4 a" + toString(i) + " = sin(value) + cos(exp(value));\n"
627 " " + precision + " vec4 b" + toString(i) + " = cos(a" + toString(i) + ");\n";
650 static inline string loopCaseStatements (bool optimized, const string& precision, bool useHeavierWorkload)
654 return optimized ? " " + precision + " vec4 acc = value;\n"
661 : " " + precision + " vec4 acc0 = value;\n"
665 " " + precision + " vec4 acc1 = value;\n"
702 const string precision = getShaderPrecision(m_caseShaderType);
703 const string funcDefs = m_caseType == CASETYPE_DEAD_BRANCH_FUNC_CALL ? deadBranchFuncCallCaseFuncDefs (optimized, precision)
704 : m_caseType == CASETYPE_UNUSED_VALUE_AFTER_RETURN ? unusedValueAfterReturnCaseFuncDefs (optimized, precision, isVertexCase)
708 : m_caseType == CASETYPE_DEAD_BRANCH_COMPLEX ? deadBranchComplexCaseStatements (optimized, precision, true, isVertexCase)
709 : m_caseType == CASETYPE_DEAD_BRANCH_COMPLEX_NO_CONST ? deadBranchComplexCaseStatements (optimized, precision, false, isVertexCase)
711 : m_caseType == CASETYPE_UNUSED_VALUE_BASIC ? unusedValueBasicCaseStatements (optimized, precision, isVertexCase)
712 : m_caseType == CASETYPE_UNUSED_VALUE_LOOP ? unusedValueLoopCaseStatements (optimized, precision, isVertexCase)
713 : m_caseType == CASETYPE_UNUSED_VALUE_DEAD_BRANCH ? unusedValueDeadBranchCaseStatements (optimized, precision, isVertexCase)
715 : m_caseType == CASETYPE_UNUSED_VALUE_MUL_ZERO ? unusedValueMulZeroCaseStatements (optimized, precision, isVertexCase)
739 static inline string deadBranchComplexCaseStatements (bool optimized, const string& precision, bool useConst, bool useHeavierWorkload)
747 " " + constMaybe + precision + " vec4 a = vec4(sin(0.7), cos(0.2), sin(0.9), abs(-0.5));\n"
748 " " + constMaybe + precision + " vec4 b = cos(a) + fract(3.0*a.xzzw);\n"
750 " " + constMaybe + precision + " vec4 d = exp(b + vec4(c));\n"
751 " " + constMaybe + precision + " vec4 e = 1.8*abs(sin(sin(inversesqrt(mix(d+a, d+b, a)))));\n"
760 static inline string deadBranchFuncCallCaseFuncDefs (bool optimized, const string& precision)
762 return optimized ? "" : precision + " float func (" + precision + " float x) { return 2.0*x; }\n";
780 static inline string unusedValueBasicCaseStatements (bool optimized, const string& precision, bool useHeavierWorkload)
784 return optimized ? " " + precision + " vec4 used = vec4(0.6, 0.7, 0.8, 0.9) * value;\n"
787 : " " + precision + " vec4 used = vec4(0.6, 0.7, 0.8, 0.9) * value;\n"
788 " " + precision + " vec4 unused = cos(exp(sin(value))*log(sqrt(value))) + used;\n"
793 static inline string unusedValueLoopCaseStatements (bool optimized, const string& precision, bool useHeavierWorkload)
797 return optimized ? " " + precision + " vec4 used = vec4(0.6, 0.7, 0.8, 0.9) * value;\n"
800 : " " + precision + " vec4 used = vec4(0.6, 0.7, 0.8, 0.9) * value;\n"
801 " " + precision + " vec4 unused = cos(exp(sin(value))*log(sqrt(value)));\n"
807 static inline string unusedValueAfterReturnCaseFuncDefs (bool optimized, const string& precision, bool useHeavierWorkload)
811 return optimized ? precision + " vec4 func (" + precision + " vec4 v)\n"
813 " " + precision + " vec4 used = vec4(0.6, 0.7, 0.8, 0.9) * v;\n"
817 : precision + " vec4 func (" + precision + " vec4 v)\n"
819 " " + precision + " vec4 used = vec4(0.6, 0.7, 0.8, 0.9) * v;\n"
820 " " + precision + " vec4 unused = cos(exp(sin(v))*log(sqrt(v)));\n"
833 static inline string unusedValueDeadBranchCaseStatements (bool optimized, const string& precision, bool useHeavierWorkload)
837 return optimized ? " " + precision + " vec4 used = vec4(0.6, 0.7, 0.8, 0.9) * value;\n"
840 : " " + precision + " vec4 used = vec4(0.6, 0.7, 0.8, 0.9) * value;\n"
841 " " + precision + " vec4 unused = cos(exp(sin(value))*log(sqrt(value)));\n"
848 static inline string unusedValueMulZeroCaseStatements (bool optimized, const string& precision, bool useHeavierWorkload)
852 return optimized ? " " + precision + " vec4 used = vec4(0.6, 0.7, 0.8, 0.9) * value;\n"
855 : " " + precision + " vec4 used = vec4(0.6, 0.7, 0.8, 0.9) * value;\n"
856 " " + precision + " vec4 unused = cos(exp(sin(value))*log(sqrt(value)));\n"