Message #1606198 - Error in shader program link: info: %s fs: %s %s vs: %s %s

Kind #967: Error in shader program link: info: %s fs: %s %s vs: %s %s

Game: Assassin's Creed: Bloodlines™ (ULUS10455_1.00)

Error in shader program link: info: Fragment shader(s) failed to link,  vertex shader(s) linked. 
Fragment Shader not supported by HW 
fs: postshader
/*
   AA shader 4.o / AA shader 4.o - filtro
   
   Copyright (C) 2014 guest(r) - [email protected]

   This program is free software; you can redistribute it and/or
   modify it under the terms of the GNU General Public License
   as published by the Free Software Foundation; either version 2
   of the License, or (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

*/
// Modified as video aware smoothing effect for PPSSPP.
// Some variable definitions had to be moved inside functions(and so repeated) due to glsl->hlsl auto translation failing.
// Also auto translation fails with bool uniform, which is why u_video is defined as float.

#ifdef GL_ES
precision mediump float;
precision mediump int;
#endif

uniform sampler2D sampler0;
uniform float u_video;


//===========
varying vec2 v_texcoord0;

const vec3 dt = vec3(1.0,1.0,1.0);

vec3 texture2d (vec2 texcoord) {

	float scale = 1.0;
	if (u_video==1.0){
		scale = 2.0;
	} else {
		scale = 7.0;
	}

	vec4 yx = vec4(1.0/480.0,1.0/272.0,-1.0/480.0,-1.0/272.0)/scale;
	vec4 xy = vec4(2.0/480.0,2.0/272.0,-2.0/480.0,-2.0/272.0)/scale;

	vec3 s00 = texture2D(sampler0, texcoord + yx.zw).xyz; 
	vec3 s20 = texture2D(sampler0, texcoord + yx.xw).xyz; 
	vec3 s22 = texture2D(sampler0, texcoord + yx.xy).xyz; 
	vec3 s02 = texture2D(sampler0, texcoord + yx.zy).xyz; 

	float m1=dot(abs(s00-s22),dt)+0.001;
	float m2=dot(abs(s02-s20),dt)+0.001;

	return 0.5*(m2*(s00+s22)+m1*(s02+s20))/(m1+m2);
}
vec3 texture2dd (vec2 texcoord) {

	float scale = 1.0;
	if (u_video==1.0){
		scale = 2.0;
	} else {
		scale = 7.0;
	}

	vec4 yx = vec4(1.0/480.0,1.0/272.0,-1.0/480.0,-1.0/272.0)/scale;
	vec4 xy = vec4(2.0/480.0,2.0/272.0,-2.0/480.0,-2.0/272.0)/scale;

	vec3 c11 = texture2D(sampler0, texcoord        ).xyz; 
	vec3 c00 = texture2D(sampler0, texcoord + xy.zw).xyz; 
	vec3 c20 = texture2D(sampler0, texcoord + xy.xw).xyz; 
	vec3 c22 = texture2D(sampler0, texcoord + xy.xy).xyz; 
	vec3 c02 = texture2D(sampler0, texcoord + xy.zy).xyz; 
	vec3 s00 = texture2D(sampler0, texcoord + yx.zw).xyz; 
	vec3 s20 = texture2D(sampler0, texcoord + yx.xw).xyz; 
	vec3 s22 = texture2D(sampler0, texcoord + yx.xy).xyz; 
	vec3 s02 = texture2D(sampler0, texcoord + yx.zy).xyz; 

	float d1=dot(abs(c00-c22),dt)+0.001;
	float d2=dot(abs(c20-c02),dt)+0.001;
	float m1=dot(abs(s00-s22),dt)+0.001;
	float m2=dot(abs(s02-s20),dt)+0.001;

	vec3 t2=(d1*(c20+c02)+d2*(c00+c22))/(2.0*(d1+d2));

	return 0.25*(c11+t2+(m2*(s00+s22)+m1*(s02+s20))/(m1+m2));
}

void main() {

	float scale = 7.0;
	bool filtro = false;

	if (u_video==1.0){
		scale = 2.0;
		filtro = true;
	} else {
		scale = 7.0;
		filtro = false;
	}

	// Calculating texel coordinates

	vec2 size     = vec2(480.0,272.0)*scale;
	vec2 inv_size = vec2(1.0/480.0,1.0/272.0)/scale;

	vec2 OGL2Pos = v_texcoord0 * size;
	vec2 fp = fract(OGL2Pos);
	vec2 dx = vec2(inv_size.x,0.0);
	vec2 dy = vec2(0.0, inv_size.y);
	vec2 g1 = vec2(inv_size.x,inv_size.y);
	vec2 g2 = vec2(-inv_size.x,inv_size.y);

	vec2 pC4 = floor(OGL2Pos) * inv_size + 0.5*inv_size;	

	// Reading the texels
	vec3 C0 = texture2d(pC4 - g1); 
	vec3 C1 = texture2d(pC4 - dy);
	vec3 C2 = texture2d(pC4 - g2);
	vec3 C3 = texture2d(pC4 - dx);
	vec3 C4 = texture2d(pC4     );
	vec3 C5 = texture2d(pC4 + dx);
	vec3 C6 = texture2d(pC4 + g2);
	vec3 C7 = texture2d(pC4 + dy);
	vec3 C8 = texture2d(pC4 + g1);

	vec3 ul, ur, dl, dr;
	float m1, 

Status: new. 1 hits from 2020-07-21 16:37:26 to 2020-07-21 16:37:26 UTC. Message #1606198.

Individual reports are stored since 2026-11-12, the newest 100 per message; none for this message yet. Older hits only exist as the counters above. Hover a cell for details.