=?UTF-8?Q?Rico=20Sch=C3=BCller=20?=: d3dx9/tests: Add matrix column register count clamp test.

Alexandre Julliard julliard at winehq.org
Thu Sep 19 17:21:01 CDT 2013


Module: wine
Branch: master
Commit: 196766cb77976c6d3d2c3922653c278e117ddac9
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=196766cb77976c6d3d2c3922653c278e117ddac9

Author: Rico Schüller <kgbricola at web.de>
Date:   Wed Sep 18 23:16:47 2013 +0200

d3dx9/tests: Add matrix column register count clamp test.

---

 dlls/d3dx9_36/tests/shader.c |   51 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 51 insertions(+), 0 deletions(-)

diff --git a/dlls/d3dx9_36/tests/shader.c b/dlls/d3dx9_36/tests/shader.c
index d773a39..02e69af 100644
--- a/dlls/d3dx9_36/tests/shader.c
+++ b/dlls/d3dx9_36/tests/shader.c
@@ -5560,6 +5560,47 @@ static const struct registerset_test registerset_test_bigvec_float[] =
         0x42800123, 0x43200123, 0x43600123}},
 };
 
+/*
+ * fxc.exe /Tvs_3_0
+ */
+#if 0
+float4x4 cf = {1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8, 9.9, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8};
+float f = 33.33;
+float4 main(float4 pos : POSITION) : POSITION
+{
+    float4 tmp = 0;
+    tmp.y += cf._22;
+    tmp.z = f;
+    return tmp;
+}
+#endif
+static const DWORD registerset_blob_matrix_column_clamp[] =
+{
+0xfffe0300, 0x003efffe, 0x42415443, 0x0000001c, 0x000000c3, 0xfffe0300, 0x00000002, 0x0000001c,
+0x00000100, 0x000000bc, 0x00000044, 0x00000002, 0x00000002, 0x00000048, 0x00000058, 0x00000098,
+0x00020002, 0x00000001, 0x0000009c, 0x000000ac, 0xab006663, 0x00030003, 0x00040004, 0x00000001,
+0x00000000, 0x3f8ccccd, 0x40b00000, 0x411e6666, 0x3fc00000, 0x400ccccd, 0x40d33333, 0x3f99999a,
+0x3fcccccd, 0x40533333, 0x40f66666, 0x3fa66666, 0x3fd9999a, 0x408ccccd, 0x410ccccd, 0x3fb33333,
+0x3fe66666, 0xabab0066, 0x00030000, 0x00010001, 0x00000001, 0x00000000, 0x420551ec, 0x00000000,
+0x00000000, 0x00000000, 0x335f7376, 0x4d00305f, 0x6f726369, 0x74666f73, 0x29522820, 0x534c4820,
+0x6853204c, 0x72656461, 0x6d6f4320, 0x656c6970, 0x2e392072, 0x392e3932, 0x332e3235, 0x00313131,
+0x05000051, 0xa00f0003, 0x00000000, 0x3f800000, 0x00000000, 0x00000000, 0x0200001f, 0x80000000,
+0xe00f0000, 0x02000001, 0x80020000, 0xa0550001, 0x03000005, 0xe00b0000, 0x80550000, 0xa0240003,
+0x02000001, 0xe0040000, 0xa0000002, 0x0000ffff,
+};
+
+static const struct registerset_constants registerset_constants_matrix_column_clamp[] =
+{
+    {"cf", {"cf", D3DXRS_FLOAT4, 0, 2, D3DXPC_MATRIX_COLUMNS, D3DXPT_FLOAT, 4, 4, 1, 0, 64, NULL}, 0},
+    {"f", {"f", D3DXRS_FLOAT4, 2, 1, D3DXPC_SCALAR, D3DXPT_FLOAT, 1, 1, 1, 0, 4, NULL}, 0},
+};
+
+static const struct registerset_test registerset_test_matrix_column_clamp[] =
+{
+    {SetMatrix, 0, 0, 0, 8,
+        {0x40000123, 0x40c00123, 0x41200123, 0x41600123, 0x00000000, 0x40e00123, 0x41300123, 0x41700123}},
+};
+
 static const struct
 {
     const char *name;
@@ -5831,6 +5872,11 @@ registerset_data[] =
         sizeof(registerset_test_bigvec_float) / sizeof(*registerset_test_bigvec_float),
         registerset_constants_bigvec_float,
         sizeof(registerset_constants_bigvec_float) / sizeof(*registerset_constants_bigvec_float)},
+    {"cf", "cf", 0, D3DXRS_FLOAT4, registerset_blob_matrix_column_clamp,
+        registerset_test_matrix_column_clamp,
+        sizeof(registerset_test_matrix_column_clamp) / sizeof(*registerset_test_matrix_column_clamp),
+        registerset_constants_matrix_column_clamp,
+        sizeof(registerset_constants_matrix_column_clamp) / sizeof(*registerset_constants_matrix_column_clamp)},
 };
 
 static void registerset_clear(IDirect3DDevice9 *device)
@@ -6283,6 +6329,11 @@ registerset_defaults_data[] =
         {0x00000000}},
     /* DefaultValue = NULL */
     {"big vector", registerset_blob_bigvec},
+    {"matrix column clamp", registerset_blob_matrix_column_clamp, 12, 0, 0,
+        {0x3f8ccccd, 0x40b00000, 0x411e6666, 0x3fc00000, 0x400ccccd, 0x40d33333, 0x3f99999a, 0x3fcccccd,
+        0x420551ec, 0x00000000, 0x00000000, 0x00000000},
+        {0x00000000},
+        {0x00000000}},
 };
 
 static void test_registerset_defaults(void)




More information about the wine-cvs mailing list