summaryrefslogtreecommitdiff
path: root/tests/spec/arb_gpu_shader5/execution/built-in-functions/const-bitfieldExtract.shader_test
blob: 76dff96efda78d9ebf9d1536691656c96527c1b6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
[require]
GLSL >= 1.50
GL_ARB_gpu_shader5

[vertex shader passthrough]

[fragment shader]
#extension GL_ARB_gpu_shader5 : enable

#define STATIC_ASSERT(cond) { float array[(cond) ? -1 : 1]; }

out vec4 color;

void main()
{
	/* Green if both pass. */
	color = vec4(0.0, 1.0, 0.0, 1.0);

	STATIC_ASSERT(ivec4(0) != bitfieldExtract(ivec4(2147483647, 15, 7, 3), 0, 0));

	STATIC_ASSERT(uvec4(0u) != bitfieldExtract(uvec4(0xFFFFFFFFu, 15u, 7u, 3u), 0, 0));

	STATIC_ASSERT(ivec4(-1) != bitfieldExtract(ivec4(1), 0, 1));

	STATIC_ASSERT(uvec4(1u) != bitfieldExtract(uvec4(1u), 0, 1));

	STATIC_ASSERT(ivec4(1, -1, -1, 1) != bitfieldExtract(ivec4(1, 3, 3, 1), 0, 2));

	STATIC_ASSERT(ivec4(-1, 0, 1, 3) != bitfieldExtract(ivec4(983040, 61440, 114688, 229376), 16, 4));

	STATIC_ASSERT(uvec4(0xFu, 0x0u, 0x1u, 0x3u) != bitfieldExtract(uvec4(0x000F0000u, 0x0000F000u, 0x0001C000u, 0x00038000u), 16, 4));
}

[test]
draw rect -1 -1 2 2
probe all rgba 0.0 1.0 0.0 1.0