	.file	"833723.c"
	.intel_syntax noprefix
	.text
	.globl	glsl_bilinear_idx16_lut_fsh_src
	.section	.rodata
	.align 32
	.type	glsl_bilinear_idx16_lut_fsh_src, @object
	.size	glsl_bilinear_idx16_lut_fsh_src, 1717
glsl_bilinear_idx16_lut_fsh_src:
	.ascii	"\n#pragma optimize (on)\n#pragma debug (off)\n\nuniform samp"
	.ascii	"ler2D color_texture;\nuniform sampler2D colortable_texture;\n"
	.ascii	"uniform vec2      colortable_sz; // ct size\nuniform vec2   "
	.ascii	"   colortable_pow2_sz; // pow2 ct size\nuniform vec2      co"
	.ascii	"lor_texture_pow2_sz; // pow2 tex size\n\nvec4 lutTex2D(in ve"
	.ascii	"c2 texcoord)\n{\n\tvec4 color_tex;\n\tvec2 color_map_coord;\n"
	.ascii	"\n\t// normalized texture coordinates ..\n\tcolor_tex = text"
	.ascii	"ure2D(color_texture, texcoord);\n\n\t// GL_UNSIGNED_SHORT GL"
	.ascii	"_ALPHA in ALPHA16 conversion:\n\t// general: f = c / ((2*N)-"
	.ascii	"1), c color bitfield, N number of bits\n\t// ushort:  c = (("
	.ascii	"2**16)-1)*f;\n\tcolor_map_coord.x = floor( 65535.0 * color_t"
	.ascii	"ex.a + 0.5 );\n\n\t// map it to the 2D lut table\n\tcolor_ma"
	.ascii	"p_coord.y = floor(color_map_coord.x/colortable_sz.x);\n\tcol"
	.ascii	"or_map_coord.x =   mod(color_map_coord.x,colortable_sz.x);\n"
	.ascii	"\n\treturn texture2D(colortable_texture, color_map_coord/(co"
	.ascii	"lortable_pow2_sz-1.0));\n}\n\nvoid main()\n{\n\tvec2 xy = gl"
	.ascii	"_TexCoord[0].st;\n\n\t// mix(x,y,a): x*(1-a) + y*a\n\t//\n\t"
	.ascii	"// bilinear filtering includes 2 mix:\n\t//\n\t//   pix1 = t"
	.ascii	"ex[x0][y0] * ( 1 - u_ratio ) + tex[x1][y0] * u_ratio\n\t//  "
	.ascii	" pix2 = tex[x0][y1] * ( 1 - u_ratio ) + tex[x1][y1] * u_rati"
	.ascii	"o\n\t//   fin  =    pix1     * ( 1 - v_ratio ) +     pix2   "
	.ascii	" * v_ratio\n\t//\n\t// so we can use the build in mix functi"
	.ascii	"on for these 2 computations ;-)\n\t//\n\tvec2 uv_ratio     ="
	.ascii	" fract(xy*color_texture_pow2_sz); // xy*color_texture_pow2_s"
	.ascii	"z - floor(xy*color_texture_pow2_sz);\n\tvec2 one          = "
	.ascii	"1.0/color_texture_pow2_sz;\n\n"
	.string	"\tvec4 col1, col2;\n\n\tcol1 = mix( lutTex2D(xy                   ), lutTex2D(xy + vec2(one.x, 0.0)), uv_ratio.x);\n\tcol2 = mix( lutTex2D(xy + vec2(0.0, one.y)), lutTex2D(xy + one             ), uv_ratio.x);\n\n\tgl_FragColor =  mix ( col1, col2, uv_ratio.y );\n}\n\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	"833723.c"
	.text
	.global	glsl_bilinear_idx16_lut_fsh_src
	.section	.rodata
	.align	2
	.type	glsl_bilinear_idx16_lut_fsh_src, %object
	.size	glsl_bilinear_idx16_lut_fsh_src, 1717
glsl_bilinear_idx16_lut_fsh_src:
	.ascii	"\012#pragma optimize (on)\012#pragma debug (off)\012"
	.ascii	"\012uniform sampler2D color_texture;\012uniform sam"
	.ascii	"pler2D colortable_texture;\012uniform vec2      col"
	.ascii	"ortable_sz; // ct size\012uniform vec2      colorta"
	.ascii	"ble_pow2_sz; // pow2 ct size\012uniform vec2      c"
	.ascii	"olor_texture_pow2_sz; // pow2 tex size\012\012vec4 "
	.ascii	"lutTex2D(in vec2 texcoord)\012{\012\011vec4 color_t"
	.ascii	"ex;\012\011vec2 color_map_coord;\012\012\011// norm"
	.ascii	"alized texture coordinates ..\012\011color_tex = te"
	.ascii	"xture2D(color_texture, texcoord);\012\012\011// GL_"
	.ascii	"UNSIGNED_SHORT GL_ALPHA in ALPHA16 conversion:\012\011"
	.ascii	"// general: f = c / ((2*N)-1), c color bitfield, N "
	.ascii	"number of bits\012\011// ushort:  c = ((2**16)-1)*f"
	.ascii	";\012\011color_map_coord.x = floor( 65535.0 * color"
	.ascii	"_tex.a + 0.5 );\012\012\011// map it to the 2D lut "
	.ascii	"table\012\011color_map_coord.y = floor(color_map_co"
	.ascii	"ord.x/colortable_sz.x);\012\011color_map_coord.x = "
	.ascii	"  mod(color_map_coord.x,colortable_sz.x);\012\012\011"
	.ascii	"return texture2D(colortable_texture, color_map_coor"
	.ascii	"d/(colortable_pow2_sz-1.0));\012}\012\012void main("
	.ascii	")\012{\012\011vec2 xy = gl_TexCoord[0].st;\012\012\011"
	.ascii	"// mix(x,y,a): x*(1-a) + y*a\012\011//\012\011// bi"
	.ascii	"linear filtering includes 2 mix:\012\011//\012\011/"
	.ascii	"/   pix1 = tex[x0][y0] * ( 1 - u_ratio ) + tex[x1]["
	.ascii	"y0] * u_ratio\012\011//   pix2 = tex[x0][y1] * ( 1 "
	.ascii	"- u_ratio ) + tex[x1][y1] * u_ratio\012\011//   fin"
	.ascii	"  =    pix1     * ( 1 - v_ratio ) +     pix2    * v"
	.ascii	"_ratio\012\011//\012\011// so we can use the build "
	.ascii	"in mix function for these 2 computations ;-)\012\011"
	.ascii	"//\012\011vec2 uv_ratio     = fract(xy*color_textur"
	.ascii	"e_pow2_sz); // xy*color_texture_pow2_sz - floor(xy*"
	.ascii	"color_texture_pow2_sz);\012\011vec2 one          = "
	.ascii	"1.0/color_texture_pow2_sz;\012\012\011vec4 col1, co"
	.ascii	"l2;\012\012\011col1 = mix( lutTex2D(xy             "
	.ascii	"      ), lutTex2D(xy + vec2(one.x, 0.0)), uv_ratio."
	.ascii	"x);\012\011col2 = mix( lutTex2D(xy + vec2(0.0, one."
	.ascii	"y)), lutTex2D(xy + one             ), uv_ratio.x);\012"
	.ascii	"\012\011gl_FragColor =  mix ( col1, col2, uv_ratio."
	.ascii	"y );\012}\012\012\000"
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
