Lines Matching refs:precision

366 		const string precision		= getShaderPrecision(m_caseShaderType);
367 const string statements = optimized ? " " + precision + " vec4 valueOrig = value;\n"
368 " " + precision + " vec4 y = sin(cos(sin(valueOrig)));\n"
371 " " + precision + " float x = 3.2*float(i) + 4.6;\n"
376 : " " + precision + " vec4 valueOrig = value;\n"
379 " " + precision + " float x = 3.2*float(i) + 4.6;\n"
380 " " + precision + " vec4 y = sin(cos(sin(valueOrig)));\n"
404 const string precision = getShaderPrecision(m_caseShaderType);
406 const string maybeFuncDefs = optimized ? "" : funcDefinitions(m_callNestingDepth, precision, expression);
415 static inline string funcDefinitions (int callNestingDepth, const string& precision, const string& expression)
417 string result = precision + " vec4 func0 (" + precision + " vec4 value) { return " + expression + "; }\n";
420 result += precision + " vec4 func" + toString(i) + " (" + precision + " vec4 v) { return func" + toString(i-1) + "(v); }\n";
450 const string precision = getShaderPrecision(m_caseShaderType);
451 const string statements = m_caseType == CASETYPE_BUILT_IN_FUNCTIONS ? builtinFunctionsCaseStatements (optimized, m_useConstantExpressionsOnly, precision, isVertexCase)
452 : m_caseType == CASETYPE_ARRAY ? arrayCaseStatements (optimized, precision, isVertexCase)
453 : m_caseType == CASETYPE_STRUCT ? structCaseStatements (optimized, m_useConstantExpressionsOnly, precision, isVertexCase)
463 static inline string builtinFunctionsCaseStatements (bool optimized, bool constantExpressionsOnly, const string& precision, bool useHeavierWorkload)
470 : " " + constMaybe + precision + " vec4 a = vec4(sin(0.7), cos(0.2), sin(0.9), abs(-0.5));\n"
471 " " + constMaybe + precision + " vec4 b = cos(a) + fract(3.0*a.xzzw);\n"
473 " " + constMaybe + precision + " vec4 d = exp(b + vec4(c));\n"
474 " " + constMaybe + precision + " vec4 e0 = inversesqrt(mix(d+a, d+b, a));\n"
475 + repeatIndexedTemplate(" " + constMaybe + precision + " vec4 e${NDX} = sin(sin(sin(sin(e${PREV_NDX}))));\n", numSinRows, "", 1) +
476 " " + constMaybe + precision + " vec4 f = abs(e" + toString(numSinRows) + ");\n" +
480 static inline string arrayCaseStatements (bool optimized, const string& precision, bool useHeavierWorkload)
487 " " + precision + " vec4 arr[arrLen];\n"
492 " " + precision + " vec4 a = (arr[0] + arr[1] + arr[2] + arr[3]) * 0.25;\n"
493 " " + precision + " vec4 b0 = cos(sin(a));\n"
494 + repeatIndexedTemplate(" " + precision + " vec4 b${NDX} = sin(sin(sin(sin(b${PREV_NDX}))));\n", numSinRows, "", 1) +
495 " " + precision + " vec4 c = abs(b" + toString(numSinRows) + ");\n" +
499 static inline string structCaseStatements (bool optimized, bool constantExpressionsOnly, const string& precision, bool useHeavierWorkload)
508 " " + precision + " vec4 a;\n"
509 " " + precision + " vec4 b;\n"
510 " " + precision + " vec4 c;\n"
511 " " + precision + " vec4 d;\n"
519 " " + constMaybe + precision + " vec4 a = (s.a + s.b + s.c + s.d) * 0.25;\n"
520 " " + constMaybe + precision + " vec4 b0 = cos(sin(a));\n"
521 + repeatIndexedTemplate(" " + constMaybe + precision + " vec4 b${NDX} = sin(sin(sin(sin(b${PREV_NDX}))));\n", numSinRows, "", 1) +
522 " " + constMaybe + precision + " vec4 c = abs(b" + toString(numSinRows) + ");\n" +
550 const string precision = getShaderPrecision(m_caseShaderType);
551 const string statements = m_caseType == CASETYPE_SINGLE_STATEMENT ? singleStatementCaseStatements (optimized, precision, isVertexCase)
552 : m_caseType == CASETYPE_MULTIPLE_STATEMENTS ? multipleStatementsCaseStatements (optimized, precision, isVertexCase)
553 : m_caseType == CASETYPE_STATIC_BRANCH ? staticBranchCaseStatements (optimized, precision, isVertexCase)
554 : m_caseType == CASETYPE_LOOP ? loopCaseStatements (optimized, precision, isVertexCase)
563 static inline string singleStatementCaseStatements (bool optimized, const string& precision, bool useHeavierWorkload)
567 return optimized ? " " + precision + " vec4 s = sin(value);\n"
568 " " + precision + " vec4 cs = cos(s);\n"
569 " " + precision + " vec4 d = fract(s + cs) + sqrt(s + exp(cs));\n"
575 static inline string multipleStatementsCaseStatements (bool optimized, const string& precision, bool useHeavierWorkload)
580 return optimized ? " " + precision + " vec4 a = sin(value) + cos(exp(value));\n"
581 " " + precision + " vec4 b = cos(cos(a));\n"
586 : repeatIndexedTemplate( " " + precision + " vec4 a${NDX} = sin(value) + cos(exp(value));\n"
587 " " + precision + " vec4 b${NDX} = cos(cos(a${NDX}));\n"
595 static inline string staticBranchCaseStatements (bool optimized, const string& precision, bool useHeavierWorkload)
602 return " " + precision + " vec4 a = sin(value) + cos(exp(value));\n"
603 " " + precision + " vec4 b = cos(a);\n"
615 result += " " + precision + " vec4 a" + toString(i) + " = sin(value) + cos(exp(value));\n"
616 " " + precision + " vec4 b" + toString(i) + " = cos(a" + toString(i) + ");\n";
639 static inline string loopCaseStatements (bool optimized, const string& precision, bool useHeavierWorkload)
643 return optimized ? " " + precision + " vec4 acc = value;\n"
650 : " " + precision + " vec4 acc0 = value;\n"
654 " " + precision + " vec4 acc1 = value;\n"
691 const string precision = getShaderPrecision(m_caseShaderType);
692 const string funcDefs = m_caseType == CASETYPE_DEAD_BRANCH_FUNC_CALL ? deadBranchFuncCallCaseFuncDefs (optimized, precision)
693 : m_caseType == CASETYPE_UNUSED_VALUE_AFTER_RETURN ? unusedValueAfterReturnCaseFuncDefs (optimized, precision, isVertexCase)
697 : m_caseType == CASETYPE_DEAD_BRANCH_COMPLEX ? deadBranchComplexCaseStatements (optimized, precision, true, isVertexCase)
698 : m_caseType == CASETYPE_DEAD_BRANCH_COMPLEX_NO_CONST ? deadBranchComplexCaseStatements (optimized, precision, false, isVertexCase)
700 : m_caseType == CASETYPE_UNUSED_VALUE_BASIC ? unusedValueBasicCaseStatements (optimized, precision, isVertexCase)
701 : m_caseType == CASETYPE_UNUSED_VALUE_LOOP ? unusedValueLoopCaseStatements (optimized, precision, isVertexCase)
702 : m_caseType == CASETYPE_UNUSED_VALUE_DEAD_BRANCH ? unusedValueDeadBranchCaseStatements (optimized, precision, isVertexCase)
704 : m_caseType == CASETYPE_UNUSED_VALUE_MUL_ZERO ? unusedValueMulZeroCaseStatements (optimized, precision, isVertexCase)
728 static inline string deadBranchComplexCaseStatements (bool optimized, const string& precision, bool useConst, bool useHeavierWorkload)
736 " " + constMaybe + precision + " vec4 a = vec4(sin(0.7), cos(0.2), sin(0.9), abs(-0.5));\n"
737 " " + constMaybe + precision + " vec4 b = cos(a) + fract(3.0*a.xzzw);\n"
739 " " + constMaybe + precision + " vec4 d = exp(b + vec4(c));\n"
740 " " + constMaybe + precision + " vec4 e = 1.8*abs(sin(sin(inversesqrt(mix(d+a, d+b, a)))));\n"
749 static inline string deadBranchFuncCallCaseFuncDefs (bool optimized, const string& precision)
751 return optimized ? "" : precision + " float func (" + precision + " float x) { return 2.0*x; }\n";
769 static inline string unusedValueBasicCaseStatements (bool optimized, const string& precision, bool useHeavierWorkload)
773 return optimized ? " " + precision + " vec4 used = vec4(0.6, 0.7, 0.8, 0.9) * value;\n"
776 : " " + precision + " vec4 used = vec4(0.6, 0.7, 0.8, 0.9) * value;\n"
777 " " + precision + " vec4 unused = cos(exp(sin(value))*log(sqrt(value))) + used;\n"
782 static inline string unusedValueLoopCaseStatements (bool optimized, const string& precision, bool useHeavierWorkload)
786 return optimized ? " " + precision + " vec4 used = vec4(0.6, 0.7, 0.8, 0.9) * value;\n"
789 : " " + precision + " vec4 used = vec4(0.6, 0.7, 0.8, 0.9) * value;\n"
790 " " + precision + " vec4 unused = cos(exp(sin(value))*log(sqrt(value)));\n"
796 static inline string unusedValueAfterReturnCaseFuncDefs (bool optimized, const string& precision, bool useHeavierWorkload)
800 return optimized ? precision + " vec4 func (" + precision + " vec4 v)\n"
802 " " + precision + " vec4 used = vec4(0.6, 0.7, 0.8, 0.9) * v;\n"
806 : precision + " vec4 func (" + precision + " vec4 v)\n"
808 " " + precision + " vec4 used = vec4(0.6, 0.7, 0.8, 0.9) * v;\n"
809 " " + precision + " vec4 unused = cos(exp(sin(v))*log(sqrt(v)));\n"
822 static inline string unusedValueDeadBranchCaseStatements (bool optimized, const string& precision, bool useHeavierWorkload)
826 return optimized ? " " + precision + " vec4 used = vec4(0.6, 0.7, 0.8, 0.9) * value;\n"
829 : " " + precision + " vec4 used = vec4(0.6, 0.7, 0.8, 0.9) * value;\n"
830 " " + precision + " vec4 unused = cos(exp(sin(value))*log(sqrt(value)));\n"
837 static inline string unusedValueMulZeroCaseStatements (bool optimized, const string& precision, bool useHeavierWorkload)
841 return optimized ? " " + precision + " vec4 used = vec4(0.6, 0.7, 0.8, 0.9) * value;\n"
844 : " " + precision + " vec4 used = vec4(0.6, 0.7, 0.8, 0.9) * value;\n"
845 " " + precision + " vec4 unused = cos(exp(sin(value))*log(sqrt(value)));\n"