4 GL_ARB_gpu_shader_int64
6 [vertex shader passthrough]
10 #extension GL_ARB_gpu_shader_int64 : require
12 uniform uint64_t ival[] = uint64_t[](0xBADDC0DEDEADBEEFul,
19 0xBADB100DDEADC0DEul);
21 const uint64_t expected[] = uint64_t[](0x00000000000000EFul,
28 0x00000000000000BAul);
30 out vec4 piglit_fragcolor;
38 /* This is INTENTIONALLY not a loop. Putting it in a loop causes the
39 * optimization that generates the extract instructions to trigger
40 * before the shift count is known to be a constant. The effectively
41 * prevents the bad code generation in the i965 driver from occurring.
44 result = (ival[i] >> (i * 8u)) & 0x0FFul;
45 fail_mask |= result != expected[i] ? 1u << i : 0u;
48 result = (ival[i] >> (i * 8u)) & 0x0FFul;
49 fail_mask |= result != expected[i] ? 1u << i : 0u;
52 result = (ival[i] >> (i * 8u)) & 0x0FFul;
53 fail_mask |= result != expected[i] ? 1u << i : 0u;
56 result = (ival[i] >> (i * 8u)) & 0x0FFul;
57 fail_mask |= result != expected[i] ? 1u << i : 0u;
60 result = (ival[i] >> (i * 8u)) & 0x0FFul;
61 fail_mask |= result != expected[i] ? 1u << i : 0u;
64 result = (ival[i] >> (i * 8u)) & 0x0FFul;
65 fail_mask |= result != expected[i] ? 1u << i : 0u;
68 result = (ival[i] >> (i * 8u)) & 0x0FFul;
69 fail_mask |= result != expected[i] ? 1u << i : 0u;
72 result = (ival[i] >> (i * 8u)) & 0x0FFul;
73 fail_mask |= result != expected[i] ? 1u << i : 0u;
75 /* Construct a clever color so that just looking at the "Observed:"
76 * output from shader_runner will tell you exactly which values did
79 piglit_fragcolor = fail_mask == 0
80 ? vec4(0.0, 1.0, 0.0, 1.0)
81 : vec4(float(fail_mask) / 255.0, 0.0, 0.0, 1.0);
85 clear color 0.5 0.5 0.5 0.5
89 probe all rgba 0.0 1.0 0.0 1.0