 uniform float normal_mult;
 
 #ifdef USE_SKELETON
-layout(location=6) in ivec4 bone_indices; // attrib:6
+layout(location=6) in uvec4 bone_indices; // attrib:6
 layout(location=7) in vec4 bone_weights; // attrib:7
 #endif
 

				) * bone_weights.z;


		tex_ofs = ivec2( bone_indices.w%256, (bone_indices.w/256)*3 );

		m+= mat3x4(
					texelFetch(skeleton_texture,tex_ofs,0),

#ifdef USE_SKELETON
	{
		//skeleton transform
		ivec4 bone_indicesi = ivec4(bone_indices); // cast to signed int

		ivec2 tex_ofs = ivec2( bone_indicesi.x%256, (bone_indicesi.x/256)*3 );
		highp mat3x4 m = mat3x4(
			texelFetch(skeleton_texture,tex_ofs,0),
			texelFetch(skeleton_texture,tex_ofs+ivec2(0,1),0),
			texelFetch(skeleton_texture,tex_ofs+ivec2(0,2),0)
		) * bone_weights.x;

		tex_ofs = ivec2( bone_indicesi.y%256, (bone_indicesi.y/256)*3 );

		m+= mat3x4(
					texelFetch(skeleton_texture,tex_ofs,0),
