Hallo,
I worked at the 3Dnow! - extensions last days, the results are in the
attachment.
Hope, the test_3dnow program will work now on a PII CPU, it checks
the CPU vendor string and will only test for extended features, if this
string is 'AuthenticAMD'. If other CPU vendors implement 3Dnow!
functionality next time, we'll have to add their vendor strings in the
detection routine.
There were some bugs in the transform_3dnow_XXX_perspective () routines,
I've fixed them.
I don't know, who wrote test_all_transform_functions (), in the X86
dir, but:
Thanks, good work !!
All the related code is extracted now into the file debug_xform.h, which
can be included by any file which calls a init_XXX_transforms (). Have a
look on it.
We should change the criteria, on which the test fails, since the 3Dnow!
functions produce errors up to 2e-6.
If -DDEBUG is included in the CFLAGS, test_all_transform_functions () will
be called. You can see the results in the 2nd attachment file ('out').
(If a routine fails, the indiex of the failed element are printed, then
the reference vector, the result vector and the error).
transform_3dnow_points1_XXX_masked () and
transform_3dnow_points2_XXX_masked () functions are implemented too, they
work.
Lots of fun,
holger
The code,extract in your Mesa dir
Enabling 3Dnow! extension. gl_transform_tab[0][1][MATRIX_GENERAL] passed test. gl_transform_tab[0][1][MATRIX_IDENTITY] passed test. gl_transform_tab[0][1][MATRIX_3D_NO_ROT] passed test. gl_transform_tab[0][1][MATRIX_PERSPECTIVE] passed test. gl_transform_tab[0][1][MATRIX_2D] passed test. gl_transform_tab[0][1][MATRIX_2D_NO_ROT] passed test. gl_transform_tab[0][1][MATRIX_3D] passed test. gl_transform_tab[0][2][MATRIX_GENERAL] passed test. gl_transform_tab[0][2][MATRIX_IDENTITY] passed test. gl_transform_tab[0][2][MATRIX_3D_NO_ROT] passed test. gl_transform_tab[0][2][MATRIX_PERSPECTIVE] passed test. gl_transform_tab[0][2][MATRIX_2D] passed test. gl_transform_tab[0][2][MATRIX_2D_NO_ROT] passed test. gl_transform_tab[0][2][MATRIX_3D] passed test. gl_transform_tab[0][3][MATRIX_GENERAL] passed test. gl_transform_tab[0][3][MATRIX_IDENTITY] passed test. gl_transform_tab[0][3][MATRIX_3D_NO_ROT] passed test. gl_transform_tab[0][3][MATRIX_PERSPECTIVE] passed test. gl_transform_tab[0][3][MATRIX_2D] passed test. gl_transform_tab[0][3][MATRIX_2D_NO_ROT] passed test. gl_transform_tab[0][3][MATRIX_3D] passed test. ----------------------------- (i = 1, j = 1) -5.384151 -5.384151 [diff = 0.000000e+00] -3.428857 -3.428859 [diff = -1.907349e-06] -2.995838 -2.995836 [diff = 1.907349e-06] -0.983727 -0.983728 [diff = -1.907349e-06] Mesa implementation error: gl_transform_tab[0][4][MATRIX_GENERAL] failed test Report to Mesa author. ----------------------------- gl_transform_tab[0][4][MATRIX_IDENTITY] passed test. ----------------------------- (i = 3, j = 2) -16.665134 -16.665134 [diff = 0.000000e+00] -31.985378 -31.985378 [diff = 0.000000e+00] -1.219908 -1.219907 [diff = 1.072884e-06] -0.362171 -0.362171 [diff = 0.000000e+00] Mesa implementation error: gl_transform_tab[0][4][MATRIX_3D_NO_ROT] failed test Report to Mesa author. ----------------------------- ----------------------------- (i = 51, j = 1) 4.031689 4.031689 [diff = 0.000000e+00] -0.250055 -0.250055 [diff = -2.384186e-07] 22.737007 22.737007 [diff = 0.000000e+00] -0.226403 -0.226403 [diff = 0.000000e+00] Mesa implementation error: gl_transform_tab[0][4][MATRIX_PERSPECTIVE] failed test Report to Mesa author. ----------------------------- ----------------------------- (i = 29, j = 1) 3.222141 3.222141 [diff = 0.000000e+00] 1.258845 1.258844 [diff = -1.192093e-06] 0.282581 0.282581 [diff = 0.000000e+00] 0.244781 0.244781 [diff = 0.000000e+00] Mesa implementation error: gl_transform_tab[0][4][MATRIX_2D] failed test Report to Mesa author. ----------------------------- gl_transform_tab[0][4][MATRIX_2D_NO_ROT] passed test. ----------------------------- (i = 9, j = 0) -1.027715 -1.027714 [diff = 1.072884e-06] 0.878221 0.878220 [diff = -1.192093e-07] 1.322792 1.322793 [diff = 4.768372e-07] -0.438844 -0.438844 [diff = 0.000000e+00] Mesa implementation error: gl_transform_tab[0][4][MATRIX_3D] failed test Report to Mesa author. ----------------------------- gl_transform_tab[CULL_MASK_ACTIVE][1][MATRIX_GENERAL] passed test. gl_transform_tab[CULL_MASK_ACTIVE][1][MATRIX_IDENTITY] passed test. gl_transform_tab[CULL_MASK_ACTIVE][1][MATRIX_3D_NO_ROT] passed test. gl_transform_tab[CULL_MASK_ACTIVE][1][MATRIX_PERSPECTIVE] passed test. gl_transform_tab[CULL_MASK_ACTIVE][1][MATRIX_2D] passed test. gl_transform_tab[CULL_MASK_ACTIVE][1][MATRIX_2D_NO_ROT] passed test. gl_transform_tab[CULL_MASK_ACTIVE][1][MATRIX_3D] passed test. gl_transform_tab[CULL_MASK_ACTIVE][2][MATRIX_GENERAL] passed test. gl_transform_tab[CULL_MASK_ACTIVE][2][MATRIX_IDENTITY] passed test. gl_transform_tab[CULL_MASK_ACTIVE][2][MATRIX_3D_NO_ROT] passed test. gl_transform_tab[CULL_MASK_ACTIVE][2][MATRIX_PERSPECTIVE] passed test. gl_transform_tab[CULL_MASK_ACTIVE][2][MATRIX_2D] passed test. gl_transform_tab[CULL_MASK_ACTIVE][2][MATRIX_2D_NO_ROT] passed test. gl_transform_tab[CULL_MASK_ACTIVE][2][MATRIX_3D] passed test. ----------------------------- (i = 56, j = 2) 5.177364 5.177365 [diff = 4.768372e-07] 3.481918 3.481919 [diff = 2.384186e-07] 2.058651 2.058649 [diff = -1.907349e-06] 0.277481 0.277480 [diff = -1.370907e-06] Mesa implementation error: gl_transform_tab[CULL_MASK_ACTIVE][3][MATRIX_GENERAL] failed test Report to Mesa author. ----------------------------- gl_transform_tab[CULL_MASK_ACTIVE][3][MATRIX_IDENTITY] passed test. gl_transform_tab[CULL_MASK_ACTIVE][3][MATRIX_3D_NO_ROT] passed test. ----------------------------- (i = 90, j = 0) 0.001584 0.001584 [diff = 4.470348e-08] -11.155045 -11.155045 [diff = 0.000000e+00] 49.647247 49.647243 [diff = -3.814697e-06] 0.090615 0.090615 [diff = 0.000000e+00] Mesa implementation error: gl_transform_tab[CULL_MASK_ACTIVE][3][MATRIX_PERSPECTIVE] failed test Report to Mesa author. ----------------------------- gl_transform_tab[CULL_MASK_ACTIVE][3][MATRIX_2D] passed test. gl_transform_tab[CULL_MASK_ACTIVE][3][MATRIX_2D_NO_ROT] passed test. gl_transform_tab[CULL_MASK_ACTIVE][3][MATRIX_3D] passed test. gl_transform_tab[CULL_MASK_ACTIVE][4][MATRIX_GENERAL] passed test. gl_transform_tab[CULL_MASK_ACTIVE][4][MATRIX_IDENTITY] passed test. gl_transform_tab[CULL_MASK_ACTIVE][4][MATRIX_3D_NO_ROT] passed test. gl_transform_tab[CULL_MASK_ACTIVE][4][MATRIX_PERSPECTIVE] passed test. gl_transform_tab[CULL_MASK_ACTIVE][4][MATRIX_2D] passed test. gl_transform_tab[CULL_MASK_ACTIVE][4][MATRIX_2D_NO_ROT] passed test. gl_transform_tab[CULL_MASK_ACTIVE][4][MATRIX_3D] passed test.
