	.file	"670053.c"
	.intel_syntax noprefix
	.text
	.globl	datatoc_irradiance_lib_glsl_size
	.data
	.align 4
	.type	datatoc_irradiance_lib_glsl_size, @object
	.size	datatoc_irradiance_lib_glsl_size, 4
datatoc_irradiance_lib_glsl_size:
	.long	5543
	.globl	datatoc_irradiance_lib_glsl
	.align 32
	.type	datatoc_irradiance_lib_glsl, @object
	.size	datatoc_irradiance_lib_glsl, 5544
datatoc_irradiance_lib_glsl:
	.ascii	"\r\nuniform sampler2DArray irradianceGrid;\r\n\r\n#define IR"
	.ascii	"RADIANCE_LIB\r\n\r\n#ifdef IRRADIANCE_CUBEMAP\r\nstruct Irra"
	.ascii	"dianceData {\r\n\tvec3 color;\r\n};\r\n#elif defined(IRRADIA"
	.ascii	"NCE_SH_L2)\r\nstruct IrradianceData {\r\n\tvec3 shcoefs[9];\r"
	.ascii	"\n};\r\n#else /* defined(IRRADIANCE_HL2) */\r\nstruct Irradi"
	.ascii	"anceData {\r\n\tvec3 cubesides[3];\r\n};\r\n#endif\r\n\r\nIr"
	.ascii	"radianceData load_irradiance_cell(int cell, vec3 N)\r\n{\r\n"
	.ascii	"\t/* Keep in sync with diffuse_filter_probe() */\r\n\r\n#if "
	.ascii	"defined(IRRADIANCE_CUBEMAP)\r\n\r\n\t#define AMBIANT_CUBESIZ"
	.ascii	"E 8\r\n\tivec2 cell_co = ivec2(AMBIANT_CUBESIZE);\r\n\tint c"
	.ascii	"ell_per_row = textureSize(irradianceGrid, 0).x / cell_co.x;\r"
	.ascii	"\n\tcell_co.x *= cell % cell_per_row;\r\n\tcell_co.y *= cell"
	.ascii	" / cell_per_row;\r\n\r\n\tvec2 texelSize = 1.0 / vec2(AMBIAN"
	.ascii	"T_CUBESIZE);\r\n\r\n\tvec2 uvs = mapping_octahedron(N, texel"
	.ascii	"Size);\r\n\tuvs *= vec2(AMBIANT_CUBESIZE) / vec2(textureSize"
	.ascii	"(irradianceGrid, 0));\r\n\tuvs += vec2(cell_co) / vec2(textu"
	.ascii	"reSize(irradianceGrid, 0));\r\n\r\n\tIrradianceData ir;\r\n\t"
	.ascii	"ir.color = texture(irradianceGrid, vec3(uvs, 0.0)).rgb;\r\n\r"
	.ascii	"\n#elif defined(IRRADIANCE_SH_L2)\r\n\r\n\tivec2 cell_co = i"
	.ascii	"vec2(3, 3);\r\n\tint cell_per_row = textureSize(irradianceGr"
	.ascii	"id, 0).x / cell_co.x;\r\n\tcell_co.x *= cell % cell_per_row;"
	.ascii	"\r\n\tcell_co.y *= cell / cell_per_row;\r\n\r\n\tivec3 ofs ="
	.ascii	" ivec3(0, 1, 2);\r\n\r\n\tIrradianceData ir;\r\n\tir.shcoefs"
	.ascii	"[0] = texelFetch(irradianceGrid, ivec3(cell_co + ofs.xx, 0),"
	.ascii	" 0).rgb;\r\n\tir.shcoefs[1] = texelFetch(irradianceGrid, ive"
	.ascii	"c3(cell_co + ofs.yx, 0), 0).rgb;\r\n\tir.shcoefs[2] = texelF"
	.ascii	"etch(irradianceGrid, ivec3(cell_co + ofs.zx, 0), 0).rgb;\r\n"
	.ascii	"\tir.shcoefs[3] = texelFetch(irradianceGrid, ivec3(cell_co +"
	.ascii	" ofs.xy, 0), 0).rgb;\r\n\tir.shcoefs[4] = texelFetch(irradia"
	.ascii	"nceGrid, ivec3(cell_co + ofs.yy, 0), 0).rgb;\r\n\tir.shcoefs"
	.ascii	"[5] = texelFetch(irradianceGrid, ivec3(cell_co + ofs.zy, 0),"
	.ascii	" 0).rgb;\r\n\tir.shcoefs[6] = texelFetch(irradianceGrid, ive"
	.ascii	"c3(cell_co + ofs.xz, 0), 0).rgb;\r\n\tir.shcoefs[7] = texelF"
	.ascii	"etch(irradianceGrid, ivec3(cell_co + ofs.yz, 0), 0).rgb;\r\n"
	.ascii	"\tir.shcoefs[8] = texelFetch(irradianceGrid, ivec3(cell_co +"
	.ascii	" ofs.zz, 0), 0).rgb;\r\n\r\n#else /* defined(I"
	.ascii	"RRADIANCE_HL2) */\r\n\r\n\tivec2 cell_co = ivec2(3, 2);\r\n\t"
	.ascii	"int cell_per_row = textureSize(irradianceGrid, 0).x / cell_c"
	.ascii	"o.x;\r\n\tcell_co.x *= cell % cell_per_row;\r\n\tcell_co.y *"
	.ascii	"= cell / cell_per_row;\r\n\r\n\tivec3 is_negative = ivec3(st"
	.ascii	"ep(0.0, -N));\r\n\r\n\tIrradianceData ir;\r\n\tir.cubesides["
	.ascii	"0] = irradiance_decode(texelFetch(irradianceGrid, ivec3(cell"
	.ascii	"_co + ivec2(0, is_negative.x), 0), 0));\r\n\tir.cubesides[1]"
	.ascii	" = irradiance_decode(texelFetch(irradianceGrid, ivec3(cell_c"
	.ascii	"o + ivec2(1, is_negative.y), 0), 0));\r\n\tir.cubesides[2] ="
	.ascii	" irradiance_decode(texelFetch(irradianceGrid, ivec3(cell_co "
	.ascii	"+ ivec2(2, is_negative.z), 0), 0));\r\n\r\n#endif\r\n\r\n\tr"
	.ascii	"eturn ir;\r\n}\r\n\r\nfloat load_visibility_cell(int cell, v"
	.ascii	"ec3 L, float dist, float bias, float bleed_bias, float range"
	.ascii	")\r\n{\r\n\t/* Keep in sync with diffuse_filter_probe() */\r"
	.ascii	"\n\tivec2 cell_co = ivec2(prbIrradianceVisSize);\r\n\tivec2 "
	.ascii	"cell_per_row_col = textureSize(irradianceGrid, 0).xy / prbIr"
	.ascii	"radianceVisSize;\r\n\tcell_co.x *= (cell % cell_per_row_col."
	.ascii	"x);\r\n\tcell_co.y *= (cell / cell_per_row_col.x) % cell_per"
	.ascii	"_row_col.y;\r\n\tfloat layer = 1.0 + float((cell / cell_per_"
	.ascii	"row_col.x) / cell_per_row_col.y);\r\n\r\n\tvec2 texel_size ="
	.ascii	" 1.0 / vec2(textureSize(irradianceGrid, 0).xy);\r\n\tvec2 co"
	.ascii	" = vec2(cell_co) * texel_size;\r\n\r\n\tvec2 uv = mapping_oc"
	.ascii	"tahedron(-L, vec2(1.0 / float(prbIrradianceVisSize)));\r\n\t"
	.ascii	"uv *= vec2(prbIrradianceVisSize) * texel_size;\r\n\r\n\tvec4"
	.ascii	" data = texture(irradianceGrid, vec3(co + uv, layer));\r\n\r"
	.ascii	"\n\t/* Decoding compressed data */\r\n\tvec2 moments = visib"
	.ascii	"ility_decode(data, range);\r\n\r\n\t/* Doing chebishev test "
	.ascii	"*/\r\n\tfloat variance = abs(moments.x * moments.x - moments"
	.ascii	".y);\r\n\tvariance = max(variance, bias / 10.0);\r\n\r\n\tfl"
	.ascii	"oat d = dist - moments.x;\r\n\tfloat p_max = variance / (var"
	.ascii	"iance + d * d);\r\n\r\n\t/* Increase contrast in the weight "
	.ascii	"by squaring it */\r\n\tp_max *= p_max;\r\n\r\n\t/* Now reduc"
	.ascii	"e light-bleeding by removing the [0, x] tail and linearly re"
	.ascii	"scaling (x, 1] */\r\n\tp_max = clamp((p_max - bleed_bias) / "
	.ascii	"(1.0 - bleed_bias), 0.0, 1.0);\r\n\r\n\treturn (dist <= mome"
	.ascii	"nts.x) ? 1.0 : p_max;\r\n}\r\n\r\n/* http:"
	.ascii	"//seblagarde.wordpress.com/2012/01/08/pi-or-not-to-pi-in-gam"
	.ascii	"e-lighting-equation/ */\r\nvec3 spherical_harmonics_L1(vec3 "
	.ascii	"N, vec3 shcoefs[4])\r\n{\r\n\tvec3 sh = vec3(0.0);\r\n\r\n\t"
	.ascii	"sh += 0.282095 * shcoefs[0];\r\n\r\n\tsh += -0.488603 * N.z "
	.ascii	"* shcoefs[1];\r\n\tsh += 0.488603 * N.y * shcoefs[2];\r\n\ts"
	.ascii	"h += -0.488603 * N.x * shcoefs[3];\r\n\r\n\treturn sh;\r\n}\r"
	.ascii	"\n\r\nvec3 spherical_harmonics_L2(vec3 N, vec3 shcoefs[9])\r"
	.ascii	"\n{\r\n\tvec3 sh = vec3(0.0);\r\n\r\n\tsh += 0.282095 * shco"
	.ascii	"efs[0];\r\n\r\n\tsh += -0.488603 * N.z * shcoefs[1];\r\n\tsh"
	.ascii	" += 0.488603 * N.y * shcoefs[2];\r\n\tsh += -0.488603 * N.x "
	.ascii	"* shcoefs[3];\r\n\r\n\tsh += 1.092548 * N.x * N.z * shcoefs["
	.ascii	"4];\r\n\tsh += -1.092548 * N.z * N.y * shcoefs[5];\r\n\tsh +"
	.ascii	"= 0.315392 * (3.0 * N.y * N.y - 1.0) * shcoefs[6];\r\n\tsh +"
	.ascii	"= -1.092548 * N.x * N.y * shcoefs[7];\r\n\tsh += 0.546274 * "
	.ascii	"(N.x * N.x - N.z * N.z) * shcoefs[8];\r\n\r\n\treturn sh;\r\n"
	.ascii	"}\r\n\r\nvec3 hl2_basis(vec3 N, vec3 cubesides[3])\r\n{\r\n\t"
	.ascii	"vec3 irradiance = vec3(0.0);\r\n\r\n\tvec3 n_squared = N * N"
	.ascii	";\r\n\r\n\tirradiance += n_squared.x * cubesides[0];\r\n\tir"
	.ascii	"radiance += n_squared.y * cubesides[1];\r\n\tirradiance += n"
	.ascii	"_squared.z * cubesides[2];\r\n\r\n\treturn irradiance;\r\n}\r"
	.ascii	"\n\r\nvec3 compute_irradiance(vec3 N, IrradianceData ird)\r\n"
	.ascii	"{\r\n#if defined(IRRADIANCE_CUBEMAP)\r\n\treturn ird.color;\r"
	.ascii	"\n#elif defined(IRRADIANCE_SH_L2)\r\n\treturn spherical_harm"
	.ascii	"onics_L2(N, ird.shcoefs);\r\n#"
	.string	"else /* defined(IRRADIANCE_HL2) */\r\n\treturn hl2_basis(N, ird.cubesides);\r\n#endif\r\n}\r\n\r\nvec3 irradiance_from_cell_get(int cell, vec3 ir_dir)\r\n{\r\n\tIrradianceData ir_data = load_irradiance_cell(cell, ir_dir);\r\n\treturn compute_irradiance(ir_dir, ir_data);\r\n}\r\n"
	.ident	"GCC: (Ubuntu 10.5.0-1ubuntu1~20.04) 10.5.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	 1f - 0f
	.long	 4f - 1f
	.long	 5
