Matteo Bruni : d3d8/tests: Port the applicable parts of the new unsupported shaders tests to d3d8.
Alexandre Julliard
julliard at wine.codeweavers.com
Thu Oct 16 09:44:21 CDT 2014
Module: wine
Branch: master
Commit: 291c4f3b65c8a0beb72c590a835285f15da22203
URL: http://source.winehq.org/git/wine.git/?a=commit;h=291c4f3b65c8a0beb72c590a835285f15da22203
Author: Matteo Bruni <mbruni at codeweavers.com>
Date: Thu Oct 16 01:32:19 2014 +0200
d3d8/tests: Port the applicable parts of the new unsupported shaders tests to d3d8.
---
dlls/d3d8/tests/device.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 50 insertions(+)
diff --git a/dlls/d3d8/tests/device.c b/dlls/d3d8/tests/device.c
index a84166c..02ec210 100644
--- a/dlls/d3d8/tests/device.c
+++ b/dlls/d3d8/tests/device.c
@@ -2855,6 +2855,7 @@ static void test_unsupported_shaders(void)
DWORD vs, ps;
HWND window;
HRESULT hr;
+ D3DCAPS8 caps;
static const DWORD vs_2_0[] =
{
@@ -2873,6 +2874,38 @@ static void test_unsupported_shaders(void)
0x02000001, 0x800f0800, 0x80e40000, /* mov oC0, r0 */
0x0000ffff /* end */
};
+#if 0
+ vs_1_1
+ dcl_position v0
+ def c255, 1.0, 1.0, 1.0, 1.0
+ add r0, v0, c255
+ mov oPos, r0
+#endif
+ static const DWORD vs_1_255[] =
+ {
+ 0xfffe0101,
+ 0x0000001f, 0x80000000, 0x900f0000,
+ 0x00000051, 0xa00f00ff, 0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000,
+ 0x00000002, 0x800f0000, 0x90e40000, 0xa0e400ff,
+ 0x00000001, 0xc00f0000, 0x80e40000,
+ 0x0000ffff
+ };
+#if 0
+ vs_1_1
+ dcl_position v0
+ def c256, 1.0, 1.0, 1.0, 1.0
+ add r0, v0, c256
+ mov oPos, r0
+#endif
+ static const DWORD vs_1_256[] =
+ {
+ 0xfffe0101,
+ 0x0000001f, 0x80000000, 0x900f0000,
+ 0x00000051, 0xa00f0100, 0x3f800000, 0x3f800000, 0x3f800000, 0x3f800000,
+ 0x00000002, 0x800f0000, 0x90e40000, 0xa0e40100,
+ 0x00000001, 0xc00f0000, 0x80e40000,
+ 0x0000ffff
+ };
static const DWORD decl[] =
{
@@ -2906,6 +2939,23 @@ static void test_unsupported_shaders(void)
hr = IDirect3DDevice8_CreatePixelShader(device, ps_2_0, &ps);
ok(hr == D3DERR_INVALIDCALL, "IDirect3DDevice8_CreatePixelShader returned %#08x\n", hr);
+ hr = IDirect3DDevice8_GetDeviceCaps(device, &caps);
+ ok(SUCCEEDED(hr), "Failed to get device caps, hr %#x.\n", hr);
+ if (caps.MaxVertexShaderConst < 256)
+ {
+ hr = IDirect3DDevice8_CreateVertexShader(device, decl, vs_1_255, &vs, 0);
+ ok(hr == D3DERR_INVALIDCALL, "Got unexpected hr %#x.\n", hr);
+ }
+ else
+ {
+ hr = IDirect3DDevice8_CreateVertexShader(device, decl, vs_1_255, &vs, 0);
+ ok(hr == D3D_OK, "Got unexpected hr %#x.\n", hr);
+ hr = IDirect3DDevice8_DeleteVertexShader(device, vs);
+ ok(hr == D3D_OK, "IDirect3DDevice8_DeleteVertexShader returned %#08x\n", hr);
+ hr = IDirect3DDevice8_CreateVertexShader(device, decl, vs_1_256, &vs, 0);
+ ok(hr == D3DERR_INVALIDCALL, "Got unexpected hr %#x.\n", hr);
+ }
+
refcount = IDirect3DDevice8_Release(device);
ok(!refcount, "Device has %u references left.\n", refcount);
IDirect3D8_Release(d3d);
More information about the wine-cvs
mailing list