Uses Spec Constants

This commit is contained in:
2025-01-08 23:21:33 +00:00
parent c19386bca5
commit 3a79b0d082
11 changed files with 3178 additions and 2360 deletions
+1
View File
@@ -1,2 +1,3 @@
/target
pipeline_cache.bin
log.log
Generated
+107 -22
View File
@@ -281,9 +281,9 @@ dependencies = [
[[package]]
name = "cc"
version = "1.2.6"
version = "1.2.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8d6dbb628b8f8555f86d0323c2eb39e3ec81901f4b83e091db8a6a76d316a333"
checksum = "a012a0df96dd6d06ba9a1b29d6402d1a5d77c6befd2566afdc26e10603dc93d7"
dependencies = [
"jobserver",
"libc",
@@ -466,6 +466,15 @@ version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "96a6ac251f4a2aca6b3f91340350eab87ae57c3f127ffeb585e92bd336717991"
[[package]]
name = "deranged"
version = "0.3.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
dependencies = [
"powerfmt",
]
[[package]]
name = "dispatch"
version = "0.2.0"
@@ -636,11 +645,13 @@ dependencies = [
"egui_winit_vulkano",
"foldhash",
"glam",
"log",
"obj",
"rand",
"rayon",
"serde",
"serde_json",
"simplelog",
"utf-8",
"vulkano",
"vulkano-shaders",
@@ -1117,9 +1128,9 @@ dependencies = [
[[package]]
name = "linux-raw-sys"
version = "0.4.14"
version = "0.4.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89"
checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab"
[[package]]
name = "litemap"
@@ -1261,6 +1272,12 @@ dependencies = [
"num-traits",
]
[[package]]
name = "num-conv"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
[[package]]
name = "num-derive"
version = "0.4.2"
@@ -1322,6 +1339,15 @@ dependencies = [
"syn",
]
[[package]]
name = "num_threads"
version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9"
dependencies = [
"libc",
]
[[package]]
name = "obj"
version = "0.10.2"
@@ -1592,18 +1618,18 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
[[package]]
name = "pin-project"
version = "1.1.7"
version = "1.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "be57f64e946e500c8ee36ef6331845d40a93055567ec57e8fae13efd33759b95"
checksum = "1e2ec53ad785f4d35dac0adea7f7dc6f1bb277ad84a680c7afefeae05d1f5916"
dependencies = [
"pin-project-internal",
]
[[package]]
name = "pin-project-internal"
version = "1.1.7"
version = "1.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c"
checksum = "d56a66c0c55993aa927429d0f8a0abfd74f084e4d9c192cffed01e418d83eefb"
dependencies = [
"proc-macro2",
"quote",
@@ -1612,9 +1638,9 @@ dependencies = [
[[package]]
name = "pin-project-lite"
version = "0.2.15"
version = "0.2.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff"
checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b"
[[package]]
name = "pkg-config"
@@ -1650,6 +1676,12 @@ dependencies = [
"windows-sys 0.59.0",
]
[[package]]
name = "powerfmt"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
[[package]]
name = "ppv-lite86"
version = "0.2.20"
@@ -1881,9 +1913,9 @@ dependencies = [
[[package]]
name = "rustix"
version = "0.38.42"
version = "0.38.43"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85"
checksum = "a78891ee6bf2340288408954ac787aa063d8e8817e9f53abb37c695c6d834ef6"
dependencies = [
"bitflags 2.6.0",
"errno",
@@ -1954,9 +1986,9 @@ dependencies = [
[[package]]
name = "serde_json"
version = "1.0.134"
version = "1.0.135"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d00f4175c42ee48b15416f6193a959ba3a0d67fc699a0db9ad12df9f83991c7d"
checksum = "2b0d7ba2887406110130a978386c4e1befb98c674b4fba677954e4db976630d9"
dependencies = [
"itoa",
"memchr",
@@ -2015,6 +2047,17 @@ dependencies = [
"quote",
]
[[package]]
name = "simplelog"
version = "0.12.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "16257adbfaef1ee58b1363bdc0664c9b8e1e30aed86049635fb5f147d065a9c0"
dependencies = [
"log",
"termcolor",
"time",
]
[[package]]
name = "slab"
version = "0.4.9"
@@ -2095,9 +2138,9 @@ checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731"
[[package]]
name = "syn"
version = "2.0.94"
version = "2.0.95"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "987bc0be1cdea8b10216bd06e2ca407d40b9543468fafd3ddfb02f36e77f71f3"
checksum = "46f71c0377baf4ef1cc3e3402ded576dccc315800fbc62dfc7fe04b009773b4a"
dependencies = [
"proc-macro2",
"quote",
@@ -2134,6 +2177,15 @@ version = "0.12.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1"
[[package]]
name = "termcolor"
version = "1.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
dependencies = [
"winapi-util",
]
[[package]]
name = "thiserror"
version = "1.0.69"
@@ -2175,6 +2227,39 @@ dependencies = [
"weezl",
]
[[package]]
name = "time"
version = "0.3.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "35e7868883861bd0e56d9ac6efcaaca0d6d5d82a2a7ec8209ff492c07cf37b21"
dependencies = [
"deranged",
"itoa",
"libc",
"num-conv",
"num_threads",
"powerfmt",
"serde",
"time-core",
"time-macros",
]
[[package]]
name = "time-core"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
[[package]]
name = "time-macros"
version = "0.2.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2834e6017e3e5e4b9834939793b282bc03b37a3336245fa820e35e233e2a85de"
dependencies = [
"num-conv",
"time-core",
]
[[package]]
name = "tiny-skia"
version = "0.11.4"
@@ -2857,9 +2942,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
[[package]]
name = "winit"
version = "0.30.7"
version = "0.30.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dba50bc8ef4b6f1a75c9274fb95aa9a8f63fbc66c56f391bd85cf68d51e7b1a3"
checksum = "f5d74280aabb958072864bff6cfbcf9025cf8bfacdde5e32b5e12920ef703b0f"
dependencies = [
"ahash",
"android-activity",
@@ -2909,9 +2994,9 @@ dependencies = [
[[package]]
name = "winnow"
version = "0.6.21"
version = "0.6.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e6f5bb5257f2407a5425c6e749bfd9692192a73e70a6060516ac04f889087d68"
checksum = "39281189af81c07ec09db316b302a3e67bf9bd7cbf6c820b50e35fee9c2fa980"
dependencies = [
"memchr",
]
@@ -2987,9 +3072,9 @@ checksum = "b9cc00251562a284751c9973bace760d86c0276c471b4be569fe6b068ee97a56"
[[package]]
name = "xml-rs"
version = "0.8.24"
version = "0.8.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ea8b391c9a790b496184c29f7f93b9ed5b16abb306c05415b68bcc16e4d06432"
checksum = "c5b940ebc25896e71dd073bad2dbaa2abfe97b0a391415e22ad1326d9c54e3c4"
[[package]]
name = "xmlparser"
+7 -4
View File
@@ -7,7 +7,7 @@ edition = "2021"
[dependencies]
vulkano = "0.34"
vulkano-shaders = "0.34"
vulkano-shaders = { version = "0.34", features = ["shaderc-debug"] }
winit = "0.30"
vulkano-util = "0.34"
@@ -22,7 +22,7 @@ glam = "0.29"
egui = "0.30"
egui_winit_vulkano = "0.27"
egui_plot = "0.30.0"
egui_plot = "0.30"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
@@ -31,8 +31,11 @@ utf-8 = "0.7"
rayon = "1.7"
rand = "0.8.5"
foldhash = "0.1.4"
rand = "0.8"
foldhash = "*"
log = "0.4"
simplelog = "0.12"
# using latest gits
[patch.crates-io]
+2 -2
View File
@@ -1,3 +1,3 @@
# Efficient Realtime Rendering of Complex Closed Form Implicit Surfaces Using Vulkan Specialisation Constants
# Efficient Realtime Rendering of Complex Closed Form Implicit Surfaces Using Vulkan Specialization Constants
"The elites don’t want you to know this but the Specialisation Constants at the Vulkan are free you can take them home I have 458 Specialisation Constants." - Adolphe Vulk, inventor of Vulkan
"The elites don’t want you to know this but the Specialization Constants at the Vulkan are free you can take them home I have 458 Specialization Constants." - Adolphe Vulk, inventor of Vulkan
+72 -70
View File
@@ -7,33 +7,35 @@
#ifdef implicit
layout (constant_id = 0) const bool DISABLE_TRACE = false;
layout (constant_id = 5) const bool BRUTE_FORCE = false;
layout(constant_id = 0) const bool DISABLE_TRACE = false;
layout(constant_id = 5) const bool BRUTE_FORCE = false;
layout(location=0)in VertexInput
layout(location = 0) in VertexInput
{
vec4 position;
}vertexInput;
} vertexInput;
layout(depth_greater) out float gl_FragDepth;
#else
layout(location=0)in vec3 tri_normal;
layout(location=1)in vec4 tri_pos;
layout(location = 0) in vec3 tri_normal;
layout(location = 1) in vec4 tri_pos;
#endif
layout(location=0)out vec4 f_color;
layout(location = 0) out vec4 f_color;
/// SHARED CODE ///
vec3 shading(vec3 normal, vec4 position)
{
vec3 accum=vec3(0.,0.,0.);
mat3 rotation=mat3(pc.world[0].xyz,pc.world[1].xyz,pc.world[2].xyz);
vec3 accum = vec3(0., 0., 0.);
mat3 rotation = mat3(pc.world[0].xyz, pc.world[1].xyz, pc.world[2].xyz);
//vec3 position=pc.world[3].xyz;
for(int i=0;i<light_uniforms.light_count;i++)
for (int i = 0; (i < light_uniforms.light_count) && (i < 32); i++)
{
accum+=light_uniforms.col[i].xyz*((dot(normalize(rotation*normal),normalize(light_uniforms.pos[i].xyz-position.xyz))*.5)+.5);
accum += light_uniforms.col[i].xyz * ((dot(normalize(rotation * normal), normalize(light_uniforms.pos[i].xyz - position.xyz)) * .5) + .5);
}
return accum;
@@ -45,14 +47,14 @@ vec3 shading(vec3 normal, vec4 position)
//#define debug 1
#ifdef debug
const float EPSILON=.0001;
const uint MAX_STEPS=1;
const float EPSILON = .0001;
const uint MAX_STEPS = 1;
#define NEARPLANE 0.
#define FARPLANE length(vec3(10))
#define gl_GlobalInvocationID uvec3(1)
#else
const float EPSILON=.0001;
const uint MAX_STEPS=50;
const float EPSILON = .0001;
const uint MAX_STEPS = 50;
#define NEARPLANE 0.
float FARPLANE;
#define gl_GlobalInvocationID uvec3(1)
@@ -60,55 +62,58 @@ float FARPLANE;
#define interval_frags
#include "interpreter.glsl"
layout(set=0,binding=20, std430)restrict readonly buffer fragmentMasks{
layout(set = 0, binding = 20, std430) restrict readonly buffer fragmentMasks {
uint8_t masks[][masklen];
}fragmentpassmasks;
} fragmentpassmasks;
#ifdef debug
vec3 getNormal(vec3 p,float dens){
vec3 getNormal(vec3 p, float dens) {
vec3 n;
n.x=scene(vec3(p.x+EPSILON,p.y,p.z),false).x;
n.y=scene(vec3(p.x,p.y+EPSILON,p.z),false).x;
n.z=scene(vec3(p.x,p.y,p.z+EPSILON),false).x;
return normalize(n-(scene(p,false).x));
n.x = scene(vec3(p.x + EPSILON, p.y, p.z), false).x;
n.y = scene(vec3(p.x, p.y + EPSILON, p.z), false).x;
n.z = scene(vec3(p.x, p.y, p.z + EPSILON), false).x;
return normalize(n - (scene(p, false).x));
}
vec2 spheretracing(vec3 ori,vec3 dir,out vec3 p){
vec2 td=vec2(NEARPLANE,1.);
p=ori;
td.y=scene(p,false).x;
td.x+=(td.y)*.9;
p=ori+dir*td.x;
for(int i=0;i<MAX_STEPS&&td.y>EPSILON&&td.x<FARPLANE;i++){
td.y=scene(p,false).x;
td.x+=(td.y)*.9;
p=ori+dir*td.x;
vec2 spheretracing(vec3 ori, vec3 dir, out vec3 p) {
vec2 td = vec2(NEARPLANE, 1.);
p = ori;
td.y = scene(p, false).x;
td.x += (td.y) * .9;
p = ori + dir * td.x;
for (int i = 0; i < MAX_STEPS && td.y > EPSILON && td.x < FARPLANE; i++) {
td.y = scene(p, false).x;
td.x += (td.y) * .9;
p = ori + dir * td.x;
}
return td;
}
#else
vec3 getNormal(vec3 p,float dens){
vec3 getNormal(vec3 p, float dens) {
vec3 n;
n.x=scene(vec3(p.x+EPSILON,p.y,p.z),false);
n.y=scene(vec3(p.x,p.y+EPSILON,p.z),false);
n.z=scene(vec3(p.x,p.y,p.z+EPSILON),false);
return normalize(n-(scene(p,false)));
n.x = scene(vec3(p.x + EPSILON, p.y, p.z), false);
n.y = scene(vec3(p.x, p.y + EPSILON, p.z), false);
n.z = scene(vec3(p.x, p.y, p.z + EPSILON), false);
return normalize(n - (scene(p, false)));
}
vec2 spheretracing(vec3 ori,vec3 dir,out vec3 p){
vec2 td=vec2(NEARPLANE,1.);
p=ori;
for(int i=0;i<MAX_STEPS&&td.y>EPSILON&&td.x<FARPLANE;i++){
td.y=scene(p,false);
td.x+=(td.y)*.9;
p=ori+dir*td.x;
vec2 spheretracing(vec3 ori, vec3 dir, out vec3 p) {
vec2 td = vec2(NEARPLANE, 1.);
p = ori;
td.y = scene(p, false) * .9;
td.x += td.y;
p = ori + dir * td.x;
for (int i = 0; i < MAX_STEPS && td.y > EPSILON && td.x < FARPLANE; i++) {
td.y = scene(p, false) * .9;
td.x += td.y;
p = ori + dir * td.x;
}
return td;
}
#endif
//Implicit Surface Entrypoint
void main(){
void main() {
//default_mask();
if (BRUTE_FORCE)
{
@@ -118,48 +123,45 @@ void main(){
mask = fragmentpassmasks.masks[gl_PrimitiveID];
}
#ifndef debug
desc = scene_description.desc[(DescriptionIndex)+1];
vec3 bottomleft = vec3(desc.bounds[3],desc.bounds[4],desc.bounds[5]);
vec3 topright = vec3(desc.bounds[0],desc.bounds[1],desc.bounds[2]);
#ifndef debug
desc = scene_description.desc[(DescriptionIndex) + 1];
vec3 bottomleft = vec3(desc.bounds[3], desc.bounds[4], desc.bounds[5]);
vec3 topright = vec3(desc.bounds[0], desc.bounds[1], desc.bounds[2]);
if (BRUTE_FORCE)
{
FARPLANE = length((topright-bottomleft));
FARPLANE = length((topright - bottomleft));
}
else {
FARPLANE = length((topright-bottomleft) * vec3(0.25*0.25,0.25*0.25,0.25*0.5));
FARPLANE = length((topright - bottomleft) * vec3(0.25 * 0.25, 0.25 * 0.25, 0.25 * 0.5));
}
#endif
#endif
vec3 raypos=vertexInput.position.xyz;
vec3 raypos = vertexInput.position.xyz;
vec3 p;
vec3 raydir=normalize(raypos-(inverse(pc.world)*vec4(camera_uniforms.campos,1)).xyz);
vec3 raydir = normalize(raypos - (inverse(pc.world) * vec4(camera_uniforms.campos, 1)).xyz);
//f_color=vec4(raydir,1.);
if (DISABLE_TRACE) {
f_color=vertexInput.position;
f_color = vertexInput.position;
return;
}
#ifdef debug
f_color=vec4(scene(raypos,false),1);
f_color = vec4(scene(raypos, false), 1);
return;
#endif
vec2 td=spheretracing(raypos,raydir,p);
/*#ifdef debug
f_color=vec4(td,0,1);
return;
#endif*/
if(td.y<EPSILON)
{
vec3 n=getNormal(p,td.y);
//f_color=vec4(1.);
f_color=vec4(shading(n, inverse(pc.world)*vec4(p,1.)),1.);
vec2 td = spheretracing(raypos, raydir, p);
vec4 tpoint=camera_uniforms.proj*camera_uniforms.view*pc.world*vec4(p,1);
gl_FragDepth=(tpoint.z/tpoint.w);
if (td.y < EPSILON)
{
vec3 n = getNormal(p, td.y);
//f_color=vec4(1.);
f_color = vec4(shading(n, inverse(pc.world) * vec4(p, 1.)), 1.);
vec4 tpoint = camera_uniforms.proj * camera_uniforms.view * pc.world * vec4(p, 1);
gl_FragDepth = (tpoint.z / tpoint.w);
}
else
{
@@ -171,8 +173,8 @@ void main(){
/// TRIANGLE CODE ///
//Mesh Surface Entrypoint
void main(){
f_color=vec4(shading(tri_normal, tri_pos),1.);
void main() {
f_color = vec4(shading(tri_normal, tri_pos), 1.);
}
#endif
+21 -31
View File
@@ -3,43 +3,33 @@
uint DescriptionIndex;
//#include "include.glsl"
#include "intervals.glsl"
//#include "intervals.glsl"
#include "interpreter.glsl"
struct Results {
float[2] f;
vec2[2] v2;
vec4[2] v3;
vec4[2] v4;
uint8_t[masklen] mask;
uint code;
uint stat;
};
layout(set=0,binding=30, std430)buffer ResultsArray{
layout(set = 0, binding = 30, std430) buffer ResultsArray {
Results r[];
}results;
} results;
layout(local_size_x=32,local_size_y=1,local_size_z=1)in;
layout(local_size_x = 32, local_size_y = 8, local_size_z = 1) in;
void main ()
void main()
{
DescriptionIndex = gl_LocalInvocationID.x;
DescriptionIndex = 0;
default_mask();
float[6]bounds=scene_description.desc[DescriptionIndex+1].bounds;
vec3 bottomleft = vec3(bounds[3],bounds[4],bounds[5]);
vec3 topright = vec3(bounds[0],bounds[1],bounds[2]);
desc = scene_description.desc[(DescriptionIndex)+1];
clear_stacks();
results.r[gl_GlobalInvocationID.x].f = scene(vec3[2](bottomleft, topright), true);
vec3[2] v3 = pull_vec3(false);
results.r[gl_GlobalInvocationID.x].v3[0] = vec4(v3[0],1.);
results.r[gl_GlobalInvocationID.x].v3[1] = vec4(v3[1],1.);
results.r[gl_GlobalInvocationID.x].v2 = pull_vec2(false);
results.r[gl_GlobalInvocationID.x].v4 = pull_vec4(false);
//results.r[gl_GlobalInvocationID.x].f[1] = float(gl_GlobalInvocationID.x);
/*results.r[gl_GlobalInvocationID.x].f = pull_float(true);//scene(vec3[2](bottomleft, topright), false);
vec3[2] v3 = pull_vec3(true);
results.r[gl_GlobalInvocationID.x].v3[0] = vec4(v3[0],1.);
results.r[gl_GlobalInvocationID.x].v3[1] = vec4(v3[1],1.);
results.r[gl_GlobalInvocationID.x].v2 = pull_vec2(true);
results.r[gl_GlobalInvocationID.x].v4 = pull_vec4(true);
results.r[gl_GlobalInvocationID.x].f[1] = float(gl_GlobalInvocationID.x);*/
results.r[gl_GlobalInvocationID.x].mask = mask;
uint major_position = gl_LocalInvocationID.x;
uint minor_position = gl_LocalInvocationID.y;
uint minor_integer_cache[8];
desc = scene_description.desc[(DescriptionIndex) + 1];
get_caches;
results.r[OPPos].code = minor_integer_cache[minor_position];
results.r[OPPos].stat = STATIC_OPCODE_ARRAY[OPPos];
}
+5
View File
@@ -16,6 +16,7 @@ pub(crate) struct PreviousDebug {
pub(crate) disable_meshscale2: bool,
pub(crate) disable_taskcull: bool,
pub(crate) brute_force: bool,
pub(crate) spec_const_hell: bool,
}
#[derive(Debug)]
@@ -224,6 +225,10 @@ pub(crate) fn gui_up(gui: &mut Gui, state: &mut GState) {
&mut state.debug.brute_force,
"Brute force the render (use no new techniques)",
);
ui.toggle_value(
&mut state.debug.spec_const_hell,
"Enable the Specialisation Constants",
);
});
});
});
+977 -1005
View File
File diff suppressed because it is too large Load Diff
+383 -146
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -131,10 +131,10 @@ pub(crate) fn load_obj(
for g in &object.objects[0].groups {
for p in &g.polys {
for v in &p.0 {
//println!("{:?}", v);
//trace!("{:?}", v);
let mapping = ((v.0) as u32, (v.2.unwrap_or(0)) as u32);
if let Some(&exist) = &temp_hash_map.get(&mapping) {
//println!("{:?}", exist);
//trace!("{:?}", exist);
indices.push(exist);
} else {
vertices.push(OVertex {
+523
View File
@@ -0,0 +1,523 @@
layout (constant_id = 900) const uint EXECUTION_LIMIT = 1000;
layout (constant_id = 901) const bool STATIC_OPCODES = false;
#define CAT_(a, b) a ## b
#define CAT(a, b) CAT_(a, b)
#define STATIC_OPCODE_ARRAY_IDENT CAT(STATIC_OPCODE_ARRAY, __LINE__)
#line 1000
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
layout (constant_id = __LINE__) const uint STATIC_OPCODE_ARRAY_IDENT = OPStop;
#line 999
uint STATIC_OPCODE_ARRAY[256] = uint[256](
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT,
STATIC_OPCODE_ARRAY_IDENT
);