0:
	.string	 "GNU"
1:
	.align 8
	.long	 0xc0000002
	.long	 3f - 2f
2:
	.long	 0x3
3:
	.align 8
4:

	.arch armv5t
	.eabi_attribute 20, 1
	.eabi_attribute 21, 1
	.eabi_attribute 23, 3
	.eabi_attribute 24, 1
	.eabi_attribute 25, 1
	.eabi_attribute 26, 2
	.eabi_attribute 30, 6
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"670053.c"
	.text
	.global	datatoc_irradiance_lib_glsl_size
	.data
	.align	2
	.type	datatoc_irradiance_lib_glsl_size, %object
	.size	datatoc_irradiance_lib_glsl_size, 4
datatoc_irradiance_lib_glsl_size:
	.word	5543
	.global	datatoc_irradiance_lib_glsl
	.align	2
	.type	datatoc_irradiance_lib_glsl, %object
	.size	datatoc_irradiance_lib_glsl, 5544
datatoc_irradiance_lib_glsl:
	.ascii	"\015\012uniform sampler2DArray irradianceGrid;\015\012"
	.ascii	"\015\012#define IRRADIANCE_LIB\015\012\015\012#ifde"
	.ascii	"f IRRADIANCE_CUBEMAP\015\012struct IrradianceData {"
	.ascii	"\015\012\011vec3 color;\015\012};\015\012#elif defi"
	.ascii	"ned(IRRADIANCE_SH_L2)\015\012struct IrradianceData "
	.ascii	"{\015\012\011vec3 shcoefs[9];\015\012};\015\012#els"
	.ascii	"e /* defined(IRRADIANCE_HL2) */\015\012struct Irrad"
	.ascii	"ianceData {\015\012\011vec3 cubesides[3];\015\012};"
	.ascii	"\015\012#endif\015\012\015\012IrradianceData load_i"
	.ascii	"rradiance_cell(int cell, vec3 N)\015\012{\015\012\011"
	.ascii	"/* Keep in sync with diffuse_filter_probe() */\015\012"
	.ascii	"\015\012#if defined(IRRADIANCE_CUBEMAP)\015\012\015"
	.ascii	"\012\011#define AMBIANT_CUBESIZE 8\015\012\011ivec2"
	.ascii	" cell_co = ivec2(AMBIANT_CUBESIZE);\015\012\011int "
	.ascii	"cell_per_row = textureSize(irradianceGrid, 0).x / c"
	.ascii	"ell_co.x;\015\012\011cell_co.x *= cell % cell_per_r"
	.ascii	"ow;\015\012\011cell_co.y *= cell / cell_per_row;\015"
	.ascii	"\012\015\012\011vec2 texelSize = 1.0 / vec2(AMBIANT"
	.ascii	"_CUBESIZE);\015\012\015\012\011vec2 uvs = mapping_o"
	.ascii	"ctahedron(N, texelSize);\015\012\011uvs *= vec2(AMB"
	.ascii	"IANT_CUBESIZE) / vec2(textureSize(irradianceGrid, 0"
	.ascii	"));\015\012\011uvs += vec2(cell_co) / vec2(textureS"
	.ascii	"ize(irradianceGrid, 0));\015\012\015\012\011Irradia"
	.ascii	"nceData ir;\015\012\011ir.color = texture(irradianc"
	.ascii	"eGrid, vec3(uvs, 0.0)).rgb;\015\012\015\012#elif de"
	.ascii	"fined(IRRADIANCE_SH_L2)\015\012\015\012\011ivec2 ce"
	.ascii	"ll_co = ivec2(3, 3);\015\012\011int cell_per_row = "
	.ascii	"textureSize(irradianceGrid, 0).x / cell_co.x;\015\012"
	.ascii	"\011cell_co.x *= cell % cell_per_row;\015\012\011ce"
	.ascii	"ll_co.y *= cell / cell_per_row;\015\012\015\012\011"
	.ascii	"ivec3 ofs = ivec3(0, 1, 2);\015\012\015\012\011Irra"
	.ascii	"dianceData ir;\015\012\011ir.shcoefs[0] = texelFetc"
	.ascii	"h(irradianceGrid, ivec3(cell_co + ofs.xx, 0), 0).rg"
	.ascii	"b;\015\012\011ir.shcoefs[1] = texelFetch(irradiance"
	.ascii	"Grid, ivec3(cell_co + ofs.yx, 0), 0).rgb;\015\012\011"
	.ascii	"ir.shcoefs[2] = texelFetch(irradianceGrid, ivec3(ce"
	.ascii	"ll_co + ofs.zx, 0), 0).rgb;\015\012\011ir.shcoefs[3"
	.ascii	"] = texelFetch(irradianceGrid, ivec3(cell_co + ofs."
	.ascii	"xy, 0), 0).rgb;\015\012\011ir.shcoefs[4] = texelFet"
	.ascii	"ch(irradianceGrid, ivec3(cell_co + ofs.yy, 0), 0).r"
	.ascii	"gb;\015\012\011ir.shcoefs[5] = texelFetch(irradianc"
	.ascii	"eGrid, ivec3(cell_co + ofs.zy, 0), 0).rgb;\015\012\011"
	.ascii	"ir.shcoefs[6] = texelFetch(irradianceGrid, ivec3(ce"
	.ascii	"ll_co + ofs.xz, 0), 0).rgb;\015\012\011ir.shcoefs[7"
	.ascii	"] = texelFetch(irradianceGrid, ivec3(cell_co + ofs."
	.ascii	"yz, 0), 0).rgb;\015\012\011ir.shcoefs[8] = texelFet"
	.ascii	"ch(irradianceGrid, ivec3(cell_co + ofs.zz, 0), 0).r"
	.ascii	"gb;\015\012\015\012#else /* defined(I"
	.ascii	"RRADIANCE_HL2) */\015\012\015\012\011ivec2 cell_co "
	.ascii	"= ivec2(3, 2);\015\012\011int cell_per_row = textur"
	.ascii	"eSize(irradianceGrid, 0).x / cell_co.x;\015\012\011"
	.ascii	"cell_co.x *= cell % cell_per_row;\015\012\011cell_c"
	.ascii	"o.y *= cell / cell_per_row;\015\012\015\012\011ivec"
	.ascii	"3 is_negative = ivec3(step(0.0, -N));\015\012\015\012"
	.ascii	"\011IrradianceData ir;\015\012\011ir.cubesides[0] ="
	.ascii	" irradiance_decode(texelFetch(irradianceGrid, ivec3"
	.ascii	"(cell_co + ivec2(0, is_negative.x), 0), 0));\015\012"
	.ascii	"\011ir.cubesides[1] = irradiance_decode(texelFetch("
	.ascii	"irradianceGrid, ivec3(cell_co + ivec2(1, is_negativ"
	.ascii	"e.y), 0), 0));\015\012\011ir.cubesides[2] = irradia"
	.ascii	"nce_decode(texelFetch(irradianceGrid, ivec3(cell_co"
	.ascii	" + ivec2(2, is_negative.z), 0), 0));\015\012\015\012"
	.ascii	"#endif\015\012\015\012\011return ir;\015\012}\015\012"
	.ascii	"\015\012float load_visibility_cell(int cell, vec3 L"
	.ascii	", float dist, float bias, float bleed_bias, float r"
	.ascii	"ange)\015\012{\015\012\011/* Keep in sync with diff"
	.ascii	"use_filter_probe() */\015\012\011ivec2 cell_co = iv"
	.ascii	"ec2(prbIrradianceVisSize);\015\012\011ivec2 cell_pe"
	.ascii	"r_row_col = textureSize(irradianceGrid, 0).xy / prb"
	.ascii	"IrradianceVisSize;\015\012\011cell_co.x *= (cell % "
	.ascii	"cell_per_row_col.x);\015\012\011cell_co.y *= (cell "
	.ascii	"/ cell_per_row_col.x) % cell_per_row_col.y;\015\012"
	.ascii	"\011float layer = 1.0 + float((cell / cell_per_row_"
	.ascii	"col.x) / cell_per_row_col.y);\015\012\015\012\011ve"
	.ascii	"c2 texel_size = 1.0 / vec2(textureSize(irradianceGr"
	.ascii	"id, 0).xy);\015\012\011vec2 co = vec2(cell_co) * te"
	.ascii	"xel_size;\015\012\015\012\011vec2 uv = mapping_octa"
	.ascii	"hedron(-L, vec2(1.0 / float(prbIrradianceVisSize)))"
	.ascii	";\015\012\011uv *= vec2(prbIrradianceVisSize) * tex"
	.ascii	"el_size;\015\012\015\012\011vec4 data = texture(irr"
	.ascii	"adianceGrid, vec3(co + uv, layer));\015\012\015\012"
	.ascii	"\011/* Decoding compressed data */\015\012\011vec2 "
	.ascii	"moments = visibility_decode(data, range);\015\012\015"
	.ascii	"\012\011/* Doing chebishev test */\015\012\011float"
	.ascii	" variance = abs(moments.x * moments.x - moments.y);"
	.ascii	"\015\012\011variance = max(variance, bias / 10.0);\015"
	.ascii	"\012\015\012\011float d = dist - moments.x;\015\012"
	.ascii	"\011float p_max = variance / (variance + d * d);\015"
	.ascii	"\012\015\012\011/* Increase contrast in the weight "
	.ascii	"by squaring it */\015\012\011p_max *= p_max;\015\012"
	.ascii	"\015\012\011/* Now reduce light-bleeding by removin"
	.ascii	"g the [0, x] tail and linearly rescaling (x, 1] */\015"
	.ascii	"\012\011p_max = clamp((p_max - bleed_bias) / (1.0 -"
	.ascii	" bleed_bias), 0.0, 1.0);\015\012\015\012\011return "
	.ascii	"(dist <= moments.x) ? 1.0 : p_max;\015\012}\015\012"
	.ascii	"\015\012/* http:"
	.ascii	"//seblagarde.wordpress.com/2012/01/08/pi-or-not-to-"
	.ascii	"pi-in-game-lighting-equation/ */\015\012vec3 spheri"
	.ascii	"cal_harmonics_L1(vec3 N, vec3 shcoefs[4])\015\012{\015"
	.ascii	"\012\011vec3 sh = vec3(0.0);\015\012\015\012\011sh "
	.ascii	"+= 0.282095 * shcoefs[0];\015\012\015\012\011sh += "
	.ascii	"-0.488603 * N.z * shcoefs[1];\015\012\011sh += 0.48"
	.ascii	"8603 * N.y * shcoefs[2];\015\012\011sh += -0.488603"
	.ascii	" * N.x * shcoefs[3];\015\012\015\012\011return sh;\015"
	.ascii	"\012}\015\012\015\012vec3 spherical_harmonics_L2(ve"
	.ascii	"c3 N, vec3 shcoefs[9])\015\012{\015\012\011vec3 sh "
	.ascii	"= vec3(0.0);\015\012\015\012\011sh += 0.282095 * sh"
	.ascii	"coefs[0];\015\012\015\012\011sh += -0.488603 * N.z "
	.ascii	"* shcoefs[1];\015\012\011sh += 0.488603 * N.y * shc"
	.ascii	"oefs[2];\015\012\011sh += -0.488603 * N.x * shcoefs"
	.ascii	"[3];\015\012\015\012\011sh += 1.092548 * N.x * N.z "
	.ascii	"* shcoefs[4];\015\012\011sh += -1.092548 * N.z * N."
	.ascii	"y * shcoefs[5];\015\012\011sh += 0.315392 * (3.0 * "
	.ascii	"N.y * N.y - 1.0) * shcoefs[6];\015\012\011sh += -1."
	.ascii	"092548 * N.x * N.y * shcoefs[7];\015\012\011sh += 0"
	.ascii	".546274 * (N.x * N.x - N.z * N.z) * shcoefs[8];\015"
	.ascii	"\012\015\012\011return sh;\015\012}\015\012\015\012"
	.ascii	"vec3 hl2_basis(vec3 N, vec3 cubesides[3])\015\012{\015"
	.ascii	"\012\011vec3 irradiance = vec3(0.0);\015\012\015\012"
	.ascii	"\011vec3 n_squared = N * N;\015\012\015\012\011irra"
	.ascii	"diance += n_squared.x * cubesides[0];\015\012\011ir"
	.ascii	"radiance += n_squared.y * cubesides[1];\015\012\011"
	.ascii	"irradiance += n_squared.z * cubesides[2];\015\012\015"
	.ascii	"\012\011return irradiance;\015\012}\015\012\015\012"
	.ascii	"vec3 compute_irradiance(vec3 N, IrradianceData ird)"
	.ascii	"\015\012{\015\012#if defined(IRRADIANCE_CUBEMAP)\015"
	.ascii	"\012\011return ird.color;\015\012#elif defined(IRRA"
	.ascii	"DIANCE_SH_L2)\015\012\011return spherical_harmonics"
	.ascii	"_L2(N, ird.shcoefs);\015\012#else /* defined(IRRADI"
	.ascii	"ANCE_HL2) */\015\012\011return hl2_basis(N, ird.cub"
	.ascii	"esides);\015\012#endif\015\012}\015\012\015\012vec3"
	.ascii	" irradiance_from_cell_get(int cell, vec3 ir_dir)\015"
	.ascii	"\012{\015\012\011IrradianceData ir_data = load_irra"
	.ascii	"diance_cell(cell, ir_dir);\015\012\011return comput"
	.ascii	"e_irradiance(ir_dir, ir_data);\015\012}\015\012\000"
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
