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:00800002 Tex 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 = vec4(t.rgb * p.rgb, p.a);
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 = positStatus: new. 2 hits from 2022-11-13 05:10:15 to 2022-11-13 05:20:52 UTC. Message #2208019.
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.