Message #2208022 - 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: DISSIDIA 012[duodecim] FINAL FANTASY (ULES01505_1.00)

Error in shader program link: info: Assertion failed: mov.DstRegId <= 127 && "Out of range for destination relative addressing"
fs: 00000000:00800022 Tex TexAlpha 2x TFuncMod 
#version 300 es
#extension GL_EXT_shader_framebuffer_fetch : require
precision lowp float;
uniform sampler2D tex;
 in vec4 v_color0;
in mediump vec3 v_texcoord;
inout vec4 fragColor0;
void main() {
  vec4 t = texture(tex, v_texcoord.xy);
  vec4 p = v_color0;
  vec4 v = p * t;
  v.rgb = v.rgb * 2.0;
  fragColor0 = v;
}

vs: 00080000:00007b18 HWX C T N Tex Spline TessC TessT TessRevN 
#version 300 es
precision highp float;
in vec3 position;
in mediump vec3 normal;
in vec2 texcoord;
in lowp vec4 color0;
uniform mat4 u_proj;
uniform mat4 u_world;
uniform mat4 u_view;
uniform vec4 u_uvscaleoffset;
uniform lowp vec4 u_matambientalpha;
out lowp vec4 v_color0;
out mediump vec3 v_texcoord;
uniform sampler2D u_tess_pos_tex;
uniform sampler2D u_tess_tex_tex;
uniform sampler2D u_tess_col_tex;
uniform int u_spline_count_u;
vec2 tess_sample(in vec2 points[16], in vec2 weights[4]) {
  vec2 pos = vec2(0.0);
  for (int i = 0; i < 4; ++i) {
    for (int j = 0; j < 4; ++j) {
      float f = weights[j].x * weights[i].y;
      if (f != 0.0)
        pos = pos + f * points[i * 4 + j];
    }
  }
  return pos;
}
vec3 tess_sample(in vec3 points[16], in vec2 weights[4]) {
  vec3 pos = vec3(0.0);
  for (int i = 0; i < 4; ++i) {
    for (int j = 0; j < 4; ++j) {
      float f = weights[j].x * weights[i].y;
      if (f != 0.0)
        pos = pos + f * points[i * 4 + j];
    }
  }
  return pos;
}
vec4 tess_sample(in vec4 points[16], in vec2 weights[4]) {
  vec4 pos = vec4(0.0);
  for (int i = 0; i < 4; ++i) {
    for (int j = 0; j < 4; ++j) {
      float f = weights[j].x * weights[i].y;
      if (f != 0.0)
        pos = pos + f * points[i * 4 + j];
    }
  }
  return pos;
}
uniform int u_spline_count_v;
uniform int u_spline_type_u;
uniform int u_spline_type_v;
void spline_knot(ivec2 num_patches, ivec2 type, out vec2 knot[6], ivec2 patch_pos) {
  for (int i = 0; i < 6; ++i) {
    knot[i] = vec2(float(i + patch_pos.x - 2), float(i + patch_pos.y - 2));
  }
  if ((type.x & 1) != 0) {
    if (patch_pos.x <= 2)
      knot[0].x = 0.0;
    if (patch_pos.x <= 1)
      knot[1].x = 0.0;
  }
  if ((type.x & 2) != 0) {
    if (patch_pos.x >= (num_patches.x - 2))
      knot[5].x = float(num_patches.x);
    if (patch_pos.x == (num_patches.x - 1))
      knot[4].x = float(num_patches.x);
  }
  if ((type.y & 1) != 0) {
    if (patch_pos.y <= 2)
      knot[0].y = 0.0;
    if (patch_pos.y <= 1)
      knot[1].y = 0.0;
  }
  if ((type.y & 2) != 0) {
    if (patch_pos.y >= (num_patches.y - 2))
      knot[5].y = float(num_patches.y);
    if (patch_pos.y == (num_patches.y - 1))
      knot[4].y = float(num_patches.y);
  }
}
void spline_weight(vec2 t, in vec2 knot[6], out vec2 weights[4]) {
  vec2 t0 = (t - knot[0]);
  vec2 t1 = (t - knot[1]);
  vec2 t2 = (t - knot[2]);
  vec2 f30 = t0 / (knot[3] - knot[0]);
  vec2 f41 = t1 / (knot[4] - knot[1]);
  vec2 f52 = t2 / (knot[5] - knot[2]);
  vec2 f31 = t1 / (knot[3] - knot[1]);
  vec2 f42 = t2 / (knot[4] - knot[2]);
  vec2 f32 = t2 / (knot[3] - knot[2]);
  vec2 a = (1.0 - f30)*(1.0 - f31);
  vec2 b = (f31*f41);
  vec2 c = (1.0 - f41)*(1.0 - f42);
  vec2 d = (f42*f52);
  weights[0] = a - (a*f32);
  weights[1] = vec2(1.0) - a - b + ((a + b + c - vec2(1.0))*f32);
  weights[2] = b + ((vec2(1.0) - b - c - d)*f32);
  weights[3] = d*f32;
}
void main() {
  vec3 _pos[16];
  vec2 _tex[16];
  vec4 _col[16];
  int num_patches_u = u_spline_count_u - 3;
  int u = int(mod(float(gl_InstanceID), float(num_patches_u)));
  int v = gl_InstanceID / num_patches_u;
  ivec2 patch_pos = ivec2(u, v);
  for (int i = 0; i < 4; i++) {
    for (int j = 0; j < 4; j++) {
      int index = (i + v) * u_spline_count_u + (j + u);
      _pos[i * 4 + j] = texelFetch(u_tess_pos_tex, ivec2(index, 0), 0).xyz;
      _tex[i * 4 + j] = texelFetch(u_tess_tex_tex, ivec2(index, 0), 0).xy;
      _col[i * 4 + j] = texelFetch(u_tess_col_tex, ivec2(index, 0), 0).rgba;
    }
  }
  vec2 tess_pos = position.xy;
  

Status: new. 1 hits from 2022-11-13 05:10:54 to 2022-11-13 05:10:54 UTC. Message #2208022.

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.