These make use of the new fog feature for shader_runner. The ported tests differ slightly in that they use the non EXT version of fog_coord, and thus require GL >= 1.4
Signed-off-by: Dylan Baker <dylanx.c.ba...@intel.com> --- tests/all.py | 2 -- tests/glean/tfragprog1.cpp | 41 ----------------------------------------- tests/spec/arb_fragment_program/fog/calculated-linear.shader_test | 35 +++++++++++++++++++++++++++++++++++ tests/spec/arb_fragment_program/fog/linear.shader_test | 24 ++++++++++++++++++++++++ 4 files changed, 59 insertions(+), 43 deletions(-) create mode 100644 tests/spec/arb_fragment_program/fog/calculated-linear.shader_test create mode 100644 tests/spec/arb_fragment_program/fog/linear.shader_test diff --git a/tests/all.py b/tests/all.py index b2c41dd..84999e6 100644 --- a/tests/all.py +++ b/tests/all.py @@ -379,8 +379,6 @@ glean_fp_tests = [ 'Z-write test', 'Divide by zero test', 'Infinity and nan test', - 'ARB_fog_linear test', - 'Computed fog linear test', 'ARB_fog_exp test', 'Computed fog exp test', 'ARB_fog_exp2 test', diff --git a/tests/glean/tfragprog1.cpp b/tests/glean/tfragprog1.cpp index 9db40a4..feb6bdc 100644 --- a/tests/glean/tfragprog1.cpp +++ b/tests/glean/tfragprog1.cpp @@ -131,47 +131,6 @@ static const FragmentProgram Programs[] = { }, // ============= Fog tests ============================================ - // Linear fog -#define FOG_FACT ((FogEnd - FogCoord) / (FogEnd - FogStart)) - { - "ARB_fog_linear test", - "!!ARBfp1.0\n" - "OPTION ARB_fog_linear; \n" - "MOV result.color, fragment.color; \n" - "END \n", - { FragColor[0] * FOG_FACT + FogColor[0] * (1.0 - FOG_FACT), - FragColor[1] * FOG_FACT + FogColor[1] * (1.0 - FOG_FACT), - FragColor[2] * FOG_FACT + FogColor[2] * (1.0 - FOG_FACT), - FragColor[3] - }, - DONT_CARE_Z - }, - { - "Computed fog linear test", - "!!ARBfp1.0\n" - "# fogParams.x = density \n" - "# fogParams.y = start \n" - "# fogParams.z = end \n" - "# fogParams.w = 1/(end-start) \n" - "PARAM fogParams = state.fog.params; \n" - "ATTRIB fogCoord = fragment.fogcoord; \n" - "PARAM fogColor = state.fog.color; \n" - "TEMP numerator, f; \n" - "# f = (end - coord) / (end - start) \n" - "SUB numerator, fogParams.z, fogCoord.x; \n" - "MUL_SAT f, numerator, fogParams.w; \n" - "LRP result.color.rgb, f, fragment.color, fogColor; \n" - "MOV result.color.a, fragment.color.a; \n" - "END \n", - { FragColor[0] * FOG_FACT + FogColor[0] * (1.0 - FOG_FACT), - FragColor[1] * FOG_FACT + FogColor[1] * (1.0 - FOG_FACT), - FragColor[2] * FOG_FACT + FogColor[2] * (1.0 - FOG_FACT), - FragColor[3] - }, - DONT_CARE_Z - }, -#undef FOG_FACT - // Exp fog #define FOG_FACT 0.2231 // = exp(-Density * Coord) { diff --git a/tests/spec/arb_fragment_program/fog/calculated-linear.shader_test b/tests/spec/arb_fragment_program/fog/calculated-linear.shader_test new file mode 100644 index 0000000..73018eb --- /dev/null +++ b/tests/spec/arb_fragment_program/fog/calculated-linear.shader_test @@ -0,0 +1,35 @@ +[require] +GL >= 1.4 +GL_ARB_fragment_program + +[fragment program] +!!ARBfp1.0 +# fogParams.x = density +# fogParams.y = start +# fogParams.z = end +# fogParams.w = 1/(end-start) +PARAM fogParams = state.fog.params; +PARAM p = {0.2, 0.4, 0.6, 0.8}; +ATTRIB fogCoord = fragment.fogcoord; +PARAM fogColor = state.fog.color; +TEMP numerator, f; +# f = (end - coord) / (end - start) +SUB numerator, fogParams.z, fogCoord.x; +MUL_SAT f, numerator, fogParams.w; +LRP result.color.rgb, f, p, fogColor; +MOV result.color.a, p.a; +END + +[test] +fog start 10.0 +fog end 100.0 +fog density 0.03 +fog color (1.0, 1.0, 0.0, 0.0) +fog coord_src fog_coord +fog coord 50.0 + +clear color 0.5 0.5 0.5 0.5 +clear + +draw rect -1 -1 2 2 +probe all rgba 0.5555 0.6666 0.3333 0.8 diff --git a/tests/spec/arb_fragment_program/fog/linear.shader_test b/tests/spec/arb_fragment_program/fog/linear.shader_test new file mode 100644 index 0000000..083ecf0 --- /dev/null +++ b/tests/spec/arb_fragment_program/fog/linear.shader_test @@ -0,0 +1,24 @@ +[require] +GL >= 1.4 +GL_ARB_fragment_program + +[fragment program] +!!ARBfp1.0 +OPTION ARB_fog_linear; +PARAM color = {0.2, 0.4, 0.6, 0.8}; +MOV result.color, color; +END + +[test] +fog start 10.0 +fog end 100.0 +fog density 0.03 +fog color (1.0, 1.0, 0.0, 0.0) +fog coord_src fog_coord +fog coord 50.0 + +clear color 0.5 0.5 0.5 0.5 +clear + +draw rect -1 -1 2 2 +probe all rgba 0.5555 0.6666 0.3333 0.8 -- git-series 0.8.10 _______________________________________________ Piglit mailing list Piglit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/piglit