Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
d790be79
Commit
d790be79
authored
Feb 15, 2011
by
Rico Schüller
Committed by
Alexandre Julliard
Feb 16, 2011
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
d3dcompiler/tests: Add reflection test.
parent
14d8b51b
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
132 additions
and
1 deletion
+132
-1
Makefile.in
dlls/d3dcompiler_43/tests/Makefile.in
+2
-1
reflection.c
dlls/d3dcompiler_43/tests/reflection.c
+130
-0
No files found.
dlls/d3dcompiler_43/tests/Makefile.in
View file @
d790be79
...
...
@@ -4,6 +4,7 @@ IMPORTS = d3dcompiler d3d9 d3dx9 user32
C_SRCS
=
\
asm.c
\
blob.c
\
hlsl.c
hlsl.c
\
reflection.c
@MAKE_TEST_RULES@
dlls/d3dcompiler_43/tests/reflection.c
0 → 100644
View file @
d790be79
/*
* Copyright 2010 Rico Schüller
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
/*
* Nearly all compiler functions need the shader blob and the size. The size
* is always located at DWORD #6 in the shader blob (blob[6]).
* The functions are e.g.: D3DGet*SignatureBlob, D3DReflect
*/
#define COBJMACROS
#include "initguid.h"
#include "d3dcompiler.h"
#include "wine/test.h"
/* includes for older reflection interfaces */
#include "d3d10.h"
#include "d3d10_1shader.h"
/*
* This doesn't belong here, but for some functions it is possible to return that value,
* see http://msdn.microsoft.com/en-us/library/bb205278%28v=VS.85%29.aspx
* The original definition is in D3DX10core.h.
*/
#define D3DERR_INVALIDCALL 0x8876086c
/*
* fxc.exe /E VS /Tvs_4_0 /Fx
*/
#if 0
float4 VS(float4 position : POSITION, float4 pos : SV_POSITION) : SV_POSITION
{
return position;
}
#endif
static
DWORD
test_reflection_blob
[]
=
{
0x43425844
,
0x77c6324f
,
0xfd27948a
,
0xe6958d31
,
0x53361cba
,
0x00000001
,
0x000001d8
,
0x00000005
,
0x00000034
,
0x0000008c
,
0x000000e4
,
0x00000118
,
0x0000015c
,
0x46454452
,
0x00000050
,
0x00000000
,
0x00000000
,
0x00000000
,
0x0000001c
,
0xfffe0400
,
0x00000100
,
0x0000001c
,
0x7263694d
,
0x666f736f
,
0x52282074
,
0x4c482029
,
0x53204c53
,
0x65646168
,
0x6f432072
,
0x6c69706d
,
0x39207265
,
0x2e39322e
,
0x2e323539
,
0x31313133
,
0xababab00
,
0x4e475349
,
0x00000050
,
0x00000002
,
0x00000008
,
0x00000038
,
0x00000000
,
0x00000000
,
0x00000003
,
0x00000000
,
0x00000f0f
,
0x00000041
,
0x00000000
,
0x00000000
,
0x00000003
,
0x00000001
,
0x0000000f
,
0x49534f50
,
0x4e4f4954
,
0x5f565300
,
0x49534f50
,
0x4e4f4954
,
0xababab00
,
0x4e47534f
,
0x0000002c
,
0x00000001
,
0x00000008
,
0x00000020
,
0x00000000
,
0x00000001
,
0x00000003
,
0x00000000
,
0x0000000f
,
0x505f5653
,
0x5449534f
,
0x004e4f49
,
0x52444853
,
0x0000003c
,
0x00010040
,
0x0000000f
,
0x0300005f
,
0x001010f2
,
0x00000000
,
0x04000067
,
0x001020f2
,
0x00000000
,
0x00000001
,
0x05000036
,
0x001020f2
,
0x00000000
,
0x00101e46
,
0x00000000
,
0x0100003e
,
0x54415453
,
0x00000074
,
0x00000002
,
0x00000000
,
0x00000000
,
0x00000002
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000001
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000001
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
0x00000000
,
};
static
void
test_reflection_references
(
void
)
{
HRESULT
hr
;
ULONG
count
;
ID3D11ShaderReflection
*
ref11
,
*
ref11_test
;
ID3D10ShaderReflection
*
ref10
;
ID3D10ShaderReflection1
*
ref10_1
;
hr
=
D3DReflect
(
test_reflection_blob
,
test_reflection_blob
[
6
],
&
IID_ID3D11ShaderReflection
,
(
void
**
)
&
ref11
);
ok
(
hr
==
S_OK
,
"D3DReflect failed, got %x, expected %x
\n
"
,
hr
,
S_OK
);
hr
=
ref11
->
lpVtbl
->
QueryInterface
(
ref11
,
&
IID_ID3D11ShaderReflection
,
(
void
**
)
&
ref11_test
);
ok
(
hr
==
S_OK
,
"QueryInterface failed, got %x, expected %x
\n
"
,
hr
,
S_OK
);
count
=
ref11_test
->
lpVtbl
->
Release
(
ref11_test
);
ok
(
count
==
1
,
"Release failed %u
\n
"
,
count
);
hr
=
ref11
->
lpVtbl
->
QueryInterface
(
ref11
,
&
IID_ID3D10ShaderReflection
,
(
void
**
)
&
ref10
);
ok
(
hr
==
E_NOINTERFACE
,
"QueryInterface failed, got %x, expected %x
\n
"
,
hr
,
E_NOINTERFACE
);
hr
=
ref11
->
lpVtbl
->
QueryInterface
(
ref11
,
&
IID_ID3D10ShaderReflection1
,
(
void
**
)
&
ref10_1
);
ok
(
hr
==
E_NOINTERFACE
,
"QueryInterface failed, got %x, expected %x
\n
"
,
hr
,
E_NOINTERFACE
);
count
=
ref11
->
lpVtbl
->
Release
(
ref11
);
ok
(
count
==
0
,
"Release failed %u
\n
"
,
count
);
/* check invalid cases */
hr
=
D3DReflect
(
test_reflection_blob
,
test_reflection_blob
[
6
],
&
IID_ID3D10ShaderReflection
,
(
void
**
)
&
ref10
);
ok
(
hr
==
E_NOINTERFACE
,
"D3DReflect failed, got %x, expected %x
\n
"
,
hr
,
E_NOINTERFACE
);
hr
=
D3DReflect
(
test_reflection_blob
,
test_reflection_blob
[
6
],
&
IID_ID3D10ShaderReflection1
,
(
void
**
)
&
ref10_1
);
ok
(
hr
==
E_NOINTERFACE
,
"D3DReflect failed, got %x, expected %x
\n
"
,
hr
,
E_NOINTERFACE
);
hr
=
D3DReflect
(
NULL
,
test_reflection_blob
[
6
],
&
IID_ID3D10ShaderReflection1
,
(
void
**
)
&
ref10_1
);
ok
(
hr
==
D3DERR_INVALIDCALL
,
"D3DReflect failed, got %x, expected %x
\n
"
,
hr
,
D3DERR_INVALIDCALL
);
hr
=
D3DReflect
(
NULL
,
test_reflection_blob
[
6
],
&
IID_ID3D11ShaderReflection
,
(
void
**
)
&
ref11
);
ok
(
hr
==
D3DERR_INVALIDCALL
,
"D3DReflect failed, got %x, expected %x
\n
"
,
hr
,
D3DERR_INVALIDCALL
);
/* returns different errors with different sizes */
hr
=
D3DReflect
(
test_reflection_blob
,
31
,
&
IID_ID3D10ShaderReflection1
,
(
void
**
)
&
ref10_1
);
ok
(
hr
==
D3DERR_INVALIDCALL
,
"D3DReflect failed, got %x, expected %x
\n
"
,
hr
,
D3DERR_INVALIDCALL
);
hr
=
D3DReflect
(
test_reflection_blob
,
32
,
&
IID_ID3D10ShaderReflection1
,
(
void
**
)
&
ref10_1
);
ok
(
hr
==
E_FAIL
,
"D3DReflect failed, got %x, expected %x
\n
"
,
hr
,
E_FAIL
);
hr
=
D3DReflect
(
test_reflection_blob
,
test_reflection_blob
[
6
]
-
1
,
&
IID_ID3D10ShaderReflection1
,
(
void
**
)
&
ref10_1
);
ok
(
hr
==
E_FAIL
,
"D3DReflect failed, got %x, expected %x
\n
"
,
hr
,
E_FAIL
);
hr
=
D3DReflect
(
test_reflection_blob
,
31
,
&
IID_ID3D11ShaderReflection
,
(
void
**
)
&
ref11
);
ok
(
hr
==
D3DERR_INVALIDCALL
,
"D3DReflect failed, got %x, expected %x
\n
"
,
hr
,
D3DERR_INVALIDCALL
);
hr
=
D3DReflect
(
test_reflection_blob
,
32
,
&
IID_ID3D11ShaderReflection
,
(
void
**
)
&
ref11
);
ok
(
hr
==
E_FAIL
,
"D3DReflect failed, got %x, expected %x
\n
"
,
hr
,
E_FAIL
);
hr
=
D3DReflect
(
test_reflection_blob
,
test_reflection_blob
[
6
]
-
1
,
&
IID_ID3D11ShaderReflection
,
(
void
**
)
&
ref11
);
ok
(
hr
==
E_FAIL
,
"D3DReflect failed, got %x, expected %x
\n
"
,
hr
,
E_FAIL
);
}
START_TEST
(
reflection
)
{
test_reflection_references
();
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment