Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
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-cw
Commits
b27efb4b
Commit
b27efb4b
authored
Oct 06, 2015
by
Józef Kucia
Committed by
Alexandre Julliard
Oct 06, 2015
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
d3d10core/tests: Add test for geometry shader to test_create_shaders().
Signed-off-by:
Józef Kucia
<
jkucia@codeweavers.com
>
parent
44293175
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
72 additions
and
2 deletions
+72
-2
device.c
dlls/d3d10core/tests/device.c
+72
-2
No files found.
dlls/d3d10core/tests/device.c
View file @
b27efb4b
...
...
@@ -1081,10 +1081,55 @@ float4 main(const float4 color : COLOR) : SV_TARGET
0x00000000
,
0x00000000
,
};
#if 0
struct gs_out
{
float4 pos : SV_POSITION;
};
[maxvertexcount(4)]
void main(point float4 vin[1] : POSITION, inout TriangleStream<gs_out> vout)
{
float offset = 0.1 * vin[0].w;
gs_out v;
v.pos = float4(vin[0].x - offset, vin[0].y - offset, vin[0].z, vin[0].w);
vout.Append(v);
v.pos = float4(vin[0].x - offset, vin[0].y + offset, vin[0].z, vin[0].w);
vout.Append(v);
v.pos = float4(vin[0].x + offset, vin[0].y - offset, vin[0].z, vin[0].w);
vout.Append(v);
v.pos = float4(vin[0].x + offset, vin[0].y + offset, vin[0].z, vin[0].w);
vout.Append(v);
}
#endif
static
const
DWORD
gs_4_0
[]
=
{
0x43425844
,
0x000ee786
,
0xc624c269
,
0x885a5cbe
,
0x444b3b1f
,
0x00000001
,
0x0000023c
,
0x00000003
,
0x0000002c
,
0x00000060
,
0x00000094
,
0x4e475349
,
0x0000002c
,
0x00000001
,
0x00000008
,
0x00000020
,
0x00000000
,
0x00000000
,
0x00000003
,
0x00000000
,
0x00000f0f
,
0x49534f50
,
0x4e4f4954
,
0xababab00
,
0x4e47534f
,
0x0000002c
,
0x00000001
,
0x00000008
,
0x00000020
,
0x00000000
,
0x00000001
,
0x00000003
,
0x00000000
,
0x0000000f
,
0x505f5653
,
0x5449534f
,
0x004e4f49
,
0x52444853
,
0x000001a0
,
0x00020040
,
0x00000068
,
0x0400005f
,
0x002010f2
,
0x00000001
,
0x00000000
,
0x02000068
,
0x00000001
,
0x0100085d
,
0x0100285c
,
0x04000067
,
0x001020f2
,
0x00000000
,
0x00000001
,
0x0200005e
,
0x00000004
,
0x0f000032
,
0x00100032
,
0x00000000
,
0x80201ff6
,
0x00000041
,
0x00000000
,
0x00000000
,
0x00004002
,
0x3dcccccd
,
0x3dcccccd
,
0x00000000
,
0x00000000
,
0x00201046
,
0x00000000
,
0x00000000
,
0x05000036
,
0x00102032
,
0x00000000
,
0x00100046
,
0x00000000
,
0x06000036
,
0x001020c2
,
0x00000000
,
0x00201ea6
,
0x00000000
,
0x00000000
,
0x01000013
,
0x05000036
,
0x00102012
,
0x00000000
,
0x0010000a
,
0x00000000
,
0x0e000032
,
0x00100052
,
0x00000000
,
0x00201ff6
,
0x00000000
,
0x00000000
,
0x00004002
,
0x3dcccccd
,
0x00000000
,
0x3dcccccd
,
0x00000000
,
0x00201106
,
0x00000000
,
0x00000000
,
0x05000036
,
0x00102022
,
0x00000000
,
0x0010002a
,
0x00000000
,
0x06000036
,
0x001020c2
,
0x00000000
,
0x00201ea6
,
0x00000000
,
0x00000000
,
0x01000013
,
0x05000036
,
0x00102012
,
0x00000000
,
0x0010000a
,
0x00000000
,
0x05000036
,
0x00102022
,
0x00000000
,
0x0010001a
,
0x00000000
,
0x06000036
,
0x001020c2
,
0x00000000
,
0x00201ea6
,
0x00000000
,
0x00000000
,
0x01000013
,
0x05000036
,
0x00102032
,
0x00000000
,
0x00100086
,
0x00000000
,
0x06000036
,
0x001020c2
,
0x00000000
,
0x00201ea6
,
0x00000000
,
0x00000000
,
0x01000013
,
0x0100003e
,
};
ULONG
refcount
,
expected_refcount
;
ID3D10VertexShader
*
vs
=
NULL
;
ID3D10PixelShader
*
ps
=
NULL
;
ID3D10Device
*
device
,
*
tmp
;
ID3D10GeometryShader
*
gs
;
ID3D10VertexShader
*
vs
;
ID3D10PixelShader
*
ps
;
IUnknown
*
iface
;
HRESULT
hr
;
...
...
@@ -1094,6 +1139,7 @@ float4 main(const float4 color : COLOR) : SV_TARGET
return
;
}
/* vertex shader */
expected_refcount
=
get_refcount
((
IUnknown
*
)
device
)
+
1
;
hr
=
ID3D10Device_CreateVertexShader
(
device
,
vs_4_0
,
sizeof
(
vs_4_0
),
&
vs
);
ok
(
SUCCEEDED
(
hr
),
"Failed to create SM4 vertex shader, hr %#x
\n
"
,
hr
);
...
...
@@ -1125,6 +1171,7 @@ float4 main(const float4 color : COLOR) : SV_TARGET
hr
=
ID3D10Device_CreateVertexShader
(
device
,
ps_4_0
,
sizeof
(
ps_4_0
),
&
vs
);
ok
(
hr
==
E_INVALIDARG
,
"Created a SM4 vertex shader from a pixel shader source, hr %#x
\n
"
,
hr
);
/* pixel shader */
expected_refcount
=
get_refcount
((
IUnknown
*
)
device
)
+
1
;
hr
=
ID3D10Device_CreatePixelShader
(
device
,
ps_4_0
,
sizeof
(
ps_4_0
),
&
ps
);
ok
(
SUCCEEDED
(
hr
),
"Failed to create SM4 vertex shader, hr %#x
\n
"
,
hr
);
...
...
@@ -1147,6 +1194,29 @@ float4 main(const float4 color : COLOR) : SV_TARGET
refcount
=
ID3D10PixelShader_Release
(
ps
);
ok
(
!
refcount
,
"Pixel shader has %u references left.
\n
"
,
refcount
);
/* geometry shader */
expected_refcount
=
get_refcount
((
IUnknown
*
)
device
)
+
1
;
hr
=
ID3D10Device_CreateGeometryShader
(
device
,
gs_4_0
,
sizeof
(
gs_4_0
),
&
gs
);
ok
(
SUCCEEDED
(
hr
),
"Failed to create SM4 geometry shader, hr %#x.
\n
"
,
hr
);
refcount
=
get_refcount
((
IUnknown
*
)
device
);
ok
(
refcount
>=
expected_refcount
,
"Got unexpected refcount %u, expected >= %u.
\n
"
,
refcount
,
expected_refcount
);
tmp
=
NULL
;
expected_refcount
=
refcount
+
1
;
ID3D10GeometryShader_GetDevice
(
gs
,
&
tmp
);
ok
(
tmp
==
device
,
"Got unexpected device %p, expected %p.
\n
"
,
tmp
,
device
);
refcount
=
get_refcount
((
IUnknown
*
)
device
);
ok
(
refcount
==
expected_refcount
,
"Got unexpected refcount %u, expected %u.
\n
"
,
refcount
,
expected_refcount
);
ID3D10Device_Release
(
tmp
);
hr
=
ID3D10GeometryShader_QueryInterface
(
gs
,
&
IID_ID3D11GeometryShader
,
(
void
**
)
&
iface
);
ok
(
SUCCEEDED
(
hr
)
||
broken
(
hr
==
E_NOINTERFACE
)
/* Not available on all Windows versions. */
,
"Geometry shader should implement ID3D11GeometryShader.
\n
"
);
if
(
SUCCEEDED
(
hr
))
IUnknown_Release
(
iface
);
refcount
=
ID3D10GeometryShader_Release
(
gs
);
ok
(
!
refcount
,
"Geometry shader has %u references left.
\n
"
,
refcount
);
refcount
=
ID3D10Device_Release
(
device
);
ok
(
!
refcount
,
"Device has %u references left.
\n
"
,
refcount
);
}
...
...
